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.
- Renderer creation. Renderer creation is now associated with the render thread.
- Render cache configuration. Mesh and font caches are now configured on the renderer and not on GFxLoader.
- Texture resource creation. Texture creation needs to be either thread-safe or serviced by a render thread.
- Rendering loop. Rendering of a movie is now done by passing a MovieDisplayHandle to the render thread and rendering it there through HAL::Display.
- Movie Shutdown. The GFx::Movie release operation may need to be serviced by the render thread.
- 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.