Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | List of all members
GrVkBackendTextureData Class Referencefinal
Inheritance diagram for GrVkBackendTextureData:
GrBackendTextureData

Public Member Functions

 GrVkBackendTextureData (const GrVkImageInfo &info, sk_sp< skgpu::MutableTextureState > mutableState=nullptr)
 
const GrVkImageInfoinfo () const
 
sk_sp< skgpu::MutableTextureStategetMutableState () const override
 
void setMutableState (const skgpu::MutableTextureState &state) override
 
skgpu::MutableTextureStatemutableState ()
 
const skgpu::MutableTextureStatemutableState () const
 
- Public Member Functions inherited from GrBackendTextureData
virtual ~GrBackendTextureData ()
 

Private Member Functions

void copyTo (AnyTextureData &textureData) const override
 
bool isProtected () const override
 
bool equal (const GrBackendTextureData *that) const override
 
bool isSameTexture (const GrBackendTextureData *that) const override
 
GrBackendFormat getBackendFormat () const override
 

Additional Inherited Members

- Protected Types inherited from GrBackendTextureData
using AnyTextureData = GrBackendTexture::AnyTextureData
 
- Protected Member Functions inherited from GrBackendTextureData
 GrBackendTextureData ()=default
 
 GrBackendTextureData (const GrBackendTextureData &)=default
 

Detailed Description

Definition at line 157 of file GrVkBackendSurface.cpp.

Constructor & Destructor Documentation

◆ GrVkBackendTextureData()

GrVkBackendTextureData::GrVkBackendTextureData ( const GrVkImageInfo info,
sk_sp< skgpu::MutableTextureState mutableState = nullptr 
)
inline

Definition at line 159 of file GrVkBackendSurface.cpp.

161 : fVkInfo(info) {
162 if (mutableState) {
163 fMutableState = std::move(mutableState);
164 } else {
165 fMutableState =
166 sk_make_sp<skgpu::MutableTextureState>(skgpu::MutableTextureStates::MakeVulkan(
168 }
169 }
const GrVkImageInfo & info() const
skgpu::MutableTextureState * mutableState()
SK_API MutableTextureState MakeVulkan(VkImageLayout layout, uint32_t queueFamilyIndex)
uint32_t fCurrentQueueFamily
Definition GrVkTypes.h:34
VkImageLayout fImageLayout
Definition GrVkTypes.h:29

Member Function Documentation

◆ copyTo()

void GrVkBackendTextureData::copyTo ( AnyTextureData textureData) const
inlineoverrideprivatevirtual

Implements GrBackendTextureData.

Definition at line 184 of file GrVkBackendSurface.cpp.

184 {
185 textureData.emplace<GrVkBackendTextureData>(fVkInfo, fMutableState);
186 }

◆ equal()

bool GrVkBackendTextureData::equal ( const GrBackendTextureData that) const
inlineoverrideprivatevirtual

Implements GrBackendTextureData.

Definition at line 190 of file GrVkBackendSurface.cpp.

190 {
191 SkASSERT(!that || that->type() == GrBackendApi::kVulkan);
192 if (auto otherVk = static_cast<const GrVkBackendTextureData*>(that)) {
193 // For our tests when checking equality we are assuming both backendTexture objects will
194 // be using the same mutable state object.
195 if (fMutableState != otherVk->fMutableState) {
196 return false;
197 }
198 return GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get()) ==
199 GrVkImageInfoWithMutableState(otherVk->fVkInfo, fMutableState.get());
200 }
201 return false;
202 }
GrVkImageInfo GrVkImageInfoWithMutableState(const GrVkImageInfo &info, const skgpu::MutableTextureState *mutableState)
#define SkASSERT(cond)
Definition SkAssert.h:116
T * get() const
Definition SkRefCnt.h:303

◆ getBackendFormat()

GrBackendFormat GrVkBackendTextureData::getBackendFormat ( ) const
inlineoverrideprivatevirtual

Implements GrBackendTextureData.

Definition at line 213 of file GrVkBackendSurface.cpp.

213 {
214 auto info = GrVkImageInfoWithMutableState(fVkInfo, fMutableState.get());
218 return GrBackendFormats::MakeVk(info.fYcbcrConversionInfo, usesDRMModifier);
219 }
220 return GrBackendFormats::MakeVk(info.fFormat, usesDRMModifier);
221 }
SK_API GrBackendFormat MakeVk(VkFormat format, bool willUseDRMFormatModifiers=false)
GrVkYcbcrConversionInfo fYcbcrConversionInfo
Definition GrVkTypes.h:36
VkFormat fFormat
Definition GrVkTypes.h:30
VkImageTiling fImageTiling
Definition GrVkTypes.h:28
@ VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT

◆ getMutableState()

sk_sp< skgpu::MutableTextureState > GrVkBackendTextureData::getMutableState ( ) const
inlineoverridevirtual

Reimplemented from GrBackendTextureData.

Definition at line 173 of file GrVkBackendSurface.cpp.

173 {
174 return fMutableState;
175 }

◆ info()

const GrVkImageInfo & GrVkBackendTextureData::info ( ) const
inline

Definition at line 171 of file GrVkBackendSurface.cpp.

171{ return fVkInfo; }

◆ isProtected()

bool GrVkBackendTextureData::isProtected ( ) const
inlineoverrideprivatevirtual

Implements GrBackendTextureData.

Definition at line 188 of file GrVkBackendSurface.cpp.

188{ return fVkInfo.fProtected == skgpu::Protected::kYes; }
skgpu::Protected fProtected
Definition GrVkTypes.h:35

◆ isSameTexture()

bool GrVkBackendTextureData::isSameTexture ( const GrBackendTextureData that) const
inlineoverrideprivatevirtual

Implements GrBackendTextureData.

Definition at line 204 of file GrVkBackendSurface.cpp.

204 {
205 SkASSERT(!that || that->type() == GrBackendApi::kVulkan);
206 if (auto otherVk = static_cast<const GrVkBackendTextureData*>(that)) {
207 return fVkInfo.fImage == otherVk->fVkInfo.fImage;
208 }
209 return false;
210
211 }
VkImage fImage
Definition GrVkTypes.h:26

◆ mutableState() [1/2]

skgpu::MutableTextureState * GrVkBackendTextureData::mutableState ( )
inline

Definition at line 180 of file GrVkBackendSurface.cpp.

180{ return fMutableState.get(); }

◆ mutableState() [2/2]

const skgpu::MutableTextureState * GrVkBackendTextureData::mutableState ( ) const
inline

Definition at line 181 of file GrVkBackendSurface.cpp.

181{ return fMutableState.get(); }

◆ setMutableState()

void GrVkBackendTextureData::setMutableState ( const skgpu::MutableTextureState state)
inlineoverridevirtual

Reimplemented from GrBackendTextureData.

Definition at line 176 of file GrVkBackendSurface.cpp.

176 {
177 fMutableState->set(state);
178 }
void set(const MutableTextureState &that)
AtkStateType state

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