1use utils::vk_traits::*;
4
5#[repr(i32)]
7#[derive(Debug, PartialEq, Copy, Clone)]
8pub enum VkFormat {
9 Undefined = 0,
10 R4G4UnormPack8 = 1,
11 R4G4B4A4UnormPack16 = 2,
12 B4G4R4A4UnormPack16 = 3,
13 R5G6B5UnormPack16 = 4,
14 B5G6R5UnormPack16 = 5,
15 R5G5B5A1UnormPack16 = 6,
16 B5G5R5A1UnormPack16 = 7,
17 A1R5G5B5UnormPack16 = 8,
18 R8Unorm = 9,
19 R8Snorm = 10,
20 R8Uscaled = 11,
21 R8Sscaled = 12,
22 R8Uint = 13,
23 R8Sint = 14,
24 R8Srgb = 15,
25 R8G8Unorm = 16,
26 R8G8Snorm = 17,
27 R8G8Uscaled = 18,
28 R8G8Sscaled = 19,
29 R8G8Uint = 20,
30 R8G8Sint = 21,
31 R8G8Srgb = 22,
32 R8G8B8Unorm = 23,
33 R8G8B8Snorm = 24,
34 R8G8B8Uscaled = 25,
35 R8G8B8Sscaled = 26,
36 R8G8B8Uint = 27,
37 R8G8B8Sint = 28,
38 R8G8B8Srgb = 29,
39 B8G8R8Unorm = 30,
40 B8G8R8Snorm = 31,
41 B8G8R8Uscaled = 32,
42 B8G8R8Sscaled = 33,
43 B8G8R8Uint = 34,
44 B8G8R8Sint = 35,
45 B8G8R8Srgb = 36,
46 R8G8B8A8Unorm = 37,
47 R8G8B8A8Snorm = 38,
48 R8G8B8A8Uscaled = 39,
49 R8G8B8A8Sscaled = 40,
50 R8G8B8A8Uint = 41,
51 R8G8B8A8Sint = 42,
52 R8G8B8A8Srgb = 43,
53 B8G8R8A8Unorm = 44,
54 B8G8R8A8Snorm = 45,
55 B8G8R8A8Uscaled = 46,
56 B8G8R8A8Sscaled = 47,
57 B8G8R8A8Uint = 48,
58 B8G8R8A8Sint = 49,
59 B8G8R8A8Srgb = 50,
60 A8B8G8R8UnormPack32 = 51,
61 A8B8G8R8SnormPack32 = 52,
62 A8B8G8R8UscaledPack32 = 53,
63 A8B8G8R8SscaledPack32 = 54,
64 A8B8G8R8UintPack32 = 55,
65 A8B8G8R8SintPack32 = 56,
66 A8B8G8R8SrgbPack32 = 57,
67 A2R10G10B10UnormPack32 = 58,
68 A2R10G10B10SnormPack32 = 59,
69 A2R10G10B10UscaledPack32 = 60,
70 A2R10G10B10SscaledPack32 = 61,
71 A2R10G10B10UintPack32 = 62,
72 A2R10G10B10SintPack32 = 63,
73 A2B10G10R10UnormPack32 = 64,
74 A2B10G10R10SnormPack32 = 65,
75 A2B10G10R10UscaledPack32 = 66,
76 A2B10G10R10SscaledPack32 = 67,
77 A2B10G10R10UintPack32 = 68,
78 A2B10G10R10SintPack32 = 69,
79 R16Unorm = 70,
80 R16Snorm = 71,
81 R16Uscaled = 72,
82 R16Sscaled = 73,
83 R16Uint = 74,
84 R16Sint = 75,
85 R16Sfloat = 76,
86 R16G16Unorm = 77,
87 R16G16Snorm = 78,
88 R16G16Uscaled = 79,
89 R16G16Sscaled = 80,
90 R16G16Uint = 81,
91 R16G16Sint = 82,
92 R16G16Sfloat = 83,
93 R16G16B16Unorm = 84,
94 R16G16B16Snorm = 85,
95 R16G16B16Uscaled = 86,
96 R16G16B16Sscaled = 87,
97 R16G16B16Uint = 88,
98 R16G16B16Sint = 89,
99 R16G16B16Sfloat = 90,
100 R16G16B16A16Unorm = 91,
101 R16G16B16A16Snorm = 92,
102 R16G16B16A16Uscaled = 93,
103 R16G16B16A16Sscaled = 94,
104 R16G16B16A16Uint = 95,
105 R16G16B16A16Sint = 96,
106 R16G16B16A16Sfloat = 97,
107 R32Uint = 98,
108 R32Sint = 99,
109 R32Sfloat = 100,
110 R32G32Uint = 101,
111 R32G32Sint = 102,
112 R32G32Sfloat = 103,
113 R32G32B32Uint = 104,
114 R32G32B32Sint = 105,
115 R32G32B32Sfloat = 106,
116 R32G32B32A32Uint = 107,
117 R32G32B32A32Sint = 108,
118 R32G32B32A32Sfloat = 109,
119 R64Uint = 110,
120 R64Sint = 111,
121 R64Sfloat = 112,
122 R64G64Uint = 113,
123 R64G64Sint = 114,
124 R64G64Sfloat = 115,
125 R64G64B64Uint = 116,
126 R64G64B64Sint = 117,
127 R64G64B64Sfloat = 118,
128 R64G64B64A64Uint = 119,
129 R64G64B64A64Sint = 120,
130 R64G64B64A64Sfloat = 121,
131 B10G11R11UfloatPack32 = 122,
132 E5B9G9R9UfloatPack32 = 123,
133 D16Unorm = 124,
134 X8D24UnormPack32 = 125,
135 D32Sfloat = 126,
136 S8Uint = 127,
137 D16UnormS8Uint = 128,
138 D24UnormS8Uint = 129,
139 D32SfloatS8Uint = 130,
140 Bc1RgbUnormBlock = 131,
141 Bc1RgbSrgbBlock = 132,
142 Bc1RgbaUnormBlock = 133,
143 Bc1RgbaSrgbBlock = 134,
144 Bc2UnormBlock = 135,
145 Bc2SrgbBlock = 136,
146 Bc3UnormBlock = 137,
147 Bc3SrgbBlock = 138,
148 Bc4UnormBlock = 139,
149 Bc4SnormBlock = 140,
150 Bc5UnormBlock = 141,
151 Bc5SnormBlock = 142,
152 Bc6hUfloatBlock = 143,
153 Bc6hSfloatBlock = 144,
154 Bc7UnormBlock = 145,
155 Bc7SrgbBlock = 146,
156 Etc2R8G8B8UnormBlock = 147,
157 Etc2R8G8B8SrgbBlock = 148,
158 Etc2R8G8B8A1UnormBlock = 149,
159 Etc2R8G8B8A1SrgbBlock = 150,
160 Etc2R8G8B8A8UnormBlock = 151,
161 Etc2R8G8B8A8SrgbBlock = 152,
162 EacR11UnormBlock = 153,
163 EacR11SnormBlock = 154,
164 EacR11G11UnormBlock = 155,
165 EacR11G11SnormBlock = 156,
166 G8B8G8R8422Unorm = 1000156000,
167 B8G8R8G8422Unorm = 1000156001,
168 G8B8R83plane420Unorm = 1000156002,
169 G8B8R82plane420Unorm = 1000156003,
170 G8B8R83plane422Unorm = 1000156004,
171 G8B8R82plane422Unorm = 1000156005,
172 G8B8R83plane444Unorm = 1000156006,
173 R10X6UnormPack16 = 1000156007,
174 R10X6G10X6Unorm2pack16 = 1000156008,
175 R10X6G10X6B10X6A10X6Unorm4pack16 = 1000156009,
176 G10X6B10X6G10X6R10X6422Unorm4pack16 = 1000156010,
177 B10X6G10X6R10X6G10X6422Unorm4pack16 = 1000156011,
178 G10X6B10X6R10X63plane420Unorm3pack16 = 1000156012,
179 G10X6B10X6R10X62plane420Unorm3pack16 = 1000156013,
180 G10X6B10X6R10X63plane422Unorm3pack16 = 1000156014,
181 G10X6B10X6R10X62plane422Unorm3pack16 = 1000156015,
182 G10X6B10X6R10X63plane444Unorm3pack16 = 1000156016,
183 R12X4UnormPack16 = 1000156017,
184 R12X4G12X4Unorm2pack16 = 1000156018,
185 R12X4G12X4B12X4A12X4Unorm4pack16 = 1000156019,
186 G12X4B12X4G12X4R12X4422Unorm4pack16 = 1000156020,
187 B12X4G12X4R12X4G12X4422Unorm4pack16 = 1000156021,
188 G12X4B12X4R12X43plane420Unorm3pack16 = 1000156022,
189 G12X4B12X4R12X42plane420Unorm3pack16 = 1000156023,
190 G12X4B12X4R12X43plane422Unorm3pack16 = 1000156024,
191 G12X4B12X4R12X42plane422Unorm3pack16 = 1000156025,
192 G12X4B12X4R12X43plane444Unorm3pack16 = 1000156026,
193 G16B16G16R16422Unorm = 1000156027,
194 B16G16R16G16422Unorm = 1000156028,
195 G16B16R163plane420Unorm = 1000156029,
196 G16B16R162plane420Unorm = 1000156030,
197 G16B16R163plane422Unorm = 1000156031,
198 G16B16R162plane422Unorm = 1000156032,
199 G16B16R163plane444Unorm = 1000156033,
200 Pvrtc12bppUnormBlockImg = 1000054000,
201 Pvrtc14bppUnormBlockImg = 1000054001,
202 Pvrtc22bppUnormBlockImg = 1000054002,
203 Pvrtc24bppUnormBlockImg = 1000054003,
204 Pvrtc12bppSrgbBlockImg = 1000054004,
205 Pvrtc14bppSrgbBlockImg = 1000054005,
206 Pvrtc22bppSrgbBlockImg = 1000054006,
207 Pvrtc24bppSrgbBlockImg = 1000054007,
208}
209
210#[doc(hidden)]
211pub type RawVkFormat = i32;
212
213impl VkWrappedType<RawVkFormat> for VkFormat {
214 fn vk_to_raw(src: &VkFormat, dst: &mut RawVkFormat) {
215 *dst = *src as i32
216 }
217}
218
219impl VkRawType<VkFormat> for RawVkFormat {
220 fn vk_to_wrapped(src: &RawVkFormat) -> VkFormat {
221 unsafe {
222 *((src as *const i32) as *const VkFormat)
223 }
224 }
225}
226
227impl Default for VkFormat {
228 fn default() -> VkFormat {
229 VkFormat::Undefined
230 }
231}