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.
It is also the fake's render bundle encoder — FakePass.bundle — so that a bundle records exactly what a pass records; the members a bundle may not record throw a StateError there, as the contract says.
- Inheritance
-
- Object
- PassEncoder
- FakePass
- Mixed-in types
- Available extensions
Constructors
-
FakePass(RenderPassDescriptor descriptor, {Map<
String, StageBindings> ? stageBindings, List<String> ? violations, DeviceFeatures? features, bool links(PipelineHandle pipeline)?}) - FakePass.bundle(RenderBundleDescriptor bundleDescriptor, {DeviceFeatures? features})
- A bundle encoder: records like a pass, and finishes into a RenderBundle whose backend object is this pass.
Properties
- alphaToCoverage ↔ bool?
-
The last
setAlphaToCoverage, or null when the pass never set it.getter/setter pair - bundleDescriptor → RenderBundleDescriptor?
-
What the bundle is recorded against; null for a pass.
final
- 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
-
What the pass was opened with; a descriptor with no attachments for a
bundle, which has none of its own.
final
- drawCount → int
-
no setter
- features → DeviceFeatures
-
What the device that opened it reports. A 1.0-surface call the set
lacks is refused with
UnsupportedCapabilityException, as on a real backend; one it has is recorded as a RecordedCall.final - 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
-
beginOcclusionQuery(
int queryIndex) → void -
Starts counting the samples the next draws pass into query
queryIndexofRenderPassDescriptor.occlusionQuerySet—DeviceFeature.occlusionQuery. One query open at a time.override -
beginPipelineStatisticsQuery(
QuerySet querySet, int queryIndex) → void -
Starts counting into query
queryIndexofquerySet, a QueryType.pipelineStatistics set —DeviceFeature.pipelineStatisticsQuery. The five counters are those PipelineStatistic lists, in its order.override -
bindBlock(
ShaderHandle stage, UniformBlock block) → bool -
Available on PassEncoder, provided by the BindUniformBlockObject extension
Bindsblocktostage—bindUniformBlockwith 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
-
bindStorageBuffer(
ShaderHandle shader, String name, StorageBuffer buffer, {int offsetInBytes = 0, int? sizeInBytes}) → bool -
Binds
buffer(a range of it, asComputeEncoder.bindStorageBufferdoes) to the storage bindingnameof a render stage —DeviceFeature.renderStageStorage. False when the stage declares no such binding.override -
bindStorageTexture(
ShaderHandle shader, String name, TextureHandle texture, {int mipLevel = 0, StorageTextureAccess access = StorageTextureAccess.writeOnly}) → bool -
Binds level
mipLeveloftextureas the storage texturenameof a render stage —DeviceFeature.renderStageStorage, withComputeEncoder.bindStorageTexture's format and access rules.override -
bindTexture(
ShaderHandle shader, String slot, TextureHandle texture, {SamplerDescriptor? sampler}) → bool -
Binds
textureto the sampler calledslotinshader. False when that stage declares no such sampler.override -
bindUniformBlock(
ShaderHandle shader, String blockName, Map< String, Float32List> members) → bool -
Fills the uniform block
blockNameofshaderfrommembersand binds it. False when the shader has no such block.override -
bindUniformBytes(
ShaderHandle shader, String blockName, ByteData bytes) → bool -
Fills the uniform block
blockNameofshaderfrom laid-outbytes—DeviceFeature.uniformBytes. SeeComputeEncoder.bindUniformBytes.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, int firstIndex = 0, int? indexCount}) → 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
-
drawIndexed(
IndexedDraw draw) → void -
A draw with a zero base vertex and first instance is
draw, recorded as one, on every fake; anything else needs the feature.override -
drawIndirect(
StorageBuffer arguments, {int offsetInBytes = 0}) → void -
An indexed draw whose counts
argumentsholds atoffsetInBytes— seedrawIndexedIndirectArgumentsfor the twenty bytes — against the bound index buffer. The buffer must have been made with BufferUsage.indirect.DeviceFeature.indirectDraw; a non-zero first instance needsDeviceFeature.indirectFirstInstanceas well.override -
drawNonIndexed(
{required int vertexCount, int firstVertex = 0, int instanceCount = 1, int firstInstance = 0}) → void -
Draws
vertexCountvertices fromfirstVertexin order, with no index buffer,instanceCounttimes fromfirstInstance—DeviceFeature.nonIndexedDraw. The bound index buffer, if any, is ignored rather than forgotten.override -
endOcclusionQuery(
) → void -
Stops the query beginOcclusionQuery opened.
override
-
endPipelineStatisticsQuery(
) → void -
Stops the query beginPipelineStatisticsQuery opened.
override
-
executeBundles(
List< RenderBundle> bundles) → void -
Replays
bundlesinto this pass —DeviceFeature.renderBundles.override -
finish(
{String? label}) → RenderBundle -
Ends recording. The encoder may not be used afterwards.
override
-
insertDebugMarker(
String label) → void -
Marks one point in the command stream with
label.inherited -
multiDraw(
List< IndexedDraw> draws) → void -
Several indexed draws of the same bindings in one call —
DeviceFeature.multiDraw. Each entry follows drawIndexed's rules.override -
multiDrawIndirect(
StorageBuffer arguments, int drawCount, {int offsetInBytes = 0, StorageBuffer? countBuffer, int countOffsetInBytes = 0}) → void -
drawCountindirect indexed draws read fromarguments, twenty bytes each fromoffsetInBytes—DeviceFeature.multiDrawIndirect. WhencountBufferis given, the number actually drawn is the 32-bit value it holds atcountOffsetInBytes, at mostdrawCount: a culling compute pass decides how many survive and nothing reads the number back.override -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
popDebugGroup(
) → void -
Closes the group the last pushDebugGroup opened.
inherited
-
pushDebugGroup(
String label) → void -
Opens a named group around the commands recorded until the matching
popDebugGroup, for a GPU debugger or a frame capture to show as one
node. Groups nest. Does nothing on a backend without markers.
inherited
-
recordedOf<
T extends Recorded> () → Iterable< T> -
setAlphaToCoverage(
{required bool enabled}) → void -
Whether the next draws turn alpha into multisample coverage —
P7.override -
setBlend(
BlendState? state, {int attachment = 0}) → void -
Blending for one colour attachment; null switches it off.
override
-
setBlendColor(
LinearColor color) → void -
The constant the four constant-reading BlendFactors multiply by.
override
-
setColorWriteMask(
ColorWriteMask mask, {int attachment = 0}) → void -
Which channels of colour attachment
attachmentthe next draws may change —DeviceFeature.colorWriteMask. ColorWriteMask.all at the start of every pass. The index follows setBlend's rule: honoured only whereDeviceFeature.independentBlendis.override -
setCullMode(
CullMode mode) → void -
override
-
setDepthBias(
DepthBias bias) → void -
Offsets the depth the next draws write —
DeviceFeature.depthBias. DepthBias.none at the start of every pass.override -
setDepthClamp(
{required bool enabled}) → void -
Whether the next draws clamp depth to the range instead of clipping
against the near and far planes —
DeviceFeature.depthClamp. Off at the start of every pass. What a shadow caster behind the light's near plane wants.override -
setDepthCompare(
CompareFunction compare) → void -
override
-
setDepthWrite(
{required bool enabled}) → void -
override
-
setPolygonMode(
PolygonMode mode) → void -
Filled or drawn as edges. Ask
features.has(DeviceFeature.wireframe)before naming PolygonMode.line: a backend that cannot draw it throwsUnsupportedCapabilityExceptionrather 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 fieldstatesets, 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