24#define SNORM_8_(impl) impl(, 1 * 1, 1, SNORM_8, R8_SNORM, R8Snorm, Char1Normalized, R8_SNORM, r8_snorm)
25#define SNORM_8_8_(impl) impl(, 1 * 2, 2, SNORM_8_8, R8G8_SNORM, RG8Snorm, Char2Normalized, RG8_SNORM, rg8_snorm)
26#define SNORM_8_8_8_(impl) impl(, 1 * 3, 3, SNORM_8_8_8, R8G8B8_SNORM, RGBA8Snorm, Char3Normalized, RGB8_SNORM, rgb8_snorm)
27#define SNORM_8_8_8_8_(impl) impl(, 1 * 4, 4, SNORM_8_8_8_8, R8G8B8A8_SNORM, RGBA8Snorm, Char4Normalized, RGBA8_SNORM, rgba8_snorm)
29#define SNORM_16_(impl) impl(, 2 * 1, 1, SNORM_16, R16_SNORM, R16Snorm, Short1Normalized, R16_SNORM, r16_snorm)
30#define SNORM_16_16_(impl) impl(, 2 * 2, 2, SNORM_16_16, R16G16_SNORM, RG16Snorm, Short2Normalized, RG16_SNORM, rg16_snorm)
31#define SNORM_16_16_16_(impl) impl(, 2 * 3, 3, SNORM_16_16_16, R16G16B16_SNORM, RGBA16Snorm, Short3Normalized, RGB16_SNORM, rgb16_snorm)
32#define SNORM_16_16_16_16_(impl) impl(, 2 * 4, 4, SNORM_16_16_16_16, R16G16B16A16_SNORM, RGBA16Snorm, Short4Normalized, RGBA16_SNORM, rgba16_snorm)
34#define UNORM_8_(impl) impl(, 1 * 1, 1, UNORM_8, R8_UNORM, R8Unorm, UChar1Normalized, R8, r8_unorm)
35#define UNORM_8_8_(impl) impl(, 1 * 2, 2, UNORM_8_8, R8G8_UNORM, RG8Unorm, UChar2Normalized, RG8, rg8_unorm)
36#define UNORM_8_8_8_(impl) impl(, 1 * 3, 3, UNORM_8_8_8, R8G8B8_UNORM, RGBA8Unorm, UChar3Normalized, RGB8, rgb8_unorm)
37#define UNORM_8_8_8_8_(impl) impl(, 1 * 4, 4, UNORM_8_8_8_8, R8G8B8A8_UNORM, RGBA8Unorm, UChar4Normalized, RGBA8, rgba8_unorm)
39#define UNORM_16_(impl) impl(, 2 * 1, 1, UNORM_16, R16_UNORM, R16Unorm, UShort1Normalized, R16, r16_unorm)
40#define UNORM_16_16_(impl) impl(, 2 * 2, 2, UNORM_16_16, R16G16_UNORM, RG16Unorm, UShort2Normalized, RG16, rg16_unorm)
41#define UNORM_16_16_16_(impl) impl(, 2 * 3, 3, UNORM_16_16_16, R16G16B16_UNORM, RGBA16Unorm, UShort3Normalized, RGB16, rgb16_unorm)
42#define UNORM_16_16_16_16_(impl) impl(, 2 * 4, 4, UNORM_16_16_16_16, R16G16B16A16_UNORM, RGBA16Unorm, UShort4Normalized, RGBA16, rgba16_unorm)
44#define SINT_8_(impl) impl(int8_t, 1 * 1, 1, SINT_8, R8_SINT, R8Sint, Char1, R8I, r8_sint)
45#define SINT_8_8_(impl) impl(char2, 1 * 2, 2, SINT_8_8, R8G8_SINT, RG8Sint, Char2, RG8I, rg8_sint)
46#define SINT_8_8_8_(impl) impl(char3, 1 * 3, 3, SINT_8_8_8, R8G8B8_SINT, RGBA8Sint, Char3, RGB8I, rgb8_sint)
47#define SINT_8_8_8_8_(impl) impl(char4, 1 * 4, 4, SINT_8_8_8_8, R8G8B8A8_SINT, RGBA8Sint, Char4, RGBA8I, rgba8_sint)
49#define SINT_16_(impl) impl(int16_t, 2 * 1, 1, SINT_16, R16_SINT, R16Sint, Short1, R16I, r16_sint)
50#define SINT_16_16_(impl) impl(short2, 2 * 2, 2, SINT_16_16, R16G16_SINT, RG16Sint, Short2, RG16I, rg16_sint)
51#define SINT_16_16_16_(impl) impl(short3, 2 * 3, 3, SINT_16_16_16, R16G16B16_SINT, RGBA16Sint, Short3, RGB16I, rgb16_sint)
52#define SINT_16_16_16_16_(impl) impl(short4, 2 * 4, 4, SINT_16_16_16_16, R16G16B16A16_SINT, RGBA16Sint, Short4, RGBA16I, rgba16_sint)
54#define SINT_32_(impl) impl(int32_t, 4 * 1, 1, SINT_32, R32_SINT, R32Sint, Int1, R32I, r32_sint)
55#define SINT_32_32_(impl) impl(int2, 4 * 2, 2, SINT_32_32, R32G32_SINT, RG32Sint, Int2, RG32I, rg32_sint)
56#define SINT_32_32_32_(impl) impl(int3, 4 * 3, 3, SINT_32_32_32, R32G32B32_SINT, RGBA32Sint, Int3, RGB32I, rgb32_sint)
57#define SINT_32_32_32_32_(impl) impl(int4, 4 * 4, 4, SINT_32_32_32_32, R32G32B32A32_SINT, RGBA32Sint, Int4, RGBA32I, rgba32_sint)
59#define UINT_8_(impl) impl(uint8_t, 1 * 1, 1, UINT_8, R8_UINT, R8Uint, UChar1, R8UI, r8_uint)
60#define UINT_8_8_(impl) impl(uchar2, 1 * 2, 2, UINT_8_8, R8G8_UINT, RG8Uint, UChar2, RG8UI, rg8_uint)
61#define UINT_8_8_8_(impl) impl(uchar3, 1 * 3, 3, UINT_8_8_8, R8G8B8_UINT, RGBA8Uint, UChar3, RGB8UI, rgb8_uint)
62#define UINT_8_8_8_8_(impl) impl(uchar4, 1 * 4, 4, UINT_8_8_8_8, R8G8B8A8_UINT, RGBA8Uint, UChar4, RGBA8UI, rgba8_uint)
64#define UINT_16_(impl) impl(uint16_t, 2 * 1, 1, UINT_16, R16_UINT, R16Uint, UShort1, R16UI, r16_uint)
65#define UINT_16_16_(impl) impl(ushort2, 2 * 2, 2, UINT_16_16, R16G16_UINT, RG16Uint, UShort2, RG16UI, rg16_uint)
66#define UINT_16_16_16_(impl) impl(ushort3, 2 * 3, 3, UINT_16_16_16, R16G16B16_UINT, RGBA16Uint, UShort3, RGB16UI, rgb16_uint)
67#define UINT_16_16_16_16_(impl) impl(ushort4, 2 * 4, 4, UINT_16_16_16_16, R16G16B16A16_UINT, RGBA16Uint, UShort4, RGBA16UI, rgba16_uint)
69#define UINT_32_(impl) impl(uint32_t, 4 * 1, 1, UINT_32, R32_UINT, R32Uint, UInt1, R32UI, r32_uint)
70#define UINT_32_32_(impl) impl(uint2, 4 * 2, 2, UINT_32_32, R32G32_UINT, RG32Uint, UInt2, RG32UI, rg32_uint)
71#define UINT_32_32_32_(impl) impl(uint3, 4 * 3, 3, UINT_32_32_32, R32G32B32_UINT, RGBA32Uint, UInt3, RGB32UI, rgb32_uint)
72#define UINT_32_32_32_32_(impl) impl(uint4, 4 * 4, 4, UINT_32_32_32_32, R32G32B32A32_UINT, RGBA32Uint, UInt4, RGBA32UI, rgba32_uint)
74#define SFLOAT_16_(impl) impl(, 2 * 1, 1, SFLOAT_16, R16_SFLOAT, R16Float, Half1, R16F, r16_sfloat)
75#define SFLOAT_16_16_(impl) impl(, 2 * 2, 2, SFLOAT_16_16, R16G16_SFLOAT, RG16Float, Half2, RG16F, rg16_sfloat)
76#define SFLOAT_16_16_16_(impl) impl(, 2 * 3, 3, SFLOAT_16_16_16, R16G16B16_SFLOAT, RGBA16Float, Half3, RGB16F, rgb16_sfloat)
77#define SFLOAT_16_16_16_16_(impl) impl(, 2 * 4, 4, SFLOAT_16_16_16_16, R16G16B16A16_SFLOAT, RGBA16Float, Half4, RGBA16F, rgba16_sfloat)
79#define SFLOAT_32_(impl) impl(float, 4 * 1, 1, SFLOAT_32, R32_SFLOAT, R32Float, Float1, R32F, r32_sfloat)
80#define SFLOAT_32_32_(impl) impl(float2, 4 * 2, 2, SFLOAT_32_32, R32G32_SFLOAT, RG32Float, Float2, RG32F, rg32_sfloat)
81#define SFLOAT_32_32_32_(impl) impl(float3, 4 * 3, 3, SFLOAT_32_32_32, R32G32B32_SFLOAT, RGBA32Float, Float3, RGB32F, rgb32_sfloat)
82#define SFLOAT_32_32_32_32_(impl) impl(float4, 4 * 4, 4, SFLOAT_32_32_32_32, R32G32B32A32_SFLOAT, RGBA32Float, Float4, RGBA32F, rgba32_sfloat)
94#define SNORM_10_10_10_2_(impl) impl(, 4, 4, SNORM_10_10_10_2, A2B10G10R10_SNORM_PACK32, , Int1010102Normalized, , )
95#define UNORM_10_10_10_2_(impl) impl(, 4, 4, UNORM_10_10_10_2, A2B10G10R10_UNORM_PACK32, RGB10A2Unorm, UInt1010102Normalized, RGB10_A2, rgb10_a2_unorm )
96#define UINT_10_10_10_2_(impl) impl(, 4, 4, UINT_10_10_10_2, A2B10G10R10_UINT_PACK32, RGB10A2Uint, , RGB10_A2UI, rgb10_a2_uint )
98#define UFLOAT_11_11_10_(impl) impl(, 4, 3, UFLOAT_11_11_10, B10G11R11_UFLOAT_PACK32, RG11B10Float, FloatRG11B10, R11F_G11F_B10F, r11_g11_b10_ufloat)
99#define UFLOAT_9_9_9_EXP_5_(impl) impl(, 4, 3, UFLOAT_9_9_9_EXP_5, E5B9G9R9_UFLOAT_PACK32, RGB9E5Float, FloatRGB9E5, RGB9_E5, )
101#define SRGBA_8_8_8_8_(impl) impl(, 4, 4, SRGBA_8_8_8_8, R8G8B8A8_SRGB, RGBA8Unorm_sRGB, , SRGB8_ALPHA8, )
102#define SRGBA_8_8_8_(impl) impl(, 3, 3, SRGBA_8_8_8, R8G8B8_SRGB, RGBA8Unorm_sRGB, , SRGB8, )
104#define UNORM_16_DEPTH_(impl) impl(, 4, 1, UNORM_16_DEPTH, D16_UNORM, Depth16Unorm, , DEPTH_COMPONENT16, )
105#define UNORM_24_DEPTH_(impl) impl(, 4, 1, UNORM_24_DEPTH, X8_D24_UNORM_PACK32, Depth24Unorm_Stencil8, , DEPTH_COMPONENT24, )
106#define UNORM_24_DEPTH_UINT_8_(impl) impl(, 8, 1, UNORM_24_DEPTH_UINT_8, D24_UNORM_S8_UINT, Depth24Unorm_Stencil8, , DEPTH24_STENCIL8, )
107#define SFLOAT_32_DEPTH_(impl) impl(, 4, 1, SFLOAT_32_DEPTH, D32_SFLOAT, Depth32Float, , DEPTH_COMPONENT32F, )
108#define SFLOAT_32_DEPTH_UINT_8_(impl) impl(, 8, 1, SFLOAT_32_DEPTH_UINT_8, D32_SFLOAT_S8_UINT, Depth32Float_Stencil8, , DEPTH32F_STENCIL8, )
110#define SNORM_DXT1_(impl) impl(, 1, 1, SNORM_DXT1, BC1_RGBA_UNORM_BLOCK, BC1_RGBA, , COMPRESSED_RGBA_S3TC_DXT1_EXT, )
111#define SNORM_DXT3_(impl) impl(, 1, 1, SNORM_DXT3, BC2_UNORM_BLOCK, BC2_RGBA, , COMPRESSED_RGBA_S3TC_DXT3_EXT, )
112#define SNORM_DXT5_(impl) impl(, 1, 1, SNORM_DXT5, BC3_UNORM_BLOCK, BC3_RGBA, , COMPRESSED_RGBA_S3TC_DXT5_EXT, )
113#define SRGB_DXT1_(impl) impl(, 1, 1, SRGB_DXT1, BC1_RGBA_SRGB_BLOCK, BC1_RGBA_sRGB, , COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, )
114#define SRGB_DXT3_(impl) impl(, 1, 1, SRGB_DXT3, BC2_SRGB_BLOCK, BC2_RGBA_sRGB, , COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, )
115#define SRGB_DXT5_(impl) impl(, 1, 1, SRGB_DXT5, BC3_SRGB_BLOCK, BC3_RGBA_sRGB, , COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, )
131#define DECLARE(a, b, c, blender_enum, d, e, f, g, h) blender_enum,
133#define GPU_DATA_FORMAT_EXPAND(impl) \
137 SNORM_8_8_8_8_(impl) \
141 SNORM_16_16_16_(impl) \
142 SNORM_16_16_16_16_(impl) \
147 UNORM_8_8_8_8_(impl) \
151 UNORM_16_16_16_(impl) \
152 UNORM_16_16_16_16_(impl) \
157 SINT_8_8_8_8_(impl) \
161 SINT_16_16_16_(impl) \
162 SINT_16_16_16_16_(impl) \
166 SINT_32_32_32_(impl) \
167 SINT_32_32_32_32_(impl) \
172 UINT_8_8_8_8_(impl) \
176 UINT_16_16_16_(impl) \
177 UINT_16_16_16_16_(impl) \
181 UINT_32_32_32_(impl) \
182 UINT_32_32_32_32_(impl) \
185 SFLOAT_16_16_(impl) \
186 SFLOAT_16_16_16_(impl) \
187 SFLOAT_16_16_16_16_(impl) \
190 SFLOAT_32_32_(impl) \
191 SFLOAT_32_32_32_(impl) \
192 SFLOAT_32_32_32_32_(impl) \
194 SNORM_10_10_10_2_(impl) \
195 UNORM_10_10_10_2_(impl) \
196 UINT_10_10_10_2_(impl) \
198 UFLOAT_11_11_10_(impl) \
199 UFLOAT_9_9_9_EXP_5_(impl) \
201 UNORM_16_DEPTH_(impl) \
202 UNORM_24_DEPTH_(impl) \
203 UNORM_24_DEPTH_UINT_8_(impl) \
204 SFLOAT_32_DEPTH_(impl) \
205 SFLOAT_32_DEPTH_UINT_8_(impl) \
208 SRGBA_8_8_8_8_(impl) \
233#define CASE(a, size, c, blender_enum, d, e, f, g, h) \
234 case DataFormat::blender_enum: \
249#define CASE(a, b, comp, blender_enum, d, e, f, g, h) \
250 case DataFormat::blender_enum: \
#define BLI_assert_unreachable()
int format_component_len(const DataFormat format)
int to_bytesize(const DataFormat format)