InternalCreates a new DrawOp.
Two constructor forms are accepted for convenience:
new DrawOp(technique, renderPass) — single-variant opnew DrawOp(variants, renderPass) — multi-variant opReadonlyrenderThe render pass in which this draw operation is executed.
ReadonlytechniqueThe default (flat-shaded, no-UVs) draw technique. Always present; used as the fallback when no closer variant is supplied.
ReadonlytechniqueSmooth-shaded, no-UVs variant.
ReadonlytechniqueSmooth-shaded triplanar variant.
ReadonlytechniqueSmooth-shaded, with-UVs variant.
ReadonlytechniqueFlat-shaded triplanar variant (no per-vertex normals).
ReadonlytechniqueFlat-shaded, with-UVs variant.
A draw operation (DrawOp) binds one or more DrawTechniques to a specific render pass.
DrawOp is intentionally lightweight: it contains no rendering logic of its own — it just routes a MeshBatch to the right technique variant and forwards the draw call.
Variant axes (per-batch flags consulted by _select):
hasNormals— batch carries per-vertex normalshasUVs— batch carries per-vertex UV coordinatesLambert colour ops typically supply 4 variants. Edge, silhouette, pick, shadow-depth and snap ops only need the flat/no-UVs default and ignore both flags.