| Flutter Impeller |

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
impeller::Texture Class Referenceabstract

`#include <texture.h>`

Inheritance diagram for impeller::Texture:

## Public Member Functions
virtual | ~Texture ()
virtual void | SetLabel (std::string_view label)=0
bool | SetContents (const uint8_t *contents, size_t length, size_t slice=0, bool is_opaque=false)
bool | SetContents (std::shared_ptr< const fml::Mapping > mapping, size_t slice=0, bool is_opaque=false)
virtual bool | IsValid () const =0
virtual ISize | GetSize () const =0
bool | IsOpaque () const
size_t | GetMipCount () const
const TextureDescriptor & | GetTextureDescriptor () const
void | SetCoordinateSystem (TextureCoordinateSystem coordinate_system)
TextureCoordinateSystem | GetCoordinateSystem () const
virtual Scalar | GetYCoordScale () const
bool | NeedsMipmapGeneration () const

## Protected Member Functions
| Texture (TextureDescriptor desc)
virtual bool | OnSetContents (const uint8_t *contents, size_t length, size_t slice)=0
virtual bool | OnSetContents (std::shared_ptr< const fml::Mapping > mapping, size_t slice)=0

## Protected Attributes
bool | mipmap_generated_ = false

## Detailed Description

Definition at line 17 of file texture.h.

## Constructor & Destructor Documentation

## ◆ ~Texture()

impeller::Texture::~Texture | ( |  | ) |
| virtual default

## ◆ Texture()

impeller::Texture::Texture | ( | TextureDescriptor | desc | ) |
| explicit protected

Definition at line 11 of file texture.cc.

11 : desc_(desc) {}

## Member Function Documentation

## ◆ GetCoordinateSystem()

TextureCoordinateSystem impeller::Texture::GetCoordinateSystem | ( |  | ) | const

Definition at line 77 of file texture.cc.

77 {
78 return coordinate_system_;
79 }

## ◆ GetMipCount()

size_t impeller::Texture::GetMipCount | ( |  | ) | const

Definition at line 53 of file texture.cc.

53 {
54 return GetTextureDescriptor().mip_count;
55 }

References GetTextureDescriptor(), and impeller::TextureDescriptor::mip_count.

## ◆ GetSize()

virtual ISize impeller::Texture::GetSize | ( |  | ) | const
| pure virtual

## ◆ GetTextureDescriptor()

const TextureDescriptor & impeller::Texture::GetTextureDescriptor | ( |  | ) | const

Definition at line 57 of file texture.cc.

57 {
58 return desc_;
59 }

Referenced by impeller::TextureGLES::Bind(), impeller::SamplerGLES::ConfigureBoundTexture(), impeller::TextureGLES::GenerateMipmap(), GetMipCount(), impeller::TextureGLES::SetAsFramebufferAttachment(), and impeller::TextureMTL::TextureMTL().

## ◆ GetYCoordScale()

Scalar impeller::Texture::GetYCoordScale | ( |  | ) | const
| virtual

Definition at line 81 of file texture.cc.

81 {
82 return 1.0;
83 }

## ◆ IsOpaque()

bool impeller::Texture::IsOpaque | ( |  | ) | const

Definition at line 49 of file texture.cc.

49 {
50 return is_opaque_;
51 }

## ◆ IsValid()

virtual bool impeller::Texture::IsValid | ( |  | ) | const
| pure virtual

Referenced by impeller::Bind().

## ◆ NeedsMipmapGeneration()

bool impeller::Texture::NeedsMipmapGeneration | ( |  | ) | const

Definition at line 85 of file texture.cc.

85 {
86 return !mipmap_generated_ && desc_.mip_count > 1;
87 }

References impeller::TextureDescriptor::mip_count, and mipmap_generated_.

Referenced by impeller::Bind(), and impeller::SamplerGLES::ConfigureBoundTexture().

## ◆ OnSetContents() [1/2]

virtual bool impeller::Texture::OnSetContents | ( | const uint8_t * | contents,
|  | size_t | length,
|  | size_t | slice
| ) |  |
| protected pure virtual

Referenced by SetContents().

## ◆ OnSetContents() [2/2]

virtual bool impeller::Texture::OnSetContents | ( | std::shared_ptr< const fml::Mapping > | mapping,
|  | size_t | slice
| ) |  |
| protected pure virtual

## ◆ SetContents() [1/2]

bool impeller::Texture::SetContents | ( | const uint8_t * | contents,
|  | size_t | length,
|  | size_t | slice = `0`,
|  | bool | is_opaque = `false`
| ) |  |

Definition at line 15 of file texture.cc.

18 {
19 if (!IsSliceValid(slice)) {
20 VALIDATION_LOG << "Invalid slice for texture.";
21 return false;
22 }
23 if (!OnSetContents(contents, length, slice)) {
24 return false;
25 }
26 coordinate_system_ = TextureCoordinateSystem::kUploadFromHost;
27 is_opaque_ = is_opaque;
28 return true;
29 }

References impeller::kUploadFromHost, OnSetContents(), and VALIDATION_LOG.

## ◆ SetContents() [2/2]

bool impeller::Texture::SetContents | ( | std::shared_ptr< const fml::Mapping > | mapping,
|  | size_t | slice = `0`,
|  | bool | is_opaque = `false`
| ) |  |

Definition at line 31 of file texture.cc.

33 {
34 if (!IsSliceValid(slice)) {
35 VALIDATION_LOG << "Invalid slice for texture.";
36 return false;
37 }
38 if (!mapping) {
39 return false;
40 }
41 if (!OnSetContents(std::move(mapping), slice)) {
42 return false;
43 }
44 coordinate_system_ = TextureCoordinateSystem::kUploadFromHost;
45 is_opaque_ = is_opaque;
46 return true;
47 }

References impeller::kUploadFromHost, OnSetContents(), and VALIDATION_LOG.

## ◆ SetCoordinateSystem()

void impeller::Texture::SetCoordinateSystem | ( | TextureCoordinateSystem | coordinate_system | ) |

Definition at line 73 of file texture.cc.

73 {
74 coordinate_system_ = coordinate_system;
75 }

## ◆ SetLabel()

virtual void impeller::Texture::SetLabel | ( | std::string_view | label | ) |
| pure virtual

## Member Data Documentation

## ◆ mipmap_generated_

bool impeller::Texture::mipmap_generated_ = false
| protected

Definition at line 61 of file texture.h.

Referenced by impeller::TextureMTL::GenerateMipmap(), impeller::TextureGLES::GenerateMipmap(), and NeedsMipmapGeneration().

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

- impeller/core/texture.h
- impeller/core/texture.cc

impeller::Texture::GetTextureDescriptor
const TextureDescriptor & GetTextureDescriptor() const
Definition: texture.cc:57
impeller::TextureDescriptor::mip_count
size_t mip_count
Definition: texture_descriptor.h:44
impeller::TextureCoordinateSystem::kUploadFromHost
@ kUploadFromHost
impeller::Texture::mipmap_generated_
bool mipmap_generated_
Definition: texture.h:61
VALIDATION_LOG
#define VALIDATION_LOG
Definition: validation.h:60
impeller::Texture::OnSetContents
virtual bool OnSetContents(const uint8_t *contents, size_t length, size_t slice)=0