For external images, it’s not possible to know the
UV coords of the image (or the image data itself)
until the render thread receives the frame and issues
callbacks to the client application. For external
images that are visible, a DeferredResolve is created
that is stored in the frame. This allows the render
thread to iterate this list and update any changed
texture data and update the UV rect. Any filtering
is handled externally for NativeTexture external
images.
To create a fixed-size representation of a polygon, we use a fixed
number of points. Our initialization method restricts us to values
<= 32. If our constant POLYGON_CLIP_VERTEX_MAX is > 32, the Rust
compiler will complain.
Contains various vecs of data that is used only during frame building,
where we want to recycle the memory each new display list, to avoid constantly
re-allocating and moving memory around. Written during primitive preparation,
and read during batching.
The shared information for a given primitive. This is interned and retained
both across frames and display lists, by comparing the matching PrimitiveKey.