Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | List of all members
GrYUVABackendTextures Class Reference

#include <GrYUVABackendTextures.h>

Public Member Functions

 GrYUVABackendTextures ()=default
 
 GrYUVABackendTextures (const GrYUVABackendTextures &)=delete
 
 GrYUVABackendTextures (GrYUVABackendTextures &&)=default
 
GrYUVABackendTexturesoperator= (const GrYUVABackendTextures &)=delete
 
GrYUVABackendTexturesoperator= (GrYUVABackendTextures &&)=default
 
 GrYUVABackendTextures (const SkYUVAInfo &, const GrBackendTexture[SkYUVAInfo::kMaxPlanes], GrSurfaceOrigin textureOrigin)
 
const std::array< GrBackendTexture, SkYUVAInfo::kMaxPlanes > & textures () const
 
GrBackendTexture texture (int i) const
 
const SkYUVAInfoyuvaInfo () const
 
int numPlanes () const
 
GrSurfaceOrigin textureOrigin () const
 
bool isValid () const
 
SkYUVAInfo::YUVALocations toYUVALocations () const
 

Detailed Description

A set of GrBackendTextures that hold the planar data for an image described a SkYUVAInfo.

Definition at line 82 of file GrYUVABackendTextures.h.

Constructor & Destructor Documentation

◆ GrYUVABackendTextures() [1/4]

GrYUVABackendTextures::GrYUVABackendTextures ( )
default

◆ GrYUVABackendTextures() [2/4]

GrYUVABackendTextures::GrYUVABackendTextures ( const GrYUVABackendTextures )
delete

◆ GrYUVABackendTextures() [3/4]

GrYUVABackendTextures::GrYUVABackendTextures ( GrYUVABackendTextures &&  )
default

◆ GrYUVABackendTextures() [4/4]

GrYUVABackendTextures::GrYUVABackendTextures ( const SkYUVAInfo yuvaInfo,
const GrBackendTexture  textures[SkYUVAInfo::kMaxPlanes],
GrSurfaceOrigin  textureOrigin 
)

Definition at line 79 of file GrYUVABackendTextures.cpp.

83 : fYUVAInfo(yuvaInfo), fTextureOrigin(textureOrigin) {
84 if (!fYUVAInfo.isValid()) {
85 return;
86 }
87 SkISize planeDimensions[SkYUVAInfo::kMaxPlanes];
88 int numPlanes = yuvaInfo.planeDimensions(planeDimensions);
89 for (int i = 0; i < numPlanes; ++i) {
90 int numRequiredChannels = fYUVAInfo.numChannelsInPlane(i);
91 if (!textures[i].isValid() ||
92 textures[i].dimensions() != planeDimensions[i] ||
93 textures[i].backend() != textures[0].backend() ||
94 num_channels(textures[i].getBackendFormat()) < numRequiredChannels) {
95 *this = {};
96 return;
97 }
98 fTextures[i] = textures[i];
99 }
100}
const char * backend
static int num_channels(const GrBackendFormat &format)
const SkYUVAInfo & yuvaInfo() const
const std::array< GrBackendTexture, SkYUVAInfo::kMaxPlanes > & textures() const
GrSurfaceOrigin textureOrigin() const
static constexpr int kMaxPlanes
Definition SkYUVAInfo.h:98
int planeDimensions(SkISize planeDimensions[kMaxPlanes]) const
Definition SkYUVAInfo.h:192
bool isValid() const
Definition SkYUVAInfo.h:233
int numChannelsInPlane(int i) const
Definition SkYUVAInfo.h:206

Member Function Documentation

◆ isValid()

bool GrYUVABackendTextures::isValid ( ) const
inline

Definition at line 110 of file GrYUVABackendTextures.h.

110{ return fYUVAInfo.isValid(); }

◆ numPlanes()

int GrYUVABackendTextures::numPlanes ( ) const
inline

Definition at line 106 of file GrYUVABackendTextures.h.

106{ return fYUVAInfo.numPlanes(); }
int numPlanes() const
Definition SkYUVAInfo.h:204

◆ operator=() [1/2]

GrYUVABackendTextures & GrYUVABackendTextures::operator= ( const GrYUVABackendTextures )
delete

◆ operator=() [2/2]

GrYUVABackendTextures & GrYUVABackendTextures::operator= ( GrYUVABackendTextures &&  )
default

◆ texture()

GrBackendTexture GrYUVABackendTextures::texture ( int  i) const
inline

Definition at line 99 of file GrYUVABackendTextures.h.

99 {
100 SkASSERT(i >= 0 && i < SkYUVAInfo::kMaxPlanes);
101 return fTextures[static_cast<size_t>(i)];
102 }
#define SkASSERT(cond)
Definition SkAssert.h:116

◆ textureOrigin()

GrSurfaceOrigin GrYUVABackendTextures::textureOrigin ( ) const
inline

Definition at line 108 of file GrYUVABackendTextures.h.

108{ return fTextureOrigin; }

◆ textures()

const std::array< GrBackendTexture, SkYUVAInfo::kMaxPlanes > & GrYUVABackendTextures::textures ( ) const
inline

Definition at line 95 of file GrYUVABackendTextures.h.

95 {
96 return fTextures;
97 }

◆ toYUVALocations()

SkYUVAInfo::YUVALocations GrYUVABackendTextures::toYUVALocations ( ) const

Computes a YUVALocations representation of the planar layout. The result is guaranteed to be valid if this->isValid().

Definition at line 102 of file GrYUVABackendTextures.cpp.

102 {
103 uint32_t channelFlags[] = {fTextures[0].getBackendFormat().channelMask(),
104 fTextures[1].getBackendFormat().channelMask(),
105 fTextures[2].getBackendFormat().channelMask(),
106 fTextures[3].getBackendFormat().channelMask()};
107 auto result = fYUVAInfo.toYUVALocations(channelFlags);
110 SkASSERT(numPlanes == this->numPlanes());
111 return result;
112}
#define SkDEBUGCODE(...)
Definition SkDebug.h:23
YUVALocations toYUVALocations(const uint32_t *channelFlags) const
GAsyncResult * result
static bool AreValidLocations(const SkYUVAInfo::YUVALocations &locations, int *numPlanes=nullptr)

◆ yuvaInfo()

const SkYUVAInfo & GrYUVABackendTextures::yuvaInfo ( ) const
inline

Definition at line 104 of file GrYUVABackendTextures.h.

104{ return fYUVAInfo; }

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