12 std::shared_ptr<RenderPass> delegate,
13 const std::shared_ptr<const Context>& context,
22 delegate_->SetPipeline(pipeline);
28 pending_.label = std::string(label);
31 delegate_->SetCommandLabel(label);
39 delegate_->SetStencilReference(
value);
47 delegate_->SetBaseVertex(
value);
55 delegate_->SetViewport(viewport);
63 delegate_->SetScissor(scissor);
71 delegate_->SetInstanceCount(
count);
79 return delegate_->SetVertexBuffer(
buffer);
86 commands_.emplace_back(std::move(pending_));
89 return delegate_->Draw();
102 return delegate_->EncodeCommands();
115 return delegate_->BindResource(stage,
type, slot, metadata, view);
125 const std::shared_ptr<const ShaderMetadata>& metadata,
129 return delegate_->BindResource(stage,
type, slot, metadata, view);
140 std::shared_ptr<const Texture>
texture,
141 const std::unique_ptr<const Sampler>& sampler) {
144 return delegate_->BindResource(stage,
type, slot, metadata,
texture,
To do anything rendering related with Impeller, you need a context.
Describes the fixed function and programmable aspects of rendering and compute operations performed b...
void SetStencilReference(uint32_t value) override
RecordingRenderPass(std::shared_ptr< RenderPass > delegate, const std::shared_ptr< const Context > &context, const RenderTarget &render_target)
void SetCommandLabel(std::string_view label) override
The debugging label to use for the command.
bool SetVertexBuffer(VertexBuffer buffer) override
Specify the vertex and index buffer to use for this command.
fml::Status Draw() override
Record the currently pending command.
void SetBaseVertex(uint64_t value) override
bool OnEncodeCommands(const Context &context) const override
void SetInstanceCount(size_t count) override
void SetViewport(Viewport viewport) override
void OnSetLabel(std::string label) override
bool BindResource(ShaderStage stage, DescriptorType type, const ShaderUniformSlot &slot, const ShaderMetadata &metadata, BufferView view) override
void SetPipeline(const std::shared_ptr< Pipeline< PipelineDescriptor > > &pipeline) override
The pipeline to use for this command.
void SetScissor(IRect scissor) override
Render passes encode render commands directed as one specific render target into an underlying comman...
static const uint8_t buffer[]
std::shared_ptr< Pipeline< PipelineDescriptor > > pipeline
uint32_t stencil_reference
std::optional< Viewport > viewport
VertexBuffer vertex_buffer
The bound per-vertex data and optional index buffer.
std::optional< IRect > scissor
bool BindResource(ShaderStage stage, DescriptorType type, const ShaderUniformSlot &slot, const ShaderMetadata &metadata, BufferView view) override
Metadata required to bind a combined texture and sampler.