ExoJS uses a drawable-driven rendering model.
Most app code should stay inside:
Scene.draw(runtime)drawable.render(runtime)Applicationframe lifecycle
SceneRenderRuntime: scene-facing runtime used by scenes/drawablesWebGl2RendererRuntime: WebGL2 runtime contractWebGpuRendererRuntime: WebGPU runtime contractRenderer: internal renderer interface for built-in paths
Common runtime operations:
runtime.clear(color?)runtime.setView(view | null)runtime.setRenderTarget(target | null)runtime.execute(pass)runtime.flush()
Render nodes support:
filtersmaskcacheAsBitmap+invalidateCache()
Runtime composition helpers:
RenderTargetPassCallbackRenderPass
Temporary render textures:
runtime.acquireRenderTexture(width, height)runtime.releaseRenderTexture(texture)
runtime.stats exposes draw-call/batch/pass counters and frame timing fields.
See Performance for details.
Backend selection is normally handled by Application (auto mode by default).
Most projects do not need backend-specific runtime code.