Owns and manages all DrawTechnique instances required to render every supported primitive type across all render passes.

  • One DrawOps exists per WebGLRenderer / viewer.
  • Draw operations are organized:
    1. by primitive type (triangles, lines, points)
    2. then by render pass (opaque, transparent, highlighted, selected, xrayed, pick, etc.)

Each leaf entry is a DrawOp, which binds a DrawTechnique to a specific render pass.

To render a batch of geometry, callers retrieve the appropriate DrawOp and invoke it:

drawOps.prims[primitiveType][renderPass].draw(meshBatch);

or, to draw a single mesh:

drawOps.prims[primitiveType][renderPass].drawMesh(meshBatch, meshIndex);
  • DrawTechnique instances are created once and may be shared by multiple DrawOps.
  • Initialization is fail-fast: if any technique fails to initialize, all previously initialized techniques are destroyed.
  • Techniques are reference-counted via getDrawOps / putDrawOps.

Constructors

Properties

gpuMemoryReader: GPUMemoryReader

Interface for reading GPU-resident data via data textures.

prims: {
    "20000"?: RenderPassDrawOps;
    "20001"?: RenderPassDrawOps;
    "20002"?: RenderPassDrawOps;
}

Draw operations indexed first by primitive type, then by render pass.

Each entry is a DrawOp, which applies a DrawTechnique within a specific render pass.

Methods

  • Completes the deferred shader build: reads back the program compile/link status (the blocking compile-wait) and caches uniform/attribute locations.

    Idempotent — a no-op once the batch has been finalized. Must be called before any technique is used to draw, pick, or snap; the render, pick, and snap entry points call it. By the time the first frame reaches here the driver has typically finished compiling in the background, so the wait is short or zero.

    Returns SDKResult<void>

    SDKResult carrying any shader compile/link error surfaced by the deferred status read-back.