bindVertexStage method
Binds this material's vertex-stage uniforms to vertexShader, called by
the encoder only when it used a material-supplied vertex shader (see
materialVertexShader). The base implementation is a no-op; a material
with vertex-stage parameters binds them here.
Implementation
@override
void bindVertexStage(
gpu.RenderPass pass,
gpu.Shader vertexShader,
TransientWriter transientsBuffer,
) {
for (final entry in _vertexUniformBlocks.entries) {
final slot = vertexShader.getUniformSlot(entry.key);
assert(_checkBlock(slot, entry.key, entry.value, ShaderStage.vertex));
pass.bindUniform(slot, transientsBuffer.emplace(entry.value));
}
for (final entry in _vertexTextures.entries) {
final resolved = _resolveShaderTexture(entry.value.source);
pass.bindTexture(
vertexShader.getUniformSlot(entry.key),
Material.whitePlaceholder(resolved),
sampler:
entry.value.sampler ??
_shaderTextureSampler(entry.value.source) ??
gpu.SamplerOptions(),
);
}
}