| /* |
| * Copyright 2022 Google LLC |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #include "include/private/gpu/graphite/DawnTypesPriv.h" |
| |
| namespace skgpu::graphite { |
| |
| SkString DawnTextureSpec::toString() const { |
| return SkStringPrintf("format=0x%08X,viewFormat=0x%08X,usage=0x%08X,aspect=0x%08X,slice=%u", |
| static_cast<unsigned int>(fFormat), |
| static_cast<unsigned int>(fViewFormat), |
| static_cast<unsigned int>(fUsage), |
| static_cast<unsigned int>(fAspect), |
| fSlice); |
| } |
| |
| DawnTextureInfo DawnTextureInfoFromWGPUTexture(WGPUTexture texture) { |
| SkASSERT(texture); |
| return DawnTextureInfo( |
| wgpuTextureGetSampleCount(texture), |
| wgpuTextureGetMipLevelCount(texture) > 1 ? Mipmapped::kYes : Mipmapped::kNo, |
| /*format=*/static_cast<wgpu::TextureFormat>(wgpuTextureGetFormat(texture)), |
| /*viewFormat=*/static_cast<wgpu::TextureFormat>(wgpuTextureGetFormat(texture)), |
| static_cast<wgpu::TextureUsage>(wgpuTextureGetUsage(texture)), |
| wgpu::TextureAspect::All, /*slice=*/0); |
| } |
| |
| DawnTextureInfo DawnTextureSpecToTextureInfo(const DawnTextureSpec& dawnSpec, |
| uint32_t sampleCount, |
| Mipmapped mipmapped) { |
| DawnTextureInfo info; |
| // Shared info |
| info.fSampleCount = sampleCount; |
| info.fMipmapped = mipmapped; |
| |
| // Dawn info |
| info.fFormat = dawnSpec.fFormat; |
| info.fViewFormat = dawnSpec.fViewFormat; |
| info.fUsage = dawnSpec.fUsage; |
| info.fAspect = dawnSpec.fAspect; |
| #if !defined(__EMSCRIPTEN__) |
| info.fYcbcrVkDescriptor = dawnSpec.fYcbcrVkDescriptor; |
| #endif |
| |
| return info; |
| } |
| |
| } // namespace skgpu::graphite |