Mesh Submesh
Per-glTF-primitive draw descriptor. Holds a single RR-cache key for the combined vertices+indices+batchIds buffer plus a separate texture key. Draw metadata only.
Properties
RGBA, premultiplied. Multiplied with the sampled texel when a texture is bound.
Null when the material has no texture or the decoder failed.
Byte offset of the batchId section, or -1 when the primitive has no _BATCHID.
RR-cache refs resolved once by uploadMeshContent; per-frame drawable enqueue reads them direct — no HashMap.getNode. Cache still owns lifetime; post-eviction the GL handles invalidate and bindBuffer/bindTexture returns false.
Combined buffer: vertices | indices | batchIds. Bound to GL_ARRAY_BUFFER for the vertex attribs and (where elementBufferKey is null) to GL_ELEMENT_ARRAY_BUFFER for drawElements via BufferObject.bindBufferAs. Single mmap per primitive instead of three.
3 (RGB) or 4 (RGBA); 0 when absent.
Byte offset of per-vertex COLOR_0 in the interleaved buffer; -1 when absent.
Resolved dedicated index buffer (split path); null on the shared path, where the combined buffer doubles as the element buffer.
Separate index buffer key, non-null only on backends that forbid binding one buffer to two targets (WebGL — see earth.worldwind.util.kgl.Kgl.supportsSharedElementArrayBuffer). When null, indices live inside bufferKey's combined buffer at elementOffset.
Byte offset of the index section. Passed to glDrawElements as the indices argument. Into the combined buffer (shared path) or 0 into the dedicated elementBuffer (split).