 |
Flutter Impeller
|
|
Go to the documentation of this file.
5 #ifndef FLUTTER_IMPELLER_ENTITY_CONTENTS_CONTENTS_H_
6 #define FLUTTER_IMPELLER_ENTITY_CONTENTS_CONTENTS_H_
12 #include "flutter/fml/macros.h"
23 struct ContentContextOptions;
32 const Entity& entity);
62 const std::shared_ptr<LazyGlyphAtlas>& lazy_glyph_atlas,
110 const std::optional<Rect>& current_clip_coverage)
const;
121 std::optional<Rect> coverage_limit = std::nullopt,
122 const std::optional<SamplerDescriptor>& sampler_descriptor = std::nullopt,
123 bool msaa_enabled =
true,
124 int32_t mip_count = 1,
125 const std::string& label =
"Snapshot")
const;
128 const std::optional<Rect> clip_coverage)
const;
169 ISize target_size)
const;
197 std::optional<Rect> coverage_hint_;
198 std::optional<Size> color_source_size_;
207 #endif // FLUTTER_IMPELLER_ENTITY_CONTENTS_CONTENTS_H_
std::optional< Size > GetColorSourceSize() const
Return the color source's intrinsic size, if available.
ContentContextOptions OptionsFromPass(const RenderPass &pass)
void SetCoverageHint(std::optional< Rect > coverage_hint)
Hint that specifies the coverage area of this Contents that will actually be used during rendering....
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 ...
void SetColorSourceSize(Size size)
virtual bool CanInheritOpacity(const Entity &entity) const
Whether or not this contents can accept the opacity peephole optimization.
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 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.
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...
ContentContextOptions OptionsFromPassAndEntity(const RenderPass &pass, const Entity &entity)
const std::optional< Rect > & GetCoverageHint() const
std::optional< Rect > coverage
std::function< Color(Color)> ColorFilterProc
virtual bool ShouldRender(const Entity &entity, const std::optional< Rect > clip_coverage) const
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...
Render passes encode render commands directed as one specific render target into an underlying comman...
std::function< bool(const ContentContext &renderer, const Entity &entity, RenderPass &pass)> RenderProc
virtual bool Render(const ContentContext &renderer, const Entity &entity, RenderPass &pass) const =0
virtual void SetInheritedOpacity(Scalar opacity)
Inherit the provided opacity.
static std::shared_ptr< Contents > MakeAnonymous(RenderProc render_proc, CoverageProc coverage_proc)
virtual bool ApplyColorFilter(const ColorFilterProc &color_filter_proc)
If possible, applies a color filter to this contents inputs on the CPU.
std::function< std::optional< Rect >(const Entity &entity)> CoverageProc
virtual bool IsOpaque() const
Whether this Contents only emits opaque source colors from the fragment stage. This value does not ac...
virtual const FilterContents * AsFilter() const
Cast to a filter. Returns nullptr if this Contents is not a filter.