 |
Flutter Impeller
|
|
Go to the documentation of this file.
12 #include <string_view>
13 #include <type_traits>
14 #include <unordered_map>
16 #include "flutter/fml/hash_combine.h"
17 #include "flutter/fml/macros.h"
26 class VertexDescriptor;
45 std::shared_ptr<const ShaderFunction>
function);
47 const std::map<ShaderStage, std::shared_ptr<const ShaderFunction>>&
54 std::shared_ptr<VertexDescriptor> vertex_descriptor);
65 std::map<size_t /* index */, ColorAttachmentDescriptor> descriptors);
76 std::optional<DepthAttachmentDescriptor> desc);
82 std::optional<StencilAttachmentDescriptor> front_and_back);
85 std::optional<StencilAttachmentDescriptor> front,
86 std::optional<StencilAttachmentDescriptor> back);
94 std::optional<StencilAttachmentDescriptor>
97 std::optional<StencilAttachmentDescriptor>
111 std::size_t
GetHash()
const override;
139 std::map<ShaderStage, std::shared_ptr<const ShaderFunction>> entrypoints_;
141 color_attachment_descriptors_;
142 std::shared_ptr<VertexDescriptor> vertex_descriptor_;
145 std::optional<DepthAttachmentDescriptor> depth_attachment_descriptor_;
146 std::optional<StencilAttachmentDescriptor>
147 front_stencil_attachment_descriptor_;
148 std::optional<StencilAttachmentDescriptor>
149 back_stencil_attachment_descriptor_;
std::optional< StencilAttachmentDescriptor > GetBackStencilAttachmentDescriptor() const
void SetPolygonMode(PolygonMode mode)
CullMode GetCullMode() const
PipelineDescriptor & SetStencilAttachmentDescriptors(std::optional< StencilAttachmentDescriptor > front_and_back)
const std::string & GetLabel() const
PipelineDescriptor & SetColorAttachmentDescriptor(size_t index, ColorAttachmentDescriptor desc)
PipelineDescriptor & SetStencilPixelFormat(PixelFormat format)
const ColorAttachmentDescriptor * GetColorAttachmentDescriptor(size_t index) const
void SetPrimitiveType(PrimitiveType type)
SampleCount GetSampleCount() const
const std::shared_ptr< VertexDescriptor > & GetVertexDescriptor() const
std::shared_ptr< const ShaderFunction > GetEntrypointForStage(ShaderStage stage) const
void SetCullMode(CullMode mode)
PipelineDescriptor & SetColorAttachmentDescriptors(std::map< size_t, ColorAttachmentDescriptor > descriptors)
bool HasStencilAttachmentDescriptors() const
size_t GetMaxColorAttacmentBindIndex() const
PrimitiveType GetPrimitiveType() const
WindingOrder GetWindingOrder() const
PixelFormat GetStencilPixelFormat() const
PolygonMode GetPolygonMode() const
void ClearColorAttachment(size_t index)
PipelineDescriptor & SetSampleCount(SampleCount samples)
PipelineDescriptor & AddStageEntrypoint(std::shared_ptr< const ShaderFunction > function)
std::optional< StencilAttachmentDescriptor > GetFrontStencilAttachmentDescriptor() const
void ClearDepthAttachment()
PixelFormat GetDepthPixelFormat() const
const std::map< size_t, ColorAttachmentDescriptor > & GetColorAttachmentDescriptors() const
PipelineDescriptor & SetDepthPixelFormat(PixelFormat format)
bool IsEqual(const PipelineDescriptor &other) const override
std::optional< DepthAttachmentDescriptor > GetDepthStencilAttachmentDescriptor() const
const std::map< ShaderStage, std::shared_ptr< const ShaderFunction > > & GetStageEntrypoints() const
std::size_t GetHash() const override
PipelineDescriptor & SetDepthStencilAttachmentDescriptor(std::optional< DepthAttachmentDescriptor > desc)
PixelFormat
The Pixel formats supported by Impeller. The naming convention denotes the usage of the component,...
PipelineDescriptor & SetLabel(std::string label)
void SetWindingOrder(WindingOrder order)
const ColorAttachmentDescriptor * GetLegacyCompatibleColorAttachment() const
void ClearStencilAttachments()
PipelineDescriptor & SetVertexDescriptor(std::shared_ptr< VertexDescriptor > vertex_descriptor)
Describe the color attachment that will be used with this pipeline.