38 , fSampleCount(dawnInfo.fSampleCount)
39 , fMipmapped(dawnInfo.fMipmapped)
41 , fDawnSpec(dawnInfo) {}
45 TextureInfo(
const MtlTextureInfo& mtlInfo)
48 , fSampleCount(mtlInfo.fSampleCount)
49 , fMipmapped(mtlInfo.fMipmapped)
51 , fMtlSpec(mtlInfo) {}
55 TextureInfo(
const VulkanTextureInfo& vkInfo)
58 , fSampleCount(vkInfo.fSampleCount)
59 , fMipmapped(vkInfo.fMipmapped)
63 fProtected = Protected::kYes;
89 if (!this->isValid() || fBackend != BackendApi::kMetal) {
92 *
info = MtlTextureSpecToTextureInfo(fMtlSpec, fSampleCount, fMipmapped);
98 bool getVulkanTextureInfo(VulkanTextureInfo*
info)
const {
99 if (!this->isValid() || fBackend != BackendApi::kVulkan) {
107 bool isCompatible(
const TextureInfo& that)
const;
113 size_t bytesPerPixel()
const;
116 friend class DawnCaps;
117 friend class DawnCommandBuffer;
118 friend class DawnComputePipeline;
119 friend class DawnGraphicsPipeline;
120 friend class DawnResourceProvider;
121 friend class DawnTexture;
122 const DawnTextureSpec& dawnTextureSpec()
const {
123 SkASSERT(fValid && fBackend == BackendApi::kDawn);
129 friend class MtlCaps;
130 friend class MtlGraphicsPipeline;
131 friend class MtlTexture;
132 const MtlTextureSpec& mtlTextureSpec()
const {
133 SkASSERT(fValid && fBackend == BackendApi::kMetal);
139 friend class VulkanCaps;
140 friend class VulkanTexture;
141 const VulkanTextureSpec& vulkanTextureSpec()
const {
142 SkASSERT(fValid && fBackend == BackendApi::kVulkan);
150 uint32_t fSampleCount = 1;
156 DawnTextureSpec fDawnSpec;
159 MtlTextureSpec fMtlSpec;
162 VulkanTextureSpec fVkSpec;
Mipmapped mipmapped() const
TextureInfo(const TextureInfo &)=default
bool operator!=(const TextureInfo &that) const
uint32_t numSamples() const
BackendApi backend() const
void * fEnsureUnionNonEmpty
Protected isProtected() const