20 #ifndef ANTKEEPER_GL_GL_FORMAT_LUT_HPP
21 #define ANTKEEPER_GL_GL_FORMAT_LUT_HPP
32 {GL_RGBA4 , GL_RGBA , GL_UNSIGNED_SHORT_4_4_4_4 },
33 {GL_RGBA4 , GL_BGRA , GL_UNSIGNED_SHORT_4_4_4_4 },
34 {GL_RGB565 , GL_RGB , GL_UNSIGNED_SHORT_5_6_5 },
35 {GL_RGB565 , GL_BGR , GL_UNSIGNED_SHORT_5_6_5 },
36 {GL_RGB5_A1 , GL_RGBA , GL_UNSIGNED_SHORT_5_5_5_1 },
37 {GL_RGB5_A1 , GL_BGRA , GL_UNSIGNED_SHORT_5_5_5_1 },
38 {GL_RGB5_A1 , GL_BGRA , GL_UNSIGNED_SHORT_1_5_5_5_REV },
39 {GL_R8 , GL_RED , GL_UNSIGNED_BYTE },
40 {GL_R8_SNORM , GL_RED , GL_BYTE },
41 {0 , GL_RED , GL_UNSIGNED_BYTE },
42 {0 , GL_RED , GL_BYTE },
43 {GL_R8UI , GL_RED_INTEGER , GL_UNSIGNED_BYTE },
44 {GL_R8I , GL_RED_INTEGER , GL_BYTE },
45 {0 , GL_RED , GL_UNSIGNED_BYTE },
46 {GL_RG8 , GL_RG , GL_UNSIGNED_BYTE },
47 {GL_RG8_SNORM , GL_RG , GL_BYTE },
48 {0 , GL_RED , GL_UNSIGNED_BYTE },
49 {0 , GL_RED , GL_BYTE },
50 {GL_RG8UI , GL_RG_INTEGER , GL_UNSIGNED_BYTE },
51 {GL_RG8I , GL_RG_INTEGER , GL_BYTE },
52 {0 , GL_RG , GL_UNSIGNED_BYTE },
53 {GL_RGB8 , GL_RGB , GL_UNSIGNED_BYTE },
54 {GL_RGB8_SNORM , GL_RGB , GL_BYTE },
55 {0 , GL_RED , GL_UNSIGNED_BYTE },
56 {0 , GL_RED , GL_BYTE },
57 {GL_RGB8UI , GL_RGB_INTEGER , GL_UNSIGNED_BYTE },
58 {GL_RGB8I , GL_RGB_INTEGER , GL_BYTE },
59 {GL_SRGB8 , GL_RGB , GL_UNSIGNED_BYTE },
60 {GL_RGB8 , GL_BGR , GL_UNSIGNED_BYTE },
61 {GL_RGB8_SNORM , GL_BGR , GL_BYTE },
62 {0 , GL_BGR , GL_UNSIGNED_BYTE },
63 {0 , GL_BGR , GL_BYTE },
64 {GL_RGB8UI , GL_BGR_INTEGER , GL_UNSIGNED_BYTE },
65 {GL_RGB8I , GL_BGR_INTEGER , GL_BYTE },
66 {GL_SRGB8 , GL_BGR , GL_UNSIGNED_BYTE },
67 {GL_RGBA8 , GL_RGBA , GL_UNSIGNED_BYTE },
68 {GL_RGBA8_SNORM , GL_RGBA , GL_BYTE },
69 {0 , GL_RGBA , GL_UNSIGNED_BYTE },
70 {0 , GL_RGBA , GL_BYTE },
71 {GL_RGBA8UI , GL_RGBA_INTEGER , GL_UNSIGNED_BYTE },
72 {GL_RGBA8I , GL_RGBA_INTEGER , GL_BYTE },
73 {GL_SRGB8_ALPHA8 , GL_RGBA , GL_UNSIGNED_BYTE },
74 {GL_RGBA8 , GL_BGRA , GL_UNSIGNED_BYTE },
75 {GL_RGBA8_SNORM , GL_BGRA , GL_BYTE },
76 {0 , GL_BGRA , GL_UNSIGNED_BYTE },
77 {0 , GL_BGRA , GL_BYTE },
78 {GL_RGBA8UI , GL_BGRA_INTEGER , GL_UNSIGNED_BYTE },
79 {GL_RGBA8I , GL_BGRA_INTEGER , GL_BYTE },
80 {GL_SRGB8_ALPHA8 , GL_BGRA , GL_UNSIGNED_BYTE },
81 {GL_RGBA8 , GL_RGBA , GL_UNSIGNED_INT_8_8_8_8_REV },
82 {GL_RGBA8_SNORM , GL_RGBA , 0 },
83 {0 , GL_RGBA , GL_UNSIGNED_INT_8_8_8_8_REV },
85 {GL_RGBA8UI , GL_RGBA_INTEGER , GL_UNSIGNED_INT_8_8_8_8_REV },
86 {GL_RGBA8I , GL_RGBA_INTEGER , 0 },
87 {GL_SRGB8_ALPHA8 , GL_RGBA , GL_UNSIGNED_INT_8_8_8_8_REV },
88 {GL_RGB10_A2 , GL_BGRA , GL_UNSIGNED_INT_2_10_10_10_REV },
90 {0 , GL_BGRA , GL_UNSIGNED_INT_2_10_10_10_REV },
92 {GL_RGB10_A2UI , GL_BGRA_INTEGER , GL_UNSIGNED_INT_2_10_10_10_REV },
93 {0 , GL_BGRA_INTEGER , 0 },
94 {GL_RGB10_A2 , GL_RGBA , GL_UNSIGNED_INT_2_10_10_10_REV },
96 {0 , GL_RGBA , GL_UNSIGNED_INT_2_10_10_10_REV },
98 {GL_RGB10_A2UI , GL_RGBA_INTEGER , GL_UNSIGNED_INT_2_10_10_10_REV },
99 {0 , GL_RGBA_INTEGER , 0 },
100 {GL_R16 , GL_RED , GL_UNSIGNED_SHORT },
101 {GL_R16_SNORM , GL_RED , GL_SHORT },
102 {0 , GL_RED , GL_UNSIGNED_SHORT },
103 {0 , GL_RED , GL_SHORT },
104 {GL_R16UI , GL_RED_INTEGER , GL_UNSIGNED_SHORT },
105 {GL_R16I , GL_RED_INTEGER , GL_SHORT },
106 {GL_R16F , GL_RED , GL_HALF_FLOAT },
107 {GL_RG16 , GL_RG , GL_UNSIGNED_SHORT },
108 {GL_RG16_SNORM , GL_RG , GL_SHORT },
109 {0 , GL_RG , GL_UNSIGNED_SHORT },
110 {0 , GL_RG , GL_SHORT },
111 {GL_RG16UI , GL_RG_INTEGER , GL_UNSIGNED_SHORT },
112 {GL_RG16I , GL_RG_INTEGER , GL_SHORT },
113 {GL_RG16F , GL_RG , GL_HALF_FLOAT },
114 {GL_RGB16 , GL_RGB , GL_UNSIGNED_SHORT },
115 {GL_RGB16_SNORM , GL_RGB , GL_SHORT },
116 {0 , GL_RGB , GL_UNSIGNED_SHORT },
117 {0 , GL_RGB , GL_SHORT },
118 {GL_RGB16UI , GL_RGB_INTEGER , GL_UNSIGNED_SHORT },
119 {GL_RGB16I , GL_RGB_INTEGER , GL_SHORT },
120 {GL_RGB16F , GL_RGB , GL_HALF_FLOAT },
121 {GL_RGBA16 , GL_RGBA , GL_UNSIGNED_SHORT },
122 {GL_RGBA16_SNORM , GL_RGBA , GL_SHORT },
123 {0 , GL_RGBA , GL_UNSIGNED_SHORT },
124 {0 , GL_RGBA , GL_SHORT },
125 {GL_RGBA16UI , GL_RGBA_INTEGER , GL_UNSIGNED_SHORT },
126 {GL_RGBA16I , GL_RGBA_INTEGER , GL_SHORT },
127 {GL_RGBA16F , GL_RGBA , GL_HALF_FLOAT },
128 {GL_R32UI , GL_RED_INTEGER , GL_UNSIGNED_INT },
129 {GL_R32I , GL_RED_INTEGER , GL_INT },
130 {GL_R32F , GL_RED , GL_FLOAT },
131 {GL_RG32UI , GL_RG_INTEGER , GL_UNSIGNED_INT },
132 {GL_RG32I , GL_RG_INTEGER , GL_INT },
133 {GL_RG32F , GL_RG , GL_FLOAT },
134 {GL_RGB32UI , GL_RGB_INTEGER , GL_UNSIGNED_INT },
135 {GL_RGB32I , GL_RGB_INTEGER , GL_INT },
136 {GL_RGB32F , GL_RGB , GL_FLOAT },
137 {GL_RGBA32UI , GL_RGBA_INTEGER , GL_UNSIGNED_INT },
138 {GL_RGBA32I , GL_RGBA_INTEGER , GL_INT },
139 {GL_RGBA32F , GL_RGBA , GL_FLOAT },
140 {0 , GL_RED_INTEGER , 0 },
141 {0 , GL_RED_INTEGER , 0 },
142 {0 , GL_RED , GL_DOUBLE },
143 {0 , GL_RG_INTEGER , 0 },
144 {0 , GL_RG_INTEGER , 0 },
145 {0 , GL_RG , GL_DOUBLE },
146 {0 , GL_RGB_INTEGER , 0 },
147 {0 , GL_RGB_INTEGER , 0 },
148 {0 , GL_RGB , GL_DOUBLE },
149 {0 , GL_RGBA_INTEGER , 0 },
150 {0 , GL_RGBA_INTEGER , 0 },
151 {0 , GL_RGBA , GL_DOUBLE },
152 {GL_R11F_G11F_B10F , GL_BGR , GL_UNSIGNED_INT_10F_11F_11F_REV },
153 {GL_RGB9_E5 , GL_BGR , GL_UNSIGNED_INT_5_9_9_9_REV },
154 {GL_DEPTH_COMPONENT16 , GL_DEPTH_COMPONENT, GL_UNSIGNED_SHORT },
155 {GL_DEPTH_COMPONENT24 , GL_DEPTH_COMPONENT, GL_UNSIGNED_INT },
156 {GL_DEPTH_COMPONENT32F , GL_DEPTH_COMPONENT, GL_FLOAT },
157 {GL_STENCIL_INDEX8 , GL_STENCIL_INDEX , GL_UNSIGNED_BYTE },
158 {0 , GL_DEPTH_STENCIL , 0 },
159 {GL_DEPTH24_STENCIL8 , GL_DEPTH_STENCIL , GL_UNSIGNED_INT_24_8 },
160 {GL_DEPTH32F_STENCIL8 , GL_DEPTH_STENCIL , GL_FLOAT_32_UNSIGNED_INT_24_8_REV},
169 {GL_COMPRESSED_RED_RGTC1 , GL_RED , 0 },
170 {GL_COMPRESSED_SIGNED_RED_RGTC1 , GL_RED , 0 },
171 {GL_COMPRESSED_RG_RGTC2 , GL_RG , 0 },
172 {GL_COMPRESSED_SIGNED_RG_RGTC2 , GL_RG , 0 },
173 {GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT , GL_RGB , 0 },
174 {GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT , GL_RGB , 0 },
175 {GL_COMPRESSED_RGBA_BPTC_UNORM , GL_RGBA , 0 },
176 {GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM , GL_RGBA , 0 },
177 {GL_COMPRESSED_RGB8_ETC2 , GL_RGB , 0 },
178 {GL_COMPRESSED_SRGB8_ETC2 , GL_RGB , 0 },
179 {GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 , GL_RGBA , 0 },
180 {GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_RGBA , 0 },
181 {GL_COMPRESSED_RGBA8_ETC2_EAC , GL_RGBA , 0 },
182 {GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC , GL_RGBA , 0 },
183 {GL_COMPRESSED_R11_EAC , GL_RED , 0 },
184 {GL_COMPRESSED_SIGNED_R11_EAC , GL_RED , 0 },
185 {GL_COMPRESSED_RG11_EAC , GL_RG , 0 },
186 {GL_COMPRESSED_SIGNED_RG11_EAC , GL_RG , 0 },
Graphics library interface.
constexpr GLenum gl_format_lut[][3]
Maps gl::format to OpenGL internal format, base format, and pixel type.