#include <content_context.h>
Classes | |
| struct | Pipelines |
Public Types | |
| using | SubpassCallback = std::function< bool(const ContentContext &, RenderPass &)> |
Definition at line 138 of file content_context.h.
| using impeller::ContentContext::SubpassCallback = std::function<bool(const ContentContext&, RenderPass&)> |
Definition at line 243 of file content_context.h.
|
explicit |
Setup default clip pipeline.
Definition at line 522 of file content_context.cc.
|
default |
| void impeller::ContentContext::ClearCachedRuntimeEffectPipeline | ( | const std::string & | unique_entrypoint_name | ) | const |
Used by hot reload/hot restart to clear a cached pipeline from GetCachedRuntimeEffectPipeline.
Definition at line 934 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendColorBurnPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1264 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendColorDodgePipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1269 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendColorPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1259 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendDarkenPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1274 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendDifferencePipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1279 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendExclusionPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1284 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendHardLightPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1289 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendHuePipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1294 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendLightenPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1299 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendLuminosityPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1304 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendMultiplyPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1309 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendOverlayPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1314 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendSaturationPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1319 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendScreenPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1324 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBlendSoftLightPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1329 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetBorderMaskBlurPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1090 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetCachedRuntimeEffectPipeline | ( | const std::string & | unique_entrypoint_name, |
| const ContentContextOptions & | options, | ||
| const std::function< std::shared_ptr< Pipeline< PipelineDescriptor >>()> & | create_callback | ||
| ) | const |
RuntimeEffect pipelines must be obtained via this method to avoid re-creating them every frame.
The unique_entrypoint_name comes from RuntimeEffect::GetEntrypoint. Impellerc generates a unique entrypoint name for runtime effect shaders based on the input file name and shader stage.
The create_callback is synchronously invoked exactly once if a cached pipeline is not found.
Definition at line 921 of file content_context.cc.
Referenced by impeller::RuntimeEffectContents::Render().
| PipelineRef impeller::ContentContext::GetClearBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1184 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetClipPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1115 of file content_context.cc.
Referenced by impeller::ColorSourceContents::DrawGeometry(), impeller::ClipContents::Render(), and impeller::RenderClipRestore().
| PipelineRef impeller::ContentContext::GetColorMatrixColorFilterPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1100 of file content_context.cc.
Referenced by impeller::ColorFilterAtlasContents::Render().
| PipelineRef impeller::ContentContext::GetConicalGradientFillPipeline | ( | ContentContextOptions | opts, |
| ConicalKind | kind | ||
| ) | const |
Definition at line 1039 of file content_context.cc.
References impeller::kConical, impeller::kRadial, impeller::kStrip, and impeller::kStripAndRadial.
| PipelineRef impeller::ContentContext::GetConicalGradientSSBOFillPipeline | ( | ContentContextOptions | opts, |
| ConicalKind | kind | ||
| ) | const |
Definition at line 1009 of file content_context.cc.
References GetDeviceCapabilities(), impeller::kConical, impeller::kRadial, impeller::kStrip, and impeller::kStripAndRadial.
| PipelineRef impeller::ContentContext::GetConicalGradientUniformFillPipeline | ( | ContentContextOptions | opts, |
| ConicalKind | kind | ||
| ) | const |
Definition at line 990 of file content_context.cc.
References impeller::kConical, impeller::kRadial, impeller::kStrip, and impeller::kStripAndRadial.
| std::shared_ptr< Context > impeller::ContentContext::GetContext | ( | ) | const |
Definition at line 913 of file content_context.cc.
Referenced by impeller::AdvancedBlend(), impeller::RuntimeEffectContents::BootstrapShader(), impeller::testing::CreateTestCanvas(), impeller::Canvas::DrawLine(), impeller::InlinePassContext::EndPass(), impeller::EntityPassTarget::Flip(), impeller::InlinePassContext::GetRenderPass(), MakeSubpass(), impeller::PipelineBlend(), impeller::AtlasContents::Render(), impeller::ColorFilterAtlasContents::Render(), impeller::LineContents::Render(), impeller::RuntimeEffectContents::Render(), impeller::TextContents::Render(), impeller::TextureContents::Render(), impeller::TiledTextureContents::Render(), impeller::VerticesSimpleBlendContents::Render(), impeller::Contents::RenderToSnapshot(), impeller::Canvas::SaveLayer(), and impeller::testing::TEST_P().
| PipelineRef impeller::ContentContext::GetDestinationATopBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1234 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetDestinationBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1194 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetDestinationInBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1214 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetDestinationOutBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1224 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetDestinationOverBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1204 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| const Capabilities & impeller::ContentContext::GetDeviceCapabilities | ( | ) | const |
Definition at line 917 of file content_context.cc.
Referenced by impeller::testing::CreateTestCanvas(), GetConicalGradientSSBOFillPipeline(), GetFramebufferBlendColorBurnPipeline(), GetFramebufferBlendColorDodgePipeline(), GetFramebufferBlendColorPipeline(), GetFramebufferBlendDarkenPipeline(), GetFramebufferBlendDifferencePipeline(), GetFramebufferBlendExclusionPipeline(), GetFramebufferBlendHardLightPipeline(), GetFramebufferBlendHuePipeline(), GetFramebufferBlendLightenPipeline(), GetFramebufferBlendLuminosityPipeline(), GetFramebufferBlendMultiplyPipeline(), GetFramebufferBlendOverlayPipeline(), GetFramebufferBlendSaturationPipeline(), GetFramebufferBlendScreenPipeline(), GetFramebufferBlendSoftLightPipeline(), GetLinearGradientSSBOFillPipeline(), GetRadialGradientSSBOFillPipeline(), GetSweepGradientSSBOFillPipeline(), impeller::ConicalGradientContents::Render(), impeller::LinearGradientContents::Render(), impeller::RadialGradientContents::Render(), impeller::SweepGradientContents::Render(), impeller::TiledTextureContents::Render(), impeller::VerticesSimpleBlendContents::Render(), impeller::RequiresReadbackForBlends(), impeller::Canvas::Restore(), impeller::Canvas::SaveLayer(), and impeller::testing::TEST_P().
| PipelineRef impeller::ContentContext::GetDownsamplePipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1334 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetDrawVerticesUberPipeline | ( | BlendMode | blend_mode, |
| ContentContextOptions | opts | ||
| ) | const |
Definition at line 1429 of file content_context.cc.
References impeller::kHardLight.
Referenced by impeller::AtlasContents::Render(), and impeller::VerticesSimpleBlendContents::Render().
| std::shared_ptr< Texture > impeller::ContentContext::GetEmptyTexture | ( | ) | const |
Definition at line 837 of file content_context.cc.
Referenced by impeller::VerticesSimpleBlendContents::Render().
| PipelineRef impeller::ContentContext::GetFastGradientPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 953 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetFramebufferBlendColorBurnPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendColorDodgePipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendColorPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendDarkenPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendDifferencePipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendExclusionPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendHardLightPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendHuePipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendLightenPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendLuminosityPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendMultiplyPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendOverlayPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendSaturationPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendScreenPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetFramebufferBlendSoftLightPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetGaussianBlurPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1085 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetGlyphAtlasPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1119 of file content_context.cc.
Referenced by impeller::TextContents::Render().
|
inline |
Definition at line 264 of file content_context.h.
Referenced by impeller::FirstPassDispatcher::drawTextFrame(), impeller::TextContents::Render(), impeller::RenderToTarget(), and impeller::testing::TEST_P().
| PipelineRef impeller::ContentContext::GetLinearGradientFillPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 958 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetLinearGradientSSBOFillPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetLinearGradientUniformFillPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 963 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetLinearToSrgbFilterPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1105 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetLinePipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1439 of file content_context.cc.
Referenced by impeller::LineContents::Render().
| PipelineRef impeller::ContentContext::GetModulateBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1249 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetMorphologyFilterPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1095 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetPlusBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1244 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetPorterDuffPipeline | ( | BlendMode | mode, |
| ContentContextOptions | opts | ||
| ) | const |
Definition at line 1129 of file content_context.cc.
References impeller::BlendModeToString(), GetClearBlendPipeline(), GetDestinationATopBlendPipeline(), GetDestinationBlendPipeline(), GetDestinationInBlendPipeline(), GetDestinationOutBlendPipeline(), GetDestinationOverBlendPipeline(), GetModulateBlendPipeline(), GetPlusBlendPipeline(), GetScreenBlendPipeline(), GetSourceATopBlendPipeline(), GetSourceBlendPipeline(), GetSourceInBlendPipeline(), GetSourceOutBlendPipeline(), GetSourceOverBlendPipeline(), GetXorBlendPipeline(), impeller::kClear, impeller::kColor, impeller::kColorBurn, impeller::kColorDodge, impeller::kDarken, impeller::kDifference, impeller::kDst, impeller::kDstATop, impeller::kDstIn, impeller::kDstOut, impeller::kDstOver, impeller::kExclusion, impeller::kHardLight, impeller::kHue, impeller::kLighten, impeller::kLuminosity, impeller::kModulate, impeller::kMultiply, impeller::kOverlay, impeller::kPlus, impeller::kSaturation, impeller::kScreen, impeller::kSoftLight, impeller::kSrc, impeller::kSrcATop, impeller::kSrcIn, impeller::kSrcOut, impeller::kSrcOver, impeller::kXor, and VALIDATION_LOG.
Referenced by impeller::AtlasContents::Render(), and impeller::VerticesSimpleBlendContents::Render().
| PipelineRef impeller::ContentContext::GetRadialGradientFillPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1034 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetRadialGradientSSBOFillPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetRadialGradientUniformFillPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 968 of file content_context.cc.
|
inline |
Definition at line 268 of file content_context.h.
Referenced by impeller::EntityPassTarget::Flip(), impeller::TextShadowCache::Lookup(), MakeSubpass(), impeller::EntityPlayground::OpenPlaygroundHere(), and impeller::testing::TEST_P().
| PipelineRef impeller::ContentContext::GetRRectBlurPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1055 of file content_context.cc.
Referenced by impeller::SolidRRectBlurContents::Render().
| PipelineRef impeller::ContentContext::GetScreenBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1254 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetSolidFillPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1065 of file content_context.cc.
Referenced by impeller::SolidColorContents::Render(), and impeller::testing::TEST_P().
| PipelineRef impeller::ContentContext::GetSourceATopBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1229 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetSourceBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1189 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetSourceInBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1209 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetSourceOutBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1219 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetSourceOverBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1199 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetSrgbToLinearFilterPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1110 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetSweepGradientFillPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1060 of file content_context.cc.
| PipelineRef impeller::ContentContext::GetSweepGradientSSBOFillPipeline | ( | ContentContextOptions | opts | ) | const |
| PipelineRef impeller::ContentContext::GetSweepGradientUniformFillPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 973 of file content_context.cc.
| Tessellator & impeller::ContentContext::GetTessellator | ( | ) | const |
Definition at line 909 of file content_context.cc.
|
inline |
Definition at line 298 of file content_context.h.
Referenced by impeller::DisplayListToTexture(), impeller::RenderToTarget(), and impeller::testing::TEST_P().
| PipelineRef impeller::ContentContext::GetTexturePipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1070 of file content_context.cc.
Referenced by impeller::PipelineBlend(), impeller::AtlasContents::Render(), and impeller::TextureContents::Render().
| PipelineRef impeller::ContentContext::GetTextureStrictSrcPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1075 of file content_context.cc.
Referenced by impeller::TextureContents::Render().
| PipelineRef impeller::ContentContext::GetTiledTexturePipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1080 of file content_context.cc.
Referenced by impeller::TiledTextureContents::Render().
|
inline |
Retrieve the currnent host buffer for transient storage.
This is only safe to use from the raster threads. Other threads should allocate their own device buffers.
Definition at line 296 of file content_context.h.
Referenced by impeller::AdvancedBlend(), impeller::Geometry::ComputePositionGeometry(), impeller::ColorSourceContents::DrawGeometry(), impeller::DlVerticesGeometry::GetPositionBuffer(), impeller::RectGeometry::GetPositionBuffer(), impeller::DlVerticesGeometry::GetPositionUVColorBuffer(), impeller::EntityPlayground::OpenPlaygroundHere(), impeller::PipelineBlend(), impeller::AtlasContents::Render(), impeller::ColorFilterAtlasContents::Render(), impeller::LineContents::Render(), impeller::RuntimeEffectContents::Render(), impeller::SolidColorContents::Render(), impeller::SolidRRectBlurContents::Render(), impeller::TextContents::Render(), impeller::TextureContents::Render(), impeller::TiledTextureContents::Render(), impeller::VerticesSimpleBlendContents::Render(), impeller::ClipContents::Render(), impeller::RenderClipRestore(), impeller::RenderToTarget(), and impeller::testing::TEST_P().
| PipelineRef impeller::ContentContext::GetXorBlendPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1239 of file content_context.cc.
Referenced by GetPorterDuffPipeline().
| PipelineRef impeller::ContentContext::GetYUVToRGBFilterPipeline | ( | ContentContextOptions | opts | ) | const |
Definition at line 1124 of file content_context.cc.
| bool impeller::ContentContext::IsValid | ( | ) | const |
Definition at line 833 of file content_context.cc.
Referenced by impeller::EntityPlayground::OpenPlaygroundHere().
| fml::StatusOr< RenderTarget > impeller::ContentContext::MakeSubpass | ( | std::string_view | label, |
| const RenderTarget & | subpass_target, | ||
| const std::shared_ptr< CommandBuffer > & | command_buffer, | ||
| const SubpassCallback & | subpass_callback | ||
| ) | const |
Makes a subpass that will render to subpass_target.
Definition at line 870 of file content_context.cc.
References impeller::AddMipmapGeneration(), GetContext(), and impeller::RenderTarget::GetRenderTargetTexture().
| fml::StatusOr< RenderTarget > impeller::ContentContext::MakeSubpass | ( | std::string_view | label, |
| ISize | texture_size, | ||
| const std::shared_ptr< CommandBuffer > & | command_buffer, | ||
| const SubpassCallback & | subpass_callback, | ||
| bool | msaa_enabled = true, |
||
| bool | depth_stencil_enabled = false, |
||
| int32_t | mip_count = 1 |
||
| ) | const |
Creates a new texture of size texture_size and calls subpass_callback with a RenderPass for drawing to the texture.
Definition at line 841 of file content_context.cc.
References GetContext(), GetRenderTargetCache(), impeller::RenderTarget::kDefaultColorAttachmentConfig, impeller::RenderTarget::kDefaultColorAttachmentConfigMSAA, and impeller::RenderTarget::kDefaultStencilAttachmentConfig.
Referenced by impeller::AdvancedBlend(), impeller::PipelineBlend(), and impeller::Contents::RenderToSnapshot().