#include <content_context.h>
Classes | |
struct | Equal |
struct | Hash |
Public Member Functions | |
void | ApplyToPipelineDescriptor (PipelineDescriptor &desc) const |
Public Attributes | |
SampleCount | sample_count = SampleCount::kCount1 |
BlendMode | blend_mode = BlendMode::kSourceOver |
CompareFunction | depth_compare = CompareFunction::kAlways |
StencilMode | stencil_mode |
PrimitiveType | primitive_type = PrimitiveType::kTriangle |
PixelFormat | color_attachment_pixel_format = PixelFormat::kUnknown |
bool | has_depth_stencil_attachments = true |
bool | depth_write_enabled = false |
bool | wireframe = false |
bool | is_for_rrect_blur_clear = false |
Pipeline state configuration.
Each unique combination of these options requires a different pipeline state object to be built. This struct is used as a key for the per-pipeline variant cache.
When adding fields to this key, reliant features should take care to limit the combinatorical explosion of variations. A sufficiently complicated Flutter application may easily require building hundreds of PSOs in total, but they shouldn't require e.g. 10s of thousands.
Definition at line 288 of file content_context.h.
|
strong |
Definition at line 289 of file content_context.h.
void impeller::ContentContextOptions::ApplyToPipelineDescriptor | ( | PipelineDescriptor & | desc | ) | const |
Definition at line 27 of file content_context.cc.
References impeller::ColorAttachmentDescriptor::alpha_blend_op, blend_mode, impeller::ColorAttachmentDescriptor::blending_enabled, impeller::PipelineDescriptor::ClearDepthAttachment(), impeller::PipelineDescriptor::ClearStencilAttachments(), color_attachment_pixel_format, impeller::ColorAttachmentDescriptor::color_blend_op, depth_compare, impeller::DepthAttachmentDescriptor::depth_compare, impeller::StencilAttachmentDescriptor::depth_stencil_pass, depth_write_enabled, impeller::DepthAttachmentDescriptor::depth_write_enabled, impeller::ColorAttachmentDescriptor::dst_alpha_blend_factor, impeller::ColorAttachmentDescriptor::dst_color_blend_factor, impeller::ColorAttachmentDescriptor::format, impeller::PipelineDescriptor::GetColorAttachmentDescriptor(), impeller::PipelineDescriptor::GetDepthStencilAttachmentDescriptor(), impeller::PipelineDescriptor::GetFrontStencilAttachmentDescriptor(), has_depth_stencil_attachments, is_for_rrect_blur_clear, impeller::kAdd, impeller::kAlways, impeller::kClear, kCoverCompare, kCoverCompareInverted, impeller::kDecrementClamp, impeller::kDecrementWrap, impeller::kDestination, impeller::kDestinationAlpha, impeller::kDestinationATop, impeller::kDestinationColor, impeller::kDestinationIn, impeller::kDestinationOut, impeller::kDestinationOver, impeller::kEqual, impeller::kFill, kIgnore, impeller::kIncrementClamp, impeller::kIncrementWrap, impeller::kKeep, impeller::Entity::kLastPipelineBlendMode, kLegacyClipCompare, kLegacyClipDecrement, kLegacyClipIncrement, kLegacyClipRestore, impeller::kLess, impeller::kLine, impeller::kModulate, impeller::kNotEqual, impeller::kOne, impeller::kOneMinusDestinationAlpha, impeller::kOneMinusSourceAlpha, impeller::kPlus, impeller::kReverseSubtract, impeller::kSetToReferenceValue, impeller::kSource, impeller::kSourceAlpha, impeller::kSourceATop, impeller::kSourceColor, impeller::kSourceIn, impeller::kSourceOut, impeller::kSourceOver, kStencilEvenOddFill, kStencilNonZeroFill, impeller::kXor, impeller::kZero, primitive_type, sample_count, impeller::PipelineDescriptor::SetColorAttachmentDescriptor(), impeller::PipelineDescriptor::SetDepthStencilAttachmentDescriptor(), impeller::PipelineDescriptor::SetPolygonMode(), impeller::PipelineDescriptor::SetPrimitiveType(), impeller::PipelineDescriptor::SetSampleCount(), impeller::PipelineDescriptor::SetStencilAttachmentDescriptors(), impeller::ColorAttachmentDescriptor::src_alpha_blend_factor, impeller::ColorAttachmentDescriptor::src_color_blend_factor, impeller::StencilAttachmentDescriptor::stencil_compare, impeller::StencilAttachmentDescriptor::stencil_failure, stencil_mode, VALIDATION_LOG, and wireframe.
BlendMode impeller::ContentContextOptions::blend_mode = BlendMode::kSourceOver |
PixelFormat impeller::ContentContextOptions::color_attachment_pixel_format = PixelFormat::kUnknown |
Definition at line 338 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), impeller::ContentContextOptions::Equal::operator()(), impeller::OptionsFromPass(), and impeller::testing::TEST_P().
CompareFunction impeller::ContentContextOptions::depth_compare = CompareFunction::kAlways |
Definition at line 334 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), impeller::ContentContextOptions::Equal::operator()(), and impeller::OptionsFromPass().
bool impeller::ContentContextOptions::depth_write_enabled = false |
Definition at line 340 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), and impeller::ContentContextOptions::Equal::operator()().
bool impeller::ContentContextOptions::has_depth_stencil_attachments = true |
Definition at line 339 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), impeller::ContentContextOptions::Equal::operator()(), impeller::OptionsFromPass(), and impeller::testing::TEST_P().
bool impeller::ContentContextOptions::is_for_rrect_blur_clear = false |
Definition at line 342 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), impeller::ContentContextOptions::Equal::operator()(), and impeller::SolidRRectBlurContents::Render().
PrimitiveType impeller::ContentContextOptions::primitive_type = PrimitiveType::kTriangle |
Definition at line 337 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), impeller::ContentContextOptions::Equal::operator()(), impeller::SolidRRectBlurContents::Render(), and impeller::testing::TEST_P().
SampleCount impeller::ContentContextOptions::sample_count = SampleCount::kCount1 |
Definition at line 332 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContext::ContentContext(), impeller::CreateDefaultPipeline(), impeller::ContentContextOptions::Hash::operator()(), impeller::ContentContextOptions::Equal::operator()(), impeller::OptionsFromPass(), and impeller::testing::TEST_P().
StencilMode impeller::ContentContextOptions::stencil_mode |
Definition at line 335 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), impeller::ContentContextOptions::Equal::operator()(), impeller::OptionsFromPass(), and impeller::testing::TEST_P().
bool impeller::ContentContextOptions::wireframe = false |
Definition at line 341 of file content_context.h.
Referenced by ApplyToPipelineDescriptor(), impeller::ContentContextOptions::Hash::operator()(), and impeller::ContentContextOptions::Equal::operator()().