Flutter Engine
The Flutter Engine
Public Member Functions | Public Attributes | List of all members
impeller::Snapshot Struct Reference

Represents a texture and its intended draw transform/sampler configuration. More...

#include <snapshot.h>

Public Member Functions

std::optional< RectGetCoverage () const
 
std::optional< MatrixGetUVTransform () const
 Get the transform that converts screen space coordinates to the UV space of this snapshot. More...
 
std::optional< std::array< Point, 4 > > GetCoverageUVs (const Rect &coverage) const
 Map a coverage rect to this filter input's UV space. Result order: Top left, top right, bottom left, bottom right. More...
 

Public Attributes

std::shared_ptr< Texturetexture
 
Matrix transform
 The transform that should be applied to this texture for rendering. More...
 
SamplerDescriptor sampler_descriptor
 
Scalar opacity = 1.0f
 

Detailed Description

Represents a texture and its intended draw transform/sampler configuration.

Definition at line 24 of file snapshot.h.

Member Function Documentation

◆ GetCoverage()

std::optional< Rect > impeller::Snapshot::GetCoverage ( ) const

Definition at line 11 of file snapshot.cc.

11 {
12 if (!texture) {
13 return std::nullopt;
14 }
16}
Matrix transform
The transform that should be applied to this texture for rendering.
Definition: snapshot.h:27
std::shared_ptr< Texture > texture
Definition: snapshot.h:25
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

◆ GetCoverageUVs()

std::optional< std::array< Point, 4 > > impeller::Snapshot::GetCoverageUVs ( const Rect coverage) const

Map a coverage rect to this filter input's UV space. Result order: Top left, top right, bottom left, bottom right.

Definition at line 26 of file snapshot.cc.

27 {
28 auto uv_transform = GetUVTransform();
29 if (!uv_transform.has_value()) {
30 return std::nullopt;
31 }
32 return coverage.GetTransformedPoints(uv_transform.value());
33}
std::optional< Matrix > GetUVTransform() const
Get the transform that converts screen space coordinates to the UV space of this snapshot.
Definition: snapshot.cc:18

◆ GetUVTransform()

std::optional< Matrix > impeller::Snapshot::GetUVTransform ( ) const

Get the transform that converts screen space coordinates to the UV space of this snapshot.

Definition at line 18 of file snapshot.cc.

18 {
19 if (!texture || texture->GetSize().IsEmpty()) {
20 return std::nullopt;
21 }
22 return Matrix::MakeScale(1 / Vector2(texture->GetSize())) *
24}
Point Vector2
Definition: point.h:326
Matrix Invert() const
Definition: matrix.cc:97
static constexpr Matrix MakeScale(const Vector3 &s)
Definition: matrix.h:104

Member Data Documentation

◆ opacity

Scalar impeller::Snapshot::opacity = 1.0f

Definition at line 35 of file snapshot.h.

◆ sampler_descriptor

SamplerDescriptor impeller::Snapshot::sampler_descriptor
Initial value:
=
SamplerDescriptor("Default Snapshot Sampler",
@ kNearest
The nearst mipmap level is selected.

Definition at line 29 of file snapshot.h.

◆ texture

std::shared_ptr<Texture> impeller::Snapshot::texture

Definition at line 25 of file snapshot.h.

◆ transform

Matrix impeller::Snapshot::transform

The transform that should be applied to this texture for rendering.

Definition at line 27 of file snapshot.h.


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