19#ifndef FENNEC_RENDERERS_OPENGL_LIB_ENUM_H
20#define FENNEC_RENDERERS_OPENGL_LIB_ENUM_H
22#include <fennec/renderers/opengl/lib/fwd.h>
30enum buffer_ : GLenum {
31 VERTEX = GL_ARRAY_BUFFER,
32 ELEMENT = GL_ELEMENT_ARRAY_BUFFER,
33 UNIFORM = GL_UNIFORM_BUFFER,
34 SHADER_STORAGE = GL_SHADER_STORAGE_BUFFER,
35 QUERY = GL_QUERY_BUFFER,
36 TEXTURE = GL_TEXTURE_BUFFER,
37 TRANSFORM_FEEDBACK = GL_TRANSFORM_FEEDBACK_BUFFER,
38 ATOMIC_COUNTER = GL_ATOMIC_COUNTER_BUFFER,
39 PARAMETER = GL_PARAMETER_BUFFER,
40 INDIRECT_DRAW = GL_DRAW_INDIRECT_BUFFER, INDIRECT_DISPATCH = GL_DISPATCH_INDIRECT_BUFFER,
41 COPY_READ = GL_COPY_READ_BUFFER, COPY_WRITE = GL_COPY_WRITE_BUFFER,
42 PIXEL_PACK = GL_PIXEL_PACK_BUFFER, PIXEL_UNPACK = GL_PIXEL_UNPACK_BUFFER,
45enum buffer_flag_ : GLbitfield {
46 READ = GL_MAP_READ_BIT,
47 WRITE = GL_MAP_WRITE_BIT,
48 DYNAMIC = GL_DYNAMIC_STORAGE_BIT,
49 PERSISTENT = GL_MAP_PERSISTENT_BIT,
50 COHERENT = GL_MAP_COHERENT_BIT,
51 CLIENT = GL_CLIENT_STORAGE_BIT,
52 EXPLICIT_FLUSH = GL_MAP_FLUSH_EXPLICIT_BIT,
53 INVALIDATE = GL_MAP_INVALIDATE_BUFFER_BIT,
56enum access_ : GLbitfield {
57 READ_ONLY = GL_READ_ONLY,
58 WRITE_ONLY = GL_WRITE_ONLY,
59 READ_WRITE = GL_READ_WRITE,
62enum texture_ : GLenum {
63 TEX_1D = GL_TEXTURE_1D,
64 TEX_1D_ARRAY = GL_TEXTURE_1D_ARRAY,
66 TEX_2D = GL_TEXTURE_2D,
67 TEX_2D_ARRAY = GL_TEXTURE_2D_ARRAY,
68 TEX_2D_MS = GL_TEXTURE_2D_MULTISAMPLE,
69 TEX_2D_MS_ARRAY = GL_TEXTURE_2D_MULTISAMPLE_ARRAY,
70 TEX_RECT = GL_TEXTURE_RECTANGLE,
72 TEX_CUBEMAP = GL_TEXTURE_CUBE_MAP,
73 TEX_CUBEMAP_ARRAY = GL_TEXTURE_CUBE_MAP_ARRAY,
75 TEX_3D = GL_TEXTURE_3D,
77 TEX_BUFFER = GL_TEXTURE_BUFFER,
93 UBYTE = GL_UNSIGNED_BYTE,
94 USHORT = GL_UNSIGNED_SHORT,
95 UINT = GL_UNSIGNED_INT,
96 UVEC2 = GL_UNSIGNED_INT_VEC2,
97 UVEC3 = GL_UNSIGNED_INT_VEC3,
98 UVEC4 = GL_UNSIGNED_INT_VEC4,
100 HALF = GL_HALF_FLOAT,
102 VEC2 = GL_FLOAT_VEC2,
103 VEC3 = GL_FLOAT_VEC3,
104 VEC4 = GL_FLOAT_VEC4,
106 DVEC2 = GL_DOUBLE_VEC2,
107 DVEC3 = GL_DOUBLE_VEC3,
108 DVEC4 = GL_DOUBLE_VEC4,
110 UBYTE332 = GL_UNSIGNED_BYTE_3_3_2,
111 UBYTE233R = GL_UNSIGNED_BYTE_2_3_3_REV,
112 USHORT565 = GL_UNSIGNED_SHORT_5_6_5,
113 USHORT565R = GL_UNSIGNED_SHORT_5_6_5_REV,
114 USHORT4444 = GL_UNSIGNED_SHORT_4_4_4_4,
115 USHORT4444R = GL_UNSIGNED_SHORT_4_4_4_4_REV,
116 USHORT5551 = GL_UNSIGNED_SHORT_5_5_5_1,
117 USHORT1555R = GL_UNSIGNED_SHORT_1_5_5_5_REV,
118 UINT8888 = GL_UNSIGNED_INT_8_8_8_8,
119 UINT8888R = GL_UNSIGNED_INT_8_8_8_8_REV,
120 UINTAAA2 = GL_UNSIGNED_INT_10_10_10_2,
121 UINT2AAAR = GL_UNSIGNED_INT_2_10_10_10_REV,
122 UINT24_8 = GL_UNSIGNED_INT_24_8,
124 UINTABBFR = GL_UNSIGNED_INT_10F_11F_11F_REV,
125 UINT5999R = GL_UNSIGNED_INT_5_9_9_9_REV,
126 FLOAT32UINT24 = GL_FLOAT_32_UNSIGNED_INT_24_8_REV,
128 SAMPLER_1D = GL_SAMPLER_1D,
129 SAMPLER_1D_V = GL_SAMPLER_1D_ARRAY,
130 SHADOW_SAMPLER_1D = GL_SAMPLER_1D_SHADOW,
131 SHADOW_SAMPLER_1D_V = GL_SAMPLER_1D_ARRAY_SHADOW,
133 SAMPLER_2D = GL_SAMPLER_2D,
134 SAMPLER_2D_V = GL_SAMPLER_2D_ARRAY,
135 SAMPLER_RECT_2D = GL_SAMPLER_2D_RECT,
136 SAMPLER_2D_MS = GL_SAMPLER_2D_MULTISAMPLE,
137 SAMPLER_2D_MS_V = GL_SAMPLER_2D_MULTISAMPLE_ARRAY,
138 SHADOW_SAMPLER_2D = GL_SAMPLER_2D_SHADOW,
139 SHADOW_SAMPLER_2D_V = GL_SAMPLER_2D_ARRAY_SHADOW,
140 SHADOW_SAMPLER_RECT_2D = GL_SAMPLER_2D_RECT_SHADOW,
141 SAMPLER_CUBEMAP = GL_SAMPLER_CUBE,
142 SHADOW_SAMPLER_CUBEMAP = GL_SAMPLER_CUBE_SHADOW,
143 SAMPLER_3D = GL_SAMPLER_3D,
144 SAMPLER_BUFFER = GL_SAMPLER_BUFFER,
146 ISAMPLER_1D = GL_INT_SAMPLER_1D,
147 ISAMPLER_1D_V = GL_INT_SAMPLER_1D_ARRAY,
148 ISAMPLER_2D = GL_INT_SAMPLER_2D,
149 ISAMPLER_2D_V = GL_INT_SAMPLER_2D_ARRAY,
150 ISAMPLER_RECT_2D = GL_INT_SAMPLER_2D_RECT,
151 ISAMPLER_2D_MS = GL_INT_SAMPLER_2D_MULTISAMPLE,
152 ISAMPLER_2D_MS_V = GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
153 ISAMPLER_CUBEMAP = GL_INT_SAMPLER_CUBE,
154 ISAMPLER_3D = GL_INT_SAMPLER_3D,
155 ISAMPLER_BUFFER = GL_INT_SAMPLER_BUFFER,
157 USAMPLER_1D = GL_INT_SAMPLER_1D,
158 USAMPLER_1D_V = GL_INT_SAMPLER_1D_ARRAY,
159 USAMPLER_2D = GL_INT_SAMPLER_2D,
160 USAMPLER_2D_V = GL_INT_SAMPLER_2D_ARRAY,
161 USAMPLER_RECT_2D = GL_INT_SAMPLER_2D_RECT,
162 USAMPLER_2D_MS = GL_INT_SAMPLER_2D_MULTISAMPLE,
163 USAMPLER_2D_MS_V = GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY,
164 USAMPLER_CUBEMAP = GL_INT_SAMPLER_CUBE,
165 USAMPLER_3D = GL_INT_SAMPLER_3D,
166 USAMPLER_BUFFER = GL_INT_SAMPLER_BUFFER,
168 IMAGE_1D = GL_IMAGE_1D,
169 IMAGE_1D_V = GL_IMAGE_1D_ARRAY,
170 IMAGE_2D = GL_IMAGE_2D,
171 IMAGE_2D_V = GL_IMAGE_2D_ARRAY,
172 IMAGE_RECT_2D = GL_IMAGE_2D_RECT,
173 IMAGE_2D_MS = GL_IMAGE_2D_MULTISAMPLE,
174 IMAGE_2D_MS_V = GL_IMAGE_2D_MULTISAMPLE_ARRAY,
175 IMAGE_CUBEMAP = GL_IMAGE_CUBE,
176 IMAGE_3D = GL_IMAGE_3D,
177 IMAGE_BUFFER = GL_IMAGE_BUFFER,
179 IIMAGE_1D = GL_INT_IMAGE_1D,
180 IIMAGE_1D_V = GL_INT_IMAGE_1D_ARRAY,
181 IIMAGE_2D = GL_INT_IMAGE_2D,
182 IIMAGE_2D_V = GL_INT_IMAGE_2D_ARRAY,
183 IIMAGE_RECT_2D = GL_INT_IMAGE_2D_RECT,
184 IIMAGE_2D_MS = GL_INT_IMAGE_2D_MULTISAMPLE,
185 IIMAGE_2D_MS_V = GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
186 IIMAGE_CUBEMAP = GL_INT_IMAGE_CUBE,
187 IIMAGE_3D = GL_INT_IMAGE_3D,
188 IIMAGE_BUFFER = GL_INT_IMAGE_BUFFER,
190 UIMAGE_1D = GL_UNSIGNED_INT_IMAGE_1D,
191 UIMAGE_1D_V = GL_UNSIGNED_INT_IMAGE_1D_ARRAY,
192 UIMAGE_2D = GL_UNSIGNED_INT_IMAGE_2D,
193 UIMAGE_2D_V = GL_UNSIGNED_INT_IMAGE_2D_ARRAY,
194 UIMAGE_RECT_2D = GL_UNSIGNED_INT_IMAGE_2D_RECT,
195 UIMAGE_2D_MS = GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE,
196 UIMAGE_2D_MS_V = GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY,
197 UIMAGE_CUBEMAP = GL_UNSIGNED_INT_IMAGE_CUBE,
198 UIMAGE_3D = GL_UNSIGNED_INT_IMAGE_3D,
199 UIMAGE_BUFFER = GL_UNSIGNED_INT_IMAGE_BUFFER,
201 AtomicCounter = GL_UNSIGNED_INT_ATOMIC_COUNTER,
204enum component_ : GLenum {
216 GI = GL_GREEN_INTEGER,
217 BI = GL_BLUE_INTEGER,
218 AI = GL_ALPHA_INTEGER,
219 RGBI = GL_RGB_INTEGER,
220 BGRI = GL_BGR_INTEGER,
221 RGBAI = GL_RGBA_INTEGER,
222 BGRAI = GL_BGRA_INTEGER,
223 STENCIL = GL_STENCIL_INDEX,
224 DEPTH = GL_DEPTH_COMPONENT,
225 DEPTH_STENCIL = GL_DEPTH_STENCIL,
228enum format_ : GLint {
230 R8_SNORM = GL_R8_SNORM,
232 R16_SNORM = GL_R16_SNORM,
235 RG8_SNORM = GL_RG8_SNORM,
237 RG16_SNORM = GL_RG16_SNORM,
239 RGB332 = GL_R3_G3_B2,
243 RGB8_SNORM = GL_RGB8_SNORM,
247 RGB16_SNORM = GL_RGB16_SNORM,
251 RGB5_A1 = GL_RGB5_A1,
253 RGBA8_SNORM = GL_RGBA8_SNORM,
254 RGB10_A2 = GL_RGB10_A2,
255 RGB10_A2UI = GL_RGB10_A2UI,
260 SRGBA8 = GL_SRGB8_ALPHA8,
265 RGBA16F = GL_RGBA16F,
270 RGBA32F = GL_RGBA32F,
280 RGBA16I = GL_RGBA16I,
285 RGBA32I = GL_RGBA32I,
290 RGBA8UI = GL_RGBA8UI,
294 RGB16UI = GL_RGB16UI,
295 RGBA16UI = GL_RGBA16UI,
299 RGB32UI = GL_RGB32UI,
300 RGBA32UI = GL_RGBA32UI,
302 RGB_DXT1 = GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
303 RGBA_DXT1 = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
304 RGBA_DXT3 = GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
305 RGBA_DXT5 = GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
307 SRGB_DXT1 = GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
308 SRGBA_DXT1 = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
309 SRGBA_DXT3 = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
310 SRGBA_DXT5 = GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,