Multi-Threading Renderer Changes

A number of APIs were changed from Scaleform 3.x to Scaleform 4.0 to accommodate the new design and multi-threaded rendering. This list highlights the major renderer areas that changed, that you will need to consider when working with multi-threading.

  1. Renderer creation. Renderer creation is now associated with the render thread.
  2. Render cache configuration. Mesh and font caches are now configured on the renderer and not on GFxLoader.
  3. Texture resource creation. Texture creation needs to be either thread-safe or serviced by a render thread.
  4. Rendering loop. Rendering of a movie is now done by passing a MovieDisplayHandle to the render thread and rendering it there through HAL::Display.
  5. Movie Shutdown. The GFx::Movie release operation may need to be serviced by the render thread.
  6. Custom Renderers. Platform-independent APIs were redesigned to provide support for hardware vertex buffer caches and batching. The role of GRenderer in Scaleform 3.x is now handled by Render::HAL class.

These changes are outlined in the sections below, with code samples and more detailed explanation.