OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2015 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 #include "GrVkUtil.h" | |
9 | |
10 bool GrPixelConfigToVkFormat(GrPixelConfig config, VkFormat* format) { | |
11 VkFormat dontCare; | |
12 if (!format) { | |
13 format = &dontCare; | |
14 } | |
15 | |
16 switch (config) { | |
17 case kRGBA_8888_GrPixelConfig: | |
18 *format = VK_FORMAT_R8G8B8A8_UNORM; | |
19 break; | |
20 case kBGRA_8888_GrPixelConfig: | |
21 *format = VK_FORMAT_B8G8R8A8_UNORM; | |
22 break; | |
23 case kSRGBA_8888_GrPixelConfig: | |
24 *format = VK_FORMAT_R8G8B8A8_SRGB; | |
25 break; | |
26 case kRGB_565_GrPixelConfig: | |
27 *format = VK_FORMAT_R5G6B5_UNORM_PACK16; | |
28 break; | |
29 case kRGBA_4444_GrPixelConfig: | |
30 *format = VK_FORMAT_R4G4B4A4_UNORM_PACK16; | |
31 break; | |
32 case kIndex_8_GrPixelConfig: | |
33 // No current rad support for this config | |
34 return false; | |
35 case kAlpha_8_GrPixelConfig: | |
36 *format = VK_FORMAT_R8_UNORM; | |
37 break; | |
38 case kETC1_GrPixelConfig: | |
39 // converting to ETC2 which is a superset of ETC1 | |
40 *format = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK; | |
41 break; | |
42 case kLATC_GrPixelConfig: | |
43 // No current rad support for this config | |
44 return false; | |
45 case kR11_EAC_GrPixelConfig: | |
46 *format = VK_FORMAT_EAC_R11_UNORM_BLOCK; | |
47 break; | |
48 case kASTC_12x12_GrPixelConfig: | |
49 *format = VK_FORMAT_ASTC_12x12_UNORM_BLOCK; | |
50 break; | |
51 case kRGBA_float_GrPixelConfig: | |
52 *format = VK_FORMAT_R32G32B32A32_SFLOAT; | |
53 break; | |
54 case kRGBA_half_GrPixelConfig: | |
55 *format = VK_FORMAT_R16G16B16A16_SFLOAT; | |
56 break; | |
57 case kAlpha_half_GrPixelConfig: | |
58 *format = VK_FORMAT_R16_SFLOAT; | |
59 break; | |
60 default: | |
61 return false; | |
62 } | |
63 return true; | |
64 } | |
65 | |
66 bool GrSampleCountToVkSampleCount(uint32_t samples, VkSampleCountFlagBits* vkSam
ples) { | |
67 switch (samples) { | |
68 case 0: // fall through | |
69 case 1: | |
70 *vkSamples = VK_SAMPLE_COUNT_1_BIT; | |
71 return true; | |
72 case 2: | |
73 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | |
74 return true; | |
75 case 4: | |
76 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | |
77 return true; | |
78 case 8: | |
79 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | |
80 return true; | |
81 case 16: | |
82 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | |
83 return true; | |
84 case 32: | |
85 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | |
86 return true; | |
87 case 64: | |
88 *vkSamples = VK_SAMPLE_COUNT_2_BIT; | |
89 return true; | |
90 default: | |
91 return false; | |
92 } | |
93 } | |
94 | |
OLD | NEW |