1 /* 2 * Copyright 2018 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #ifndef GrVkTypesPriv_DEFINED 9 #define GrVkTypesPriv_DEFINED 10 11 #include "include/core/SkRefCnt.h" 12 #include "include/gpu/vk/GrVkTypes.h" 13 14 namespace skgpu { 15 class MutableTextureState; 16 } 17 18 GrVkImageInfo GrVkImageInfoWithMutableState(const GrVkImageInfo&, 19 const skgpu::MutableTextureState*); 20 21 struct GrVkImageSpec { GrVkImageSpecGrVkImageSpec22 GrVkImageSpec() 23 : fImageTiling(VK_IMAGE_TILING_OPTIMAL) 24 , fFormat(VK_FORMAT_UNDEFINED) 25 , fImageUsageFlags(0) 26 , fSharingMode(VK_SHARING_MODE_EXCLUSIVE) {} 27 GrVkImageSpecGrVkImageSpec28 GrVkImageSpec(const GrVkSurfaceInfo& info) 29 : fImageTiling(info.fImageTiling) 30 , fFormat(info.fFormat) 31 , fImageUsageFlags(info.fImageUsageFlags) 32 , fYcbcrConversionInfo(info.fYcbcrConversionInfo) 33 , fSharingMode(info.fSharingMode) {} 34 35 VkImageTiling fImageTiling; 36 VkFormat fFormat; 37 VkImageUsageFlags fImageUsageFlags; 38 GrVkYcbcrConversionInfo fYcbcrConversionInfo; 39 VkSharingMode fSharingMode; 40 }; 41 42 GrVkSurfaceInfo GrVkImageSpecToSurfaceInfo(const GrVkImageSpec& vkSpec, 43 uint32_t sampleCount, 44 uint32_t levelCount, 45 skgpu::Protected isProtected); 46 47 #endif 48