5#ifndef FLUTTER_IMPELLER_ENTITY_CONTENTS_CONTENTS_H_
6#define FLUTTER_IMPELLER_ENTITY_CONTENTS_CONTENTS_H_
20struct ContentContextOptions;
29 const Entity& entity);
59 const std::shared_ptr<LazyGlyphAtlas>& lazy_glyph_atlas,
107 const std::optional<Rect>& current_clip_coverage)
const;
118 std::optional<Rect> coverage_limit = std::nullopt,
119 const std::optional<SamplerDescriptor>& sampler_descriptor = std::nullopt,
120 bool msaa_enabled =
true,
121 int32_t mip_count = 1,
122 const std::string& label =
"Snapshot")
const;
125 const std::optional<Rect> clip_coverage)
const;
166 ISize target_size)
const;
194 std::optional<Rect> coverage_hint_;
195 std::optional<Size> color_source_size_;
virtual bool Render(const ContentContext &renderer, const Entity &entity, RenderPass &pass) const =0
virtual bool CanInheritOpacity(const Entity &entity) const
Whether or not this contents can accept the opacity peephole optimization.
virtual std::optional< Color > AsBackgroundColor(const Entity &entity, ISize target_size) const
Returns a color if this Contents will flood the given target_size with a color. This output color is ...
virtual std::optional< Rect > GetCoverage(const Entity &entity) const =0
Get the area of the render pass that will be affected when this contents is rendered.
std::optional< Size > GetColorSourceSize() const
Return the color source's intrinsic size, if available.
virtual void PopulateGlyphAtlas(const std::shared_ptr< LazyGlyphAtlas > &lazy_glyph_atlas, Scalar scale)
Add any text data to the specified lazy atlas. The scale parameter must be used again later when draw...
virtual bool ApplyColorFilter(const ColorFilterProc &color_filter_proc)
If possible, applies a color filter to this contents inputs on the CPU.
const std::optional< Rect > & GetCoverageHint() const
virtual std::optional< Snapshot > RenderToSnapshot(const ContentContext &renderer, const Entity &entity, std::optional< Rect > coverage_limit=std::nullopt, const std::optional< SamplerDescriptor > &sampler_descriptor=std::nullopt, bool msaa_enabled=true, int32_t mip_count=1, const std::string &label="Snapshot") const
Render this contents to a snapshot, respecting the entity's transform, path, clip depth,...
virtual ClipCoverage GetClipCoverage(const Entity &entity, const std::optional< Rect > ¤t_clip_coverage) const
Given the current pass space bounding rectangle of the clip buffer, return the expected clip coverage...
void SetColorSourceSize(Size size)
virtual bool IsOpaque() const
Whether this Contents only emits opaque source colors from the fragment stage. This value does not ac...
virtual bool ShouldRender(const Entity &entity, const std::optional< Rect > clip_coverage) const
std::function< std::optional< Rect >(const Entity &entity)> CoverageProc
virtual void SetInheritedOpacity(Scalar opacity)
Inherit the provided opacity.
static std::shared_ptr< Contents > MakeAnonymous(RenderProc render_proc, CoverageProc coverage_proc)
std::function< Color(Color)> ColorFilterProc
void SetCoverageHint(std::optional< Rect > coverage_hint)
Hint that specifies the coverage area of this Contents that will actually be used during rendering....
virtual const FilterContents * AsFilter() const
Cast to a filter. Returns nullptr if this Contents is not a filter.
std::function< bool(const ContentContext &renderer, const Entity &entity, RenderPass &pass)> RenderProc
Render passes encode render commands directed as one specific render target into an underlying comman...
Dart_NativeFunction function
SK_API sk_sp< SkShader > Color(SkColor)
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
ContentContextOptions OptionsFromPassAndEntity(const RenderPass &pass, const Entity &entity)
ContentContextOptions OptionsFromPass(const RenderPass &pass)
std::optional< Rect > coverage