What problem does it solve?
Provides a concentrated reference to understand and answer questions about Orkid's renderer and drawable system, helping developers debug, extend, and optimize the draw pipeline without reading the entire codebase.
Core Features & Use Cases
- Drawable hierarchy reference: Explains Drawable, DrawableData, Model/Instanced/Callback/String/Billboard drawable types and their factory patterns for implementation and debugging.
- Draw queue & threading: Documents DrawQueue triple-buffering, acquire/release semantics for update vs render threads, and layer-based enqueueing for frame-safe submission.
- Renderer sort & draw pipeline: Describes IRenderer enqueue APIs, radix sort ordering, RenderQueue mechanics, and limits for model and callback renderables for performance tuning.
- Instanced rendering & SSBOs: Details instanced drawable instance data layout, SSBO upload strategy, instance allocation, and single-draw instancing for high-count rendering.
- Animation and skinning flow: Summarizes Xgm skeletons, animation instances, pose application, bone matrix upload, and skinned draw binding.
- Python bindings: Notes the pyext drawable and drawable data bindings and common Python usage patterns for creating and manipulating drawables from scripts.
- Use cases: Debug frustum culling and submesh render ordering, implement custom CallbackDrawable render lambdas, optimize instancing, and port or prototype drawables in Python.
Quick Start
Explain how to inspect DrawQueue triple-buffering and where to find the enqueue and acquire/release methods in the ork.lev2 source to answer a specific rendering question.