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