5#ifndef FLUTTER_IMPELLER_RENDERER_COMMAND_H_
6#define FLUTTER_IMPELLER_RENDERER_COMMAND_H_
26#define DEBUG_COMMAND_INFO(obj, arg) obj.label = arg;
28#define DEBUG_COMMAND_INFO(obj, arg)
39 :
resource(p_resource), metadata_(metadata) {}
41 Resource(std::shared_ptr<const ShaderMetadata>& metadata,
43 :
resource(p_resource), dynamic_metadata_(metadata) {}
46 return dynamic_metadata_ ? dynamic_metadata_.get() : metadata_;
54 std::shared_ptr<const ShaderMetadata> dynamic_metadata_;
64 const std::unique_ptr<const Sampler>&
sampler;
75 std::vector<BufferAndUniformSlot>
buffers;
96 std::shared_ptr<Pipeline<PipelineDescriptor>>
pipeline;
173 const std::shared_ptr<const ShaderMetadata>& metadata,
181 std::shared_ptr<const Texture>
texture,
182 const std::unique_ptr<const Sampler>& sampler)
override;
static const uint8_t buffer[]
std::vector< BufferAndUniformSlot > buffers
std::vector< TextureAndSampler > sampled_images
An object used to specify work to the GPU along with references to resources the GPU will used when d...
std::shared_ptr< Pipeline< PipelineDescriptor > > pipeline
Bindings fragment_bindings
uint32_t stencil_reference
std::optional< Viewport > viewport
VertexBuffer vertex_buffer
The bound per-vertex data and optional index buffer.
bool BindVertices(VertexBuffer buffer)
Specify the vertex and index buffer to use for this command.
std::optional< IRect > scissor
bool BindResource(ShaderStage stage, DescriptorType type, const ShaderUniformSlot &slot, const ShaderMetadata &metadata, BufferView view) override
An interface for binding resources. This is implemented by |Command| and |ComputeCommand| to make GPU...
const ShaderMetadata * GetMetadata() const
Resource(std::shared_ptr< const ShaderMetadata > &metadata, ResourceType p_resource)
Resource(const ShaderMetadata *metadata, ResourceType p_resource)
Metadata required to bind a combined texture and sampler.
combines the texture, sampler and sampler slot information.
const std::unique_ptr< const Sampler > & sampler