FakePass class final

A pass that was opened, and everything that went into it.

Given stageBindings, it holds binds to the contract the way a real backend does: a block or sampler bound to a stage that does not declare it answers false, bindings do not survive bindPipeline, and a draw that leaves a declared slot unbound is written to violations. A stage the map does not name is taken on trust. Without the map it records and accepts everything, which is what every test written before 0.8.0 expects.

Implemented types
Available extensions

Constructors

FakePass(RenderPassDescriptor descriptor, {Map<String, StageBindings>? stageBindings, List<String>? violations})

Properties

color → ColorTarget
no setter
commands → List<Recorded>
Everything recorded, in order.
final
cullMode ↔ CullMode?
getter/setter pair
depthCompare ↔ CompareFunction?
getter/setter pair
depthWrite ↔ bool?
getter/setter pair
descriptor → RenderPassDescriptor
final
drawCount → int
no setter
hashCode → int
The hash code for this object.
no setterinherited
polygonMode ↔ PolygonMode?
getter/setter pair
primitiveType ↔ PrimitiveType?
getter/setter pair
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
stageBindings → Map<String, StageBindings>?
Stage name to what it declares, or null to accept every bind.
final
stencilBack ↔ StencilState?
getter/setter pair
stencilFront ↔ StencilState?
The stencil state the pass was left in, per face. Null means it was never mentioned, which is the answer every pass but the x-ray's gives.
getter/setter pair
stencilReference ↔ int?
getter/setter pair
submitted ↔ bool
getter/setter pair
violations → List<String>
Declared slots a draw left unbound, one line each, with the pipeline and the stage. Shared with the device that opened the pass.
final
windingOrder ↔ WindingOrder?
getter/setter pair

Methods

bindBlock(ShaderHandle stage, UniformBlock block) → bool

Available on PassEncoder, provided by the BindUniformBlockObject extension

Binds block to stage — bindUniformBlock with the block's name and members.
bindIndexBuffer(GeometryBuffer buffer, IndexType type, int indexCount) → void
override
bindIndexData(ByteData bytes, IndexType type, int indexCount) → void
Binds indices built this frame. See bindVertexData.
override
bindPipeline(PipelineHandle pipeline) → void
Binds the pair of stages the following draws run.
override
bindTexture(ShaderHandle shader, String slot, TextureHandle texture, {SamplerOptions? sampler}) → bool
Binds texture to the sampler called slot in shader. False when that stage declares no such sampler.
override
bindUniformBlock(ShaderHandle shader, String blockName, Map<String, Float32List> members) → bool
Fills the uniform block blockName of shader from members and binds it. False when the shader has no such block.
override
bindVertexBuffer(GeometryBuffer buffer, int vertexCount, {int slot = 0}) → void
Binds geometry the device already holds — a mesh, or the one triangle every full-screen pass draws.
override
bindVertexData(ByteData bytes, int vertexCount, {int slot = 0}) → void
Binds vertices built this frame.
override
clearBindings() → void
Forgets every binding, leaving rasteriser state alone: uniform blocks, textures, every vertex slot and the index buffer with its count.
override
draw({int instanceCount = 1}) → void
Draws what is bound. Always indexed — there is no non-indexed path in this engine, which is why the debug overlay keeps an identity index sequence.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
recordedOf<T extends Recorded>() → Iterable<T>
setBlend(BlendState? state, {int attachment = 0}) → void
Blending for one colour attachment; null switches it off.
override
setBlendColor(Vector4 color) → void
The constant the four constant-reading BlendFactors multiply by.
override
setCullMode(CullMode mode) → void
override
setDepthCompare(CompareFunction compare) → void
override
setDepthWrite(bool enabled) → void
override
setPolygonMode(PolygonMode mode) → void
Filled or drawn as edges. Ask GraphicsDevice.supportsWireframe before naming PolygonMode.line: a backend that cannot draw it throws an UnsupportedError rather than filling.
override
setPrimitiveType(PrimitiveType type) → void
How the following draws assemble their vertices.
override
setScissor(ScreenRect rect) → void
Where fragments survive. Bounds a draw, and — unlike a clear — is honoured by one.
override
setState(PassState state) → void

Available on PassEncoder, provided by the PassStateApply extension

Emits one call per field state sets, and nothing for the rest.
setStencil(StencilState front, {StencilState? back}) → void
The stencil test for the draws that follow.
override
setStencilReference(int value) → void
The value the stencil test compares against and StencilOperation.setToReferenceValue stores. Eight bits; zero until set.
override
setViewport(ScreenRect rect) → void
Where the rasteriser may write.
override
setWindingOrder(WindingOrder order) → void
override
submit() → void
Ends the pass and hands it to the queue.
override
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited