Flutter Engine
The Flutter Engine
Public Member Functions | List of all members
impeller::TextureFilterInput Class Referencefinal

#include <texture_filter_input.h>

Inheritance diagram for impeller::TextureFilterInput:
impeller::FilterInput

Public Member Functions

 ~TextureFilterInput () override
 
Variant GetInput () const override
 
std::optional< SnapshotGetSnapshot (const std::string &label, const ContentContext &renderer, const Entity &entity, std::optional< Rect > coverage_limit, int32_t mip_count) const override
 
std::optional< RectGetCoverage (const Entity &entity) const override
 
Matrix GetLocalTransform (const Entity &entity) const override
 Get the local transform of this filter input. This transform is relative to the Entity transform space. More...
 
- Public Member Functions inherited from impeller::FilterInput
virtual ~FilterInput ()
 
virtual Variant GetInput () const =0
 
virtual std::optional< SnapshotGetSnapshot (const std::string &label, const ContentContext &renderer, const Entity &entity, std::optional< Rect > coverage_limit=std::nullopt, int32_t mip_count=1) const =0
 
std::optional< RectGetLocalCoverage (const Entity &entity) const
 
virtual std::optional< RectGetCoverage (const Entity &entity) const =0
 
virtual std::optional< RectGetSourceCoverage (const Matrix &effect_transform, const Rect &output_limit) const
 
virtual Matrix GetLocalTransform (const Entity &entity) const
 Get the local transform of this filter input. This transform is relative to the Entity transform space. More...
 
virtual Matrix GetTransform (const Entity &entity) const
 Get the transform of this FilterInput. This is equivalent to calling entity.GetTransform() * GetLocalTransform(). More...
 
virtual void PopulateGlyphAtlas (const std::shared_ptr< LazyGlyphAtlas > &lazy_glyph_atlas, Scalar scale)
 
virtual bool IsTranslationOnly () const
 
virtual bool IsLeaf () const
 Returns true unless this input is a FilterInput, which may take other inputs. More...
 
virtual void SetLeafInputs (const FilterInput::Vector &inputs)
 Replaces the inputs of all leaf FilterContents with a new set of inputs. More...
 
virtual void SetEffectTransform (const Matrix &matrix)
 Sets the effect transform of filter inputs. More...
 
virtual void SetRenderingMode (Entity::RenderingMode rendering_mode)
 Turns on subpass mode for filter inputs. More...
 

Additional Inherited Members

- Public Types inherited from impeller::FilterInput
using Ref = std::shared_ptr< FilterInput >
 
using Vector = std::vector< FilterInput::Ref >
 
using Variant = std::variant< std::shared_ptr< FilterContents >, std::shared_ptr< Contents >, std::shared_ptr< Texture >, Rect >
 
- Static Public Member Functions inherited from impeller::FilterInput
static FilterInput::Ref Make (Variant input, bool msaa_enabled=true)
 
static FilterInput::Ref Make (std::shared_ptr< Texture > input, Matrix local_transform)
 
static FilterInput::Vector Make (std::initializer_list< Variant > inputs)
 

Detailed Description

Definition at line 14 of file texture_filter_input.h.

Constructor & Destructor Documentation

◆ ~TextureFilterInput()

impeller::TextureFilterInput::~TextureFilterInput ( )
overridedefault

Member Function Documentation

◆ GetCoverage()

std::optional< Rect > impeller::TextureFilterInput::GetCoverage ( const Entity entity) const
overridevirtual

Implements impeller::FilterInput.

Definition at line 38 of file texture_filter_input.cc.

39 {
40 return Rect::MakeSize(texture_->GetSize())
42}
virtual Matrix GetTransform(const Entity &entity) const
Get the transform of this FilterInput. This is equivalent to calling entity.GetTransform() * GetLocal...
Definition: filter_input.cc:75
constexpr TRect TransformBounds(const Matrix &transform) const
Creates a new bounding box that contains this transformed rectangle.
Definition: rect.h:463
static constexpr TRect MakeSize(const TSize< U > &size)
Definition: rect.h:146

◆ GetInput()

FilterInput::Variant impeller::TextureFilterInput::GetInput ( ) const
overridevirtual

Implements impeller::FilterInput.

Definition at line 19 of file texture_filter_input.cc.

19 {
20 return texture_;
21}

◆ GetLocalTransform()

Matrix impeller::TextureFilterInput::GetLocalTransform ( const Entity entity) const
overridevirtual

Get the local transform of this filter input. This transform is relative to the Entity transform space.

Reimplemented from impeller::FilterInput.

Definition at line 44 of file texture_filter_input.cc.

44 {
45 return local_transform_;
46}

◆ GetSnapshot()

std::optional< Snapshot > impeller::TextureFilterInput::GetSnapshot ( const std::string &  label,
const ContentContext renderer,
const Entity entity,
std::optional< Rect coverage_limit,
int32_t  mip_count 
) const
overridevirtual

Implements impeller::FilterInput.

Definition at line 23 of file texture_filter_input.cc.

28 {
29 auto snapshot =
30 Snapshot{.texture = texture_, .transform = GetTransform(entity)};
31 if (texture_->GetMipCount() > 1) {
32 snapshot.sampler_descriptor.label = "TextureFilterInput Trilinear Sampler";
33 snapshot.sampler_descriptor.mip_filter = MipFilter::kLinear;
34 }
35 return snapshot;
36}
@ kLinear
Sample from the two nearest mip levels and linearly interpolate.

The documentation for this class was generated from the following files: