Scaleform does support the BitmapData API, as of version 4.1 (reference). However, 4.1.19 was the first release of 4.1, and thus the initial release with BitmapData support. You may want to upgrade to a newer version, as there have certainly been fixes to the BitmapData support since its initial release.
The most common reason to get this error, is to not pass a ThreadCommandQueue
instance into MovieDef::CreateInstance
as the last parameter, and BitmapData operations are used on the first frame. Without an instance of the ThreadCommandQueue
, the renderer cannot create the backing for the BitmapData objects within Scaleform. A more descriptive warning was added to Scaleform in later versions.
For ThreadCommandQueue
, you generally need to implement this yourself, to integrate properly with your application's rendering code. The simplest multi-threaded implementation would simply store ThreadCommand
objects in a (thread-safe) list, when called from PushThreadCommand
, and call Execute
on the objects at some point during the application render loop.
In later versions of the SDK, there is a class provided called SingleThreadedCommandQueue
, which provides an basic implementation that will execute all commands immediately. This only works if you are using Movie::Advance
and HAL::Display
on the same thread. You can see a more complex version of a ThreadCommandQueue
implementation, used in the Scaleform samples from the RenderHALThread
class, which defers most of the important implementation to RTCommandQueue
.