7#include <QtOpenGL/QOpenGLTexture>
13
14
15
16
17
18
21VkFormat QVkConvenience::vkFormatFromGlFormat(uint glFormat)
23 using GlFormat = QOpenGLTexture::TextureFormat;
25 case GlFormat::NoFormat:
return VK_FORMAT_UNDEFINED;
28 case GlFormat::R8_UNorm:
return VK_FORMAT_R8_UNORM;
29 case GlFormat::RG8_UNorm:
return VK_FORMAT_R8G8_UNORM;
30 case GlFormat::RGB8_UNorm:
return VK_FORMAT_R8G8B8_UNORM;
31 case GlFormat::RGBA8_UNorm:
return VK_FORMAT_R8G8B8A8_UNORM;
33 case GlFormat::R16_UNorm:
return VK_FORMAT_R16_UNORM;
34 case GlFormat::RG16_UNorm:
return VK_FORMAT_R16G16_UNORM;
35 case GlFormat::RGB16_UNorm:
return VK_FORMAT_R16G16B16_UNORM;
36 case GlFormat::RGBA16_UNorm:
return VK_FORMAT_R16G16B16A16_UNORM;
39 case GlFormat::R8_SNorm:
return VK_FORMAT_R8_SNORM;
40 case GlFormat::RG8_SNorm:
return VK_FORMAT_R8G8_SNORM;
41 case GlFormat::RGB8_SNorm:
return VK_FORMAT_R8G8B8_SNORM;
42 case GlFormat::RGBA8_SNorm:
return VK_FORMAT_R8G8B8A8_SNORM;
44 case GlFormat::R16_SNorm:
return VK_FORMAT_R16_SNORM;
45 case GlFormat::RG16_SNorm:
return VK_FORMAT_R16G16_SNORM;
46 case GlFormat::RGB16_SNorm:
return VK_FORMAT_R16G16B16_SNORM;
47 case GlFormat::RGBA16_SNorm:
return VK_FORMAT_R16G16B16A16_SNORM;
50 case GlFormat::R8U:
return VK_FORMAT_R8_UINT;
51 case GlFormat::RG8U:
return VK_FORMAT_R8G8_UINT;
52 case GlFormat::RGB8U:
return VK_FORMAT_R8G8B8_UINT;
53 case GlFormat::RGBA8U:
return VK_FORMAT_R8G8B8A8_UINT;
55 case GlFormat::R16U:
return VK_FORMAT_R16_UINT;
56 case GlFormat::RG16U:
return VK_FORMAT_R16G16_UINT;
57 case GlFormat::RGB16U:
return VK_FORMAT_R16G16B16_UINT;
58 case GlFormat::RGBA16U:
return VK_FORMAT_R16G16B16A16_UINT;
60 case GlFormat::R32U:
return VK_FORMAT_R32_UINT;
61 case GlFormat::RG32U:
return VK_FORMAT_R32G32_UINT;
62 case GlFormat::RGB32U:
return VK_FORMAT_R32G32B32_UINT;
63 case GlFormat::RGBA32U:
return VK_FORMAT_R32G32B32A32_UINT;
66 case GlFormat::R8I:
return VK_FORMAT_R8_SINT;
67 case GlFormat::RG8I:
return VK_FORMAT_R8G8_SINT;
68 case GlFormat::RGB8I:
return VK_FORMAT_R8G8B8_SINT;
69 case GlFormat::RGBA8I:
return VK_FORMAT_R8G8B8A8_SINT;
71 case GlFormat::R16I:
return VK_FORMAT_R16_SINT;
72 case GlFormat::RG16I:
return VK_FORMAT_R16G16_SINT;
73 case GlFormat::RGB16I:
return VK_FORMAT_R16G16B16_SINT;
74 case GlFormat::RGBA16I:
return VK_FORMAT_R16G16B16A16_SINT;
76 case GlFormat::R32I:
return VK_FORMAT_R32_SINT;
77 case GlFormat::RG32I:
return VK_FORMAT_R32G32_SINT;
78 case GlFormat::RGB32I:
return VK_FORMAT_R32G32B32_SINT;
79 case GlFormat::RGBA32I:
return VK_FORMAT_R32G32B32A32_SINT;
82 case GlFormat::R16F:
return VK_FORMAT_R16_SFLOAT;
83 case GlFormat::RG16F:
return VK_FORMAT_R16G16_SFLOAT;
84 case GlFormat::RGB16F:
return VK_FORMAT_R16G16B16_SFLOAT;
85 case GlFormat::RGBA16F:
return VK_FORMAT_R16G16B16A16_SFLOAT;
87 case GlFormat::R32F:
return VK_FORMAT_R32_SFLOAT;
88 case GlFormat::RG32F:
return VK_FORMAT_R32G32_SFLOAT;
89 case GlFormat::RGB32F:
return VK_FORMAT_R32G32B32_SFLOAT;
90 case GlFormat::RGBA32F:
return VK_FORMAT_R32G32B32A32_SFLOAT;
93 case GlFormat::RGB9E5:
return VK_FORMAT_E5B9G9R9_UFLOAT_PACK32;
94 case GlFormat::RG11B10F:
return VK_FORMAT_B10G11R11_UFLOAT_PACK32;
96 case GlFormat::R5G6B5:
return VK_FORMAT_R5G6B5_UNORM_PACK16;
97 case GlFormat::RGB5A1:
return VK_FORMAT_R5G5B5A1_UNORM_PACK16;
98 case GlFormat::RGBA4:
return VK_FORMAT_R4G4B4A4_UNORM_PACK16;
99 case GlFormat::RGB10A2:
return VK_FORMAT_A2R10G10B10_UINT_PACK32;
111 case GlFormat::RGB_DXT1:
return VK_FORMAT_BC1_RGB_UNORM_BLOCK;
112 case GlFormat::RGBA_DXT1:
return VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
113 case GlFormat::RGBA_DXT3:
return VK_FORMAT_BC2_UNORM_BLOCK;
114 case GlFormat::RGBA_DXT5:
return VK_FORMAT_BC3_UNORM_BLOCK;
115 case GlFormat::R_ATI1N_UNorm:
return VK_FORMAT_BC4_UNORM_BLOCK;
116 case GlFormat::R_ATI1N_SNorm:
return VK_FORMAT_BC4_SNORM_BLOCK;
117 case GlFormat::RG_ATI2N_UNorm:
return VK_FORMAT_BC5_UNORM_BLOCK;
118 case GlFormat::RG_ATI2N_SNorm:
return VK_FORMAT_BC5_SNORM_BLOCK;
119 case GlFormat::RGB_BP_UNSIGNED_FLOAT:
return VK_FORMAT_BC6H_UFLOAT_BLOCK;
120 case GlFormat::RGB_BP_SIGNED_FLOAT:
return VK_FORMAT_BC6H_SFLOAT_BLOCK;
121 case GlFormat::RGB_BP_UNorm:
return VK_FORMAT_BC7_UNORM_BLOCK;
122 case GlFormat::R11_EAC_UNorm:
return VK_FORMAT_EAC_R11_UNORM_BLOCK;
123 case GlFormat::R11_EAC_SNorm:
return VK_FORMAT_EAC_R11_SNORM_BLOCK;
124 case GlFormat::RG11_EAC_UNorm:
return VK_FORMAT_EAC_R11G11_UNORM_BLOCK;
125 case GlFormat::RG11_EAC_SNorm:
return VK_FORMAT_EAC_R11G11_SNORM_BLOCK;
126 case GlFormat::RGB8_ETC2:
return VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
127 case GlFormat::SRGB8_ETC2:
return VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK;
128 case GlFormat::RGB8_PunchThrough_Alpha1_ETC2:
return VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
129 case GlFormat::SRGB8_PunchThrough_Alpha1_ETC2:
return VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK;
130 case GlFormat::RGBA8_ETC2_EAC:
return VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;
131 case GlFormat::SRGB8_Alpha8_ETC2_EAC:
return VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK;
133 case GlFormat::RGBA_ASTC_4x4:
return VK_FORMAT_ASTC_4x4_UNORM_BLOCK;
134 case GlFormat::RGBA_ASTC_5x4:
return VK_FORMAT_ASTC_5x4_UNORM_BLOCK;
135 case GlFormat::RGBA_ASTC_5x5:
return VK_FORMAT_ASTC_5x5_UNORM_BLOCK;
136 case GlFormat::RGBA_ASTC_6x5:
return VK_FORMAT_ASTC_6x5_UNORM_BLOCK;
137 case GlFormat::RGBA_ASTC_6x6:
return VK_FORMAT_ASTC_6x6_UNORM_BLOCK;
138 case GlFormat::RGBA_ASTC_8x5:
return VK_FORMAT_ASTC_8x5_UNORM_BLOCK;
139 case GlFormat::RGBA_ASTC_8x6:
return VK_FORMAT_ASTC_8x6_UNORM_BLOCK;
140 case GlFormat::RGBA_ASTC_8x8:
return VK_FORMAT_ASTC_8x8_UNORM_BLOCK;
141 case GlFormat::RGBA_ASTC_10x5:
return VK_FORMAT_ASTC_10x5_UNORM_BLOCK;
142 case GlFormat::RGBA_ASTC_10x6:
return VK_FORMAT_ASTC_10x6_UNORM_BLOCK;
143 case GlFormat::RGBA_ASTC_10x8:
return VK_FORMAT_ASTC_10x8_UNORM_BLOCK;
144 case GlFormat::RGBA_ASTC_10x10:
return VK_FORMAT_ASTC_10x10_UNORM_BLOCK;
145 case GlFormat::RGBA_ASTC_12x10:
return VK_FORMAT_ASTC_12x10_UNORM_BLOCK;
146 case GlFormat::RGBA_ASTC_12x12:
return VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
147 case GlFormat::SRGB8_Alpha8_ASTC_4x4:
return VK_FORMAT_ASTC_4x4_SRGB_BLOCK;
148 case GlFormat::SRGB8_Alpha8_ASTC_5x4:
return VK_FORMAT_ASTC_5x4_SRGB_BLOCK;
149 case GlFormat::SRGB8_Alpha8_ASTC_5x5:
return VK_FORMAT_ASTC_5x5_SRGB_BLOCK;
150 case GlFormat::SRGB8_Alpha8_ASTC_6x5:
return VK_FORMAT_ASTC_6x5_SRGB_BLOCK;
151 case GlFormat::SRGB8_Alpha8_ASTC_6x6:
return VK_FORMAT_ASTC_6x6_SRGB_BLOCK;
152 case GlFormat::SRGB8_Alpha8_ASTC_8x5:
return VK_FORMAT_ASTC_8x5_SRGB_BLOCK;
153 case GlFormat::SRGB8_Alpha8_ASTC_8x6:
return VK_FORMAT_ASTC_8x6_SRGB_BLOCK;
154 case GlFormat::SRGB8_Alpha8_ASTC_8x8:
return VK_FORMAT_ASTC_8x8_SRGB_BLOCK;
155 case GlFormat::SRGB8_Alpha8_ASTC_10x5:
return VK_FORMAT_ASTC_10x5_SRGB_BLOCK;
156 case GlFormat::SRGB8_Alpha8_ASTC_10x6:
return VK_FORMAT_ASTC_10x6_SRGB_BLOCK;
157 case GlFormat::SRGB8_Alpha8_ASTC_10x8:
return VK_FORMAT_ASTC_10x8_SRGB_BLOCK;
158 case GlFormat::SRGB8_Alpha8_ASTC_10x10:
return VK_FORMAT_ASTC_10x10_SRGB_BLOCK;
159 case GlFormat::SRGB8_Alpha8_ASTC_12x10:
return VK_FORMAT_ASTC_12x10_SRGB_BLOCK;
160 case GlFormat::SRGB8_Alpha8_ASTC_12x12:
return VK_FORMAT_ASTC_12x12_SRGB_BLOCK;
163 case GlFormat::SRGB8:
return VK_FORMAT_R8G8B8_SRGB;
164 case GlFormat::SRGB8_Alpha8:
return VK_FORMAT_R8G8B8A8_SRGB;
165 case GlFormat::SRGB_DXT1:
return VK_FORMAT_BC1_RGB_SRGB_BLOCK;
166 case GlFormat::SRGB_Alpha_DXT1:
return VK_FORMAT_BC1_RGBA_SRGB_BLOCK;
167 case GlFormat::SRGB_Alpha_DXT3:
return VK_FORMAT_BC2_SRGB_BLOCK;
168 case GlFormat::SRGB_Alpha_DXT5:
return VK_FORMAT_BC3_SRGB_BLOCK;
169 case GlFormat::SRGB_BP_UNorm:
return VK_FORMAT_BC7_SRGB_BLOCK;
178 default:
return VK_FORMAT_UNDEFINED;
Combined button and popup list for selecting options.