• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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