From f96a69f916aed40519e755d0460a83940a58780e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Fri, 26 Jan 2018 14:25:53 -0700 Subject: [PATCH] mesa: replace GLenum with GLenum16 in common structures (v4) MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit v2: - fix glGet* - also use GLenum16 for DrawBuffers v3: - rebase to top of tree (BrianP) and incorporate Ian's suggestions v4: - fix a GLenum16 bug in VBO/save code, add some STATIC_ASSERT()s gl_context = 152432 -> 136840 bytes vbo_context = 22096 -> 20608 bytes Reviewed-by: Brian Paul Reviewed-by: Nicolai Hähnle --- src/mesa/drivers/common/meta.h | 2 +- .../drivers/dri/nouveau/nv04_state_frag.c | 4 +- .../drivers/dri/nouveau/nv10_state_frag.c | 4 +- src/mesa/main/attrib.c | 13 +- src/mesa/main/buffers.c | 12 +- src/mesa/main/buffers.h | 2 +- src/mesa/main/context.c | 2 +- src/mesa/main/get.c | 38 ++++ src/mesa/main/get_hash_params.py | 152 ++++++------- src/mesa/main/glheader.h | 1 + src/mesa/main/mtypes.h | 204 +++++++++--------- src/mesa/vbo/vbo_exec.h | 2 +- src/mesa/vbo/vbo_save.h | 4 +- src/mesa/vbo/vbo_save_api.c | 2 + src/mesa/vbo/vbo_save_draw.c | 4 +- 15 files changed, 250 insertions(+), 196 deletions(-) diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h index 6d5185492d4..3d9c2917d2d 100644 --- a/src/mesa/drivers/common/meta.h +++ b/src/mesa/drivers/common/meta.h @@ -190,7 +190,7 @@ struct save_state struct gl_framebuffer *ReadBuffer; /** MESA_META_DRAW_BUFFERS */ - GLenum ColorDrawBuffers[MAX_DRAW_BUFFERS]; + GLenum16 ColorDrawBuffers[MAX_DRAW_BUFFERS]; }; /** diff --git a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c index 248a7d2b522..bfe8eaea123 100644 --- a/src/mesa/drivers/dri/nouveau/nv04_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv04_state_frag.c @@ -49,8 +49,8 @@ struct combiner_state { /* GL state */ GLenum mode; - GLenum *source; - GLenum *operand; + GLenum16 *source; + GLenum16 *operand; GLuint logscale; /* Derived HW state */ diff --git a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c index c6e4bb0d587..42dff085ca5 100644 --- a/src/mesa/drivers/dri/nouveau/nv10_state_frag.c +++ b/src/mesa/drivers/dri/nouveau/nv10_state_frag.c @@ -67,8 +67,8 @@ struct combiner_state { /* GL state */ GLenum mode; - GLenum *source; - GLenum *operand; + GLenum16 *source; + GLenum16 *operand; GLuint logscale; /* Derived HW state */ diff --git a/src/mesa/main/attrib.c b/src/mesa/main/attrib.c index 50b65c413e5..3c12fd6824d 100644 --- a/src/mesa/main/attrib.c +++ b/src/mesa/main/attrib.c @@ -1005,11 +1005,16 @@ _mesa_PopAttrib(void) * user FBO bound, GL_FRONT will be illegal and we'll need * to record that error. Per OpenGL ARB decision. */ - if (multipleBuffers) - _mesa_DrawBuffers(ctx->Const.MaxDrawBuffers, - color->DrawBuffer); - else + if (multipleBuffers) { + GLenum buffers[MAX_DRAW_BUFFERS]; + + for (unsigned i = 0; i < ctx->Const.MaxDrawBuffers; i++) + buffers[i] = color->DrawBuffer[i]; + + _mesa_DrawBuffers(ctx->Const.MaxDrawBuffers, buffers); + } else { _mesa_DrawBuffer(color->DrawBuffer[0]); + } } _mesa_set_enable(ctx, GL_ALPHA_TEST, color->AlphaEnabled); _mesa_AlphaFunc(color->AlphaFunc, color->AlphaRefUnclamped); diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index d3640479f00..5492227de08 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -299,7 +299,8 @@ draw_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, } /* if we get here, there's no error so set new state */ - _mesa_drawbuffers(ctx, fb, 1, &buffer, &destMask); + const GLenum16 buffer16 = buffer; + _mesa_drawbuffers(ctx, fb, 1, &buffer16, &destMask); /* Call device driver function only if fb is the bound draw buffer */ if (fb == ctx->DrawBuffer) { @@ -573,7 +574,11 @@ draw_buffers(struct gl_context *ctx, struct gl_framebuffer *fb, GLsizei n, } /* OK, if we get here, there were no errors so set the new state */ - _mesa_drawbuffers(ctx, fb, n, buffers, destMask); + GLenum16 buffers16[MAX_DRAW_BUFFERS]; + for (int i = 0; i < n; i++) + buffers16[i] = buffers[i]; + + _mesa_drawbuffers(ctx, fb, n, buffers16, destMask); /* * Call device driver function if fb is the bound draw buffer. @@ -694,7 +699,8 @@ updated_drawbuffers(struct gl_context *ctx, struct gl_framebuffer *fb) */ void _mesa_drawbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, - GLuint n, const GLenum *buffers, const GLbitfield *destMask) + GLuint n, const GLenum16 *buffers, + const GLbitfield *destMask) { GLbitfield mask[MAX_DRAW_BUFFERS]; GLuint buf; diff --git a/src/mesa/main/buffers.h b/src/mesa/main/buffers.h index e48400668d0..c43810752b0 100644 --- a/src/mesa/main/buffers.h +++ b/src/mesa/main/buffers.h @@ -68,7 +68,7 @@ _mesa_NamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n, extern void _mesa_drawbuffers(struct gl_context *ctx, struct gl_framebuffer *fb, - GLuint n, const GLenum *buffers, + GLuint n, const GLenum16 *buffers, const GLbitfield *destMask); extern void diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index a52c98112e0..7dbf67871dd 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1583,7 +1583,7 @@ handle_first_current(struct gl_context *ctx) */ if (!ctx->HasConfig && _mesa_is_desktop_gl(ctx)) { if (ctx->DrawBuffer != _mesa_get_incomplete_framebuffer()) { - GLenum buffer; + GLenum16 buffer; if (ctx->DrawBuffer->Visual.doubleBufferMode) buffer = GL_BACK; diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c index bafd1e35b29..04cab91d9c1 100644 --- a/src/mesa/main/get.c +++ b/src/mesa/main/get.c @@ -101,6 +101,7 @@ enum value_type { TYPE_UINT_3, TYPE_UINT_4, TYPE_INT64, + TYPE_ENUM16, TYPE_ENUM, TYPE_ENUM_2, TYPE_BOOLEAN, @@ -206,12 +207,14 @@ union value { #define BUFFER_INT(field) BUFFER_FIELD(field, TYPE_INT) #define BUFFER_ENUM(field) BUFFER_FIELD(field, TYPE_ENUM) +#define BUFFER_ENUM16(field) BUFFER_FIELD(field, TYPE_ENUM16) #define BUFFER_BOOL(field) BUFFER_FIELD(field, TYPE_BOOLEAN) #define CONTEXT_INT(field) CONTEXT_FIELD(field, TYPE_INT) #define CONTEXT_INT2(field) CONTEXT_FIELD(field, TYPE_INT_2) #define CONTEXT_INT64(field) CONTEXT_FIELD(field, TYPE_INT64) #define CONTEXT_UINT(field) CONTEXT_FIELD(field, TYPE_UINT) +#define CONTEXT_ENUM16(field) CONTEXT_FIELD(field, TYPE_ENUM16) #define CONTEXT_ENUM(field) CONTEXT_FIELD(field, TYPE_ENUM) #define CONTEXT_ENUM2(field) CONTEXT_FIELD(field, TYPE_ENUM_2) #define CONTEXT_BOOL(field) CONTEXT_FIELD(field, TYPE_BOOLEAN) @@ -233,6 +236,7 @@ union value { #define ARRAY_INT(field) ARRAY_FIELD(field, TYPE_INT) #define ARRAY_ENUM(field) ARRAY_FIELD(field, TYPE_ENUM) +#define ARRAY_ENUM16(field) ARRAY_FIELD(field, TYPE_ENUM16) #define ARRAY_BOOL(field) ARRAY_FIELD(field, TYPE_BOOLEAN) #define EXT(f) \ @@ -1488,6 +1492,8 @@ get_value_size(enum value_type type, const union value *v) case TYPE_INT64: return sizeof(GLint64); break; + case TYPE_ENUM16: + return sizeof(GLenum16); case TYPE_ENUM: return sizeof(GLenum); case TYPE_ENUM_2: @@ -1588,6 +1594,10 @@ _mesa_GetBooleanv(GLenum pname, GLboolean *params) params[0] = INT_TO_BOOLEAN(((GLint *) p)[0]); break; + case TYPE_ENUM16: + params[0] = INT_TO_BOOLEAN(((GLenum16 *) p)[0]); + break; + case TYPE_INT_N: for (i = 0; i < v.value_int_n.n; i++) params[i] = INT_TO_BOOLEAN(v.value_int_n.ints[i]); @@ -1681,6 +1691,10 @@ _mesa_GetFloatv(GLenum pname, GLfloat *params) params[0] = (GLfloat) (((GLint *) p)[0]); break; + case TYPE_ENUM16: + params[0] = (GLfloat) (((GLenum16 *) p)[0]); + break; + case TYPE_INT_N: for (i = 0; i < v.value_int_n.n; i++) params[i] = (GLfloat) v.value_int_n.ints[i]; @@ -1794,6 +1808,10 @@ _mesa_GetIntegerv(GLenum pname, GLint *params) params[0] = ((GLint *) p)[0]; break; + case TYPE_ENUM16: + params[0] = ((GLenum16 *) p)[0]; + break; + case TYPE_INT_N: for (i = 0; i < v.value_int_n.n; i++) params[i] = v.value_int_n.ints[i]; @@ -1893,6 +1911,10 @@ _mesa_GetInteger64v(GLenum pname, GLint64 *params) params[0] = ((GLint *) p)[0]; break; + case TYPE_ENUM16: + params[0] = ((GLenum16 *) p)[0]; + break; + case TYPE_INT_N: for (i = 0; i < v.value_int_n.n; i++) params[i] = INT_TO_BOOLEAN(v.value_int_n.ints[i]); @@ -1996,6 +2018,10 @@ _mesa_GetDoublev(GLenum pname, GLdouble *params) params[0] = ((GLint *) p)[0]; break; + case TYPE_ENUM16: + params[0] = ((GLenum16 *) p)[0]; + break; + case TYPE_INT_N: for (i = 0; i < v.value_int_n.n; i++) params[i] = v.value_int_n.ints[i]; @@ -2113,6 +2139,11 @@ _mesa_GetUnsignedBytevEXT(GLenum pname, GLubyte *data) case TYPE_MATRIX_T: memcpy(data, p, size); break; + case TYPE_ENUM16: { + GLenum e = *(GLenum16 *)p; + memcpy(data, &e, sizeof(e)); + break; + } default: break; /* nothing - GL error was recorded */ } @@ -2708,6 +2739,7 @@ _mesa_GetFloati_v(GLenum pname, GLuint index, GLfloat *params) params[1] = (GLfloat) v.value_int_4[1]; case TYPE_INT: case TYPE_ENUM: + case TYPE_ENUM16: params[0] = (GLfloat) v.value_int_4[0]; break; @@ -2790,6 +2822,7 @@ _mesa_GetDoublei_v(GLenum pname, GLuint index, GLdouble *params) params[1] = (GLdouble) v.value_int_4[1]; case TYPE_INT: case TYPE_ENUM: + case TYPE_ENUM16: params[0] = (GLdouble) v.value_int_4[0]; break; @@ -2864,6 +2897,7 @@ _mesa_GetUnsignedBytei_vEXT(GLenum target, GLuint index, GLubyte *data) case TYPE_INT_4: case TYPE_UINT_4: case TYPE_INT64: + case TYPE_ENUM16: case TYPE_ENUM: case TYPE_ENUM_2: case TYPE_BOOLEAN: @@ -2943,6 +2977,10 @@ _mesa_GetFixedv(GLenum pname, GLfixed *params) params[0] = INT_TO_FIXED(((GLint *) p)[0]); break; + case TYPE_ENUM16: + params[0] = INT_TO_FIXED(((GLenum16 *) p)[0]); + break; + case TYPE_INT_N: for (i = 0; i < v.value_int_n.n; i++) params[i] = INT_TO_FIXED(v.value_int_n.ints[i]); diff --git a/src/mesa/main/get_hash_params.py b/src/mesa/main/get_hash_params.py index bc71574cca9..0edf4c61c8c 100644 --- a/src/mesa/main/get_hash_params.py +++ b/src/mesa/main/get_hash_params.py @@ -2,20 +2,20 @@ descriptor=[ { "apis": ["GL", "GLES", "GLES2", "GL_CORE"], "params": [ [ "ALPHA_BITS", "BUFFER_INT(Visual.alphaBits), extra_new_buffers" ], [ "BLEND", "CONTEXT_BIT0(Color.BlendEnabled), NO_EXTRA" ], - [ "BLEND_SRC", "CONTEXT_ENUM(Color.Blend[0].SrcRGB), NO_EXTRA" ], + [ "BLEND_SRC", "CONTEXT_ENUM16(Color.Blend[0].SrcRGB), NO_EXTRA" ], [ "BLUE_BITS", "BUFFER_INT(Visual.blueBits), extra_new_buffers" ], [ "COLOR_CLEAR_VALUE", "LOC_CUSTOM, TYPE_FLOATN_4, 0, extra_new_frag_clamp" ], [ "COLOR_WRITEMASK", "LOC_CUSTOM, TYPE_INT_4, 0, NO_EXTRA" ], [ "CULL_FACE", "CONTEXT_BOOL(Polygon.CullFlag), NO_EXTRA" ], - [ "CULL_FACE_MODE", "CONTEXT_ENUM(Polygon.CullFaceMode), NO_EXTRA" ], + [ "CULL_FACE_MODE", "CONTEXT_ENUM16(Polygon.CullFaceMode), NO_EXTRA" ], [ "DEPTH_BITS", "BUFFER_INT(Visual.depthBits), extra_new_buffers" ], [ "DEPTH_CLEAR_VALUE", "CONTEXT_FIELD(Depth.Clear, TYPE_DOUBLEN), NO_EXTRA" ], - [ "DEPTH_FUNC", "CONTEXT_ENUM(Depth.Func), NO_EXTRA" ], + [ "DEPTH_FUNC", "CONTEXT_ENUM16(Depth.Func), NO_EXTRA" ], [ "DEPTH_RANGE", "LOC_CUSTOM, TYPE_DOUBLEN_2, 0, NO_EXTRA" ], [ "DEPTH_TEST", "CONTEXT_BOOL(Depth.Test), NO_EXTRA" ], [ "DEPTH_WRITEMASK", "CONTEXT_BOOL(Depth.Mask), NO_EXTRA" ], [ "DITHER", "CONTEXT_BOOL(Color.DitherFlag), NO_EXTRA" ], - [ "FRONT_FACE", "CONTEXT_ENUM(Polygon.FrontFace), NO_EXTRA" ], + [ "FRONT_FACE", "CONTEXT_ENUM16(Polygon.FrontFace), NO_EXTRA" ], [ "GREEN_BITS", "BUFFER_INT(Visual.greenBits), extra_new_buffers" ], [ "LINE_WIDTH", "CONTEXT_FLOAT(Line.Width), NO_EXTRA" ], [ "ALIASED_LINE_WIDTH_RANGE", "CONTEXT_FLOAT2(Const.MinLineWidth), NO_EXTRA" ], @@ -33,10 +33,10 @@ descriptor=[ [ "SCISSOR_TEST", "LOC_CUSTOM, TYPE_BOOLEAN, NO_OFFSET, NO_EXTRA" ], [ "STENCIL_BITS", "BUFFER_INT(Visual.stencilBits), extra_new_buffers" ], [ "STENCIL_CLEAR_VALUE", "CONTEXT_INT(Stencil.Clear), NO_EXTRA" ], - [ "STENCIL_FAIL", "LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, NO_EXTRA" ], - [ "STENCIL_FUNC", "LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, NO_EXTRA" ], - [ "STENCIL_PASS_DEPTH_FAIL", "LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, NO_EXTRA" ], - [ "STENCIL_PASS_DEPTH_PASS", "LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, NO_EXTRA" ], + [ "STENCIL_FAIL", "LOC_CUSTOM, TYPE_ENUM16, NO_OFFSET, NO_EXTRA" ], + [ "STENCIL_FUNC", "LOC_CUSTOM, TYPE_ENUM16, NO_OFFSET, NO_EXTRA" ], + [ "STENCIL_PASS_DEPTH_FAIL", "LOC_CUSTOM, TYPE_ENUM16, NO_OFFSET, NO_EXTRA" ], + [ "STENCIL_PASS_DEPTH_PASS", "LOC_CUSTOM, TYPE_ENUM16, NO_OFFSET, NO_EXTRA" ], [ "STENCIL_REF", "LOC_CUSTOM, TYPE_UINT, NO_OFFSET, NO_EXTRA" ], [ "STENCIL_TEST", "CONTEXT_BOOL(Stencil.Enabled), NO_EXTRA" ], [ "STENCIL_VALUE_MASK", "LOC_CUSTOM, TYPE_UINT, NO_OFFSET, NO_EXTRA" ], @@ -61,15 +61,15 @@ descriptor=[ [ "MAX_CUBE_MAP_TEXTURE_SIZE_ARB", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_context, Const.MaxCubeTextureLevels), extra_ARB_texture_cube_map" ], # XXX: OES_blend_subtract - [ "BLEND_SRC_RGB", "CONTEXT_ENUM(Color.Blend[0].SrcRGB), NO_EXTRA" ], - [ "BLEND_DST_RGB", "CONTEXT_ENUM(Color.Blend[0].DstRGB), NO_EXTRA" ], - [ "BLEND_SRC_ALPHA", "CONTEXT_ENUM(Color.Blend[0].SrcA), NO_EXTRA" ], - [ "BLEND_DST_ALPHA", "CONTEXT_ENUM(Color.Blend[0].DstA), NO_EXTRA" ], + [ "BLEND_SRC_RGB", "CONTEXT_ENUM16(Color.Blend[0].SrcRGB), NO_EXTRA" ], + [ "BLEND_DST_RGB", "CONTEXT_ENUM16(Color.Blend[0].DstRGB), NO_EXTRA" ], + [ "BLEND_SRC_ALPHA", "CONTEXT_ENUM16(Color.Blend[0].SrcA), NO_EXTRA" ], + [ "BLEND_DST_ALPHA", "CONTEXT_ENUM16(Color.Blend[0].DstA), NO_EXTRA" ], # GL_BLEND_EQUATION_RGB, which is what we're really after, is # defined identically to GL_BLEND_EQUATION. - [ "BLEND_EQUATION", "CONTEXT_ENUM(Color.Blend[0].EquationRGB), NO_EXTRA" ], - [ "BLEND_EQUATION_ALPHA_EXT", "CONTEXT_ENUM(Color.Blend[0].EquationA), NO_EXTRA" ], + [ "BLEND_EQUATION", "CONTEXT_ENUM16(Color.Blend[0].EquationRGB), NO_EXTRA" ], + [ "BLEND_EQUATION_ALPHA_EXT", "CONTEXT_ENUM16(Color.Blend[0].EquationA), NO_EXTRA" ], # GL_ARB_texture_compression [ "NUM_COMPRESSED_TEXTURE_FORMATS_ARB", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], @@ -88,7 +88,7 @@ descriptor=[ [ "MIN_SAMPLE_SHADING_VALUE_ARB", "CONTEXT_FLOAT(Multisample.MinSampleShadingValue), extra_gl40_ARB_sample_shading" ], # GL_SGIS_generate_mipmap - [ "GENERATE_MIPMAP_HINT_SGIS", "CONTEXT_ENUM(Hint.GenerateMipmap), NO_EXTRA" ], + [ "GENERATE_MIPMAP_HINT_SGIS", "CONTEXT_ENUM16(Hint.GenerateMipmap), NO_EXTRA" ], # GL_ARB_vertex_buffer_object [ "ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], @@ -98,9 +98,9 @@ descriptor=[ [ "ELEMENT_ARRAY_BUFFER_BINDING_ARB", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], # GL_ARB_color_buffer_float - [ "CLAMP_VERTEX_COLOR", "CONTEXT_ENUM(Light.ClampVertexColor), extra_ARB_color_buffer_float" ], - [ "CLAMP_FRAGMENT_COLOR", "CONTEXT_ENUM(Color.ClampFragmentColor), extra_ARB_color_buffer_float" ], - [ "CLAMP_READ_COLOR", "CONTEXT_ENUM(Color.ClampReadColor), extra_ARB_color_buffer_float_or_glcore" ], + [ "CLAMP_VERTEX_COLOR", "CONTEXT_ENUM16(Light.ClampVertexColor), extra_ARB_color_buffer_float" ], + [ "CLAMP_FRAGMENT_COLOR", "CONTEXT_ENUM16(Color.ClampFragmentColor), extra_ARB_color_buffer_float" ], + [ "CLAMP_READ_COLOR", "CONTEXT_ENUM16(Color.ClampReadColor), extra_ARB_color_buffer_float_or_glcore" ], # GL_ARB_copy_buffer [ "COPY_READ_BUFFER", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], @@ -155,9 +155,9 @@ descriptor=[ [ "LIGHT_MODEL_AMBIENT", "CONTEXT_FIELD(Light.Model.Ambient[0], TYPE_FLOATN_4), NO_EXTRA" ], [ "LIGHT_MODEL_TWO_SIDE", "CONTEXT_BOOL(Light.Model.TwoSide), NO_EXTRA" ], [ "ALPHA_TEST", "CONTEXT_BOOL(Color.AlphaEnabled), NO_EXTRA" ], - [ "ALPHA_TEST_FUNC", "CONTEXT_ENUM(Color.AlphaFunc), NO_EXTRA" ], + [ "ALPHA_TEST_FUNC", "CONTEXT_ENUM16(Color.AlphaFunc), NO_EXTRA" ], [ "ALPHA_TEST_REF", "LOC_CUSTOM, TYPE_FLOATN, 0, extra_new_frag_clamp" ], - [ "BLEND_DST", "CONTEXT_ENUM(Color.Blend[0].DstRGB), NO_EXTRA" ], + [ "BLEND_DST", "CONTEXT_ENUM16(Color.Blend[0].DstRGB), NO_EXTRA" ], [ "CLIP_DISTANCE0", "CONTEXT_BIT0(Transform.ClipPlanesEnabled), extra_valid_clip_distance" ], [ "CLIP_DISTANCE1", "CONTEXT_BIT1(Transform.ClipPlanesEnabled), extra_valid_clip_distance" ], [ "CLIP_DISTANCE2", "CONTEXT_BIT2(Transform.ClipPlanesEnabled), extra_valid_clip_distance" ], @@ -175,15 +175,15 @@ descriptor=[ [ "FOG_COLOR", "LOC_CUSTOM, TYPE_FLOATN_4, 0, extra_new_frag_clamp" ], [ "FOG_DENSITY", "CONTEXT_FLOAT(Fog.Density), NO_EXTRA" ], [ "FOG_END", "CONTEXT_FLOAT(Fog.End), NO_EXTRA" ], - [ "FOG_HINT", "CONTEXT_ENUM(Hint.Fog), NO_EXTRA" ], - [ "FOG_MODE", "CONTEXT_ENUM(Fog.Mode), NO_EXTRA" ], + [ "FOG_HINT", "CONTEXT_ENUM16(Hint.Fog), NO_EXTRA" ], + [ "FOG_MODE", "CONTEXT_ENUM16(Fog.Mode), NO_EXTRA" ], [ "FOG_START", "CONTEXT_FLOAT(Fog.Start), NO_EXTRA" ], [ "LINE_SMOOTH", "CONTEXT_BOOL(Line.SmoothFlag), NO_EXTRA" ], - [ "LINE_SMOOTH_HINT", "CONTEXT_ENUM(Hint.LineSmooth), NO_EXTRA" ], + [ "LINE_SMOOTH_HINT", "CONTEXT_ENUM16(Hint.LineSmooth), NO_EXTRA" ], [ "LINE_WIDTH_RANGE", "CONTEXT_FLOAT2(Const.MinLineWidthAA), NO_EXTRA" ], [ "COLOR_LOGIC_OP", "CONTEXT_BOOL(Color.ColorLogicOpEnabled), NO_EXTRA" ], - [ "LOGIC_OP_MODE", "CONTEXT_ENUM(Color.LogicOp), NO_EXTRA" ], - [ "MATRIX_MODE", "CONTEXT_ENUM(Transform.MatrixMode), NO_EXTRA" ], + [ "LOGIC_OP_MODE", "CONTEXT_ENUM16(Color.LogicOp), NO_EXTRA" ], + [ "MATRIX_MODE", "CONTEXT_ENUM16(Transform.MatrixMode), NO_EXTRA" ], [ "MAX_MODELVIEW_STACK_DEPTH", "CONST(MAX_MODELVIEW_STACK_DEPTH), NO_EXTRA" ], [ "MAX_PROJECTION_STACK_DEPTH", "CONST(MAX_PROJECTION_STACK_DEPTH), NO_EXTRA" ], [ "MAX_TEXTURE_STACK_DEPTH", "CONST(MAX_TEXTURE_STACK_DEPTH), NO_EXTRA" ], @@ -191,35 +191,35 @@ descriptor=[ [ "MODELVIEW_STACK_DEPTH", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_context, ModelviewMatrixStack.Depth), NO_EXTRA" ], [ "NORMALIZE", "CONTEXT_BOOL(Transform.Normalize), NO_EXTRA" ], [ "PACK_SKIP_IMAGES", "CONTEXT_INT(Pack.SkipImages), NO_EXTRA" ], - [ "PERSPECTIVE_CORRECTION_HINT", "CONTEXT_ENUM(Hint.PerspectiveCorrection), NO_EXTRA" ], + [ "PERSPECTIVE_CORRECTION_HINT", "CONTEXT_ENUM16(Hint.PerspectiveCorrection), NO_EXTRA" ], [ "POINT_SIZE", "CONTEXT_FLOAT(Point.Size), NO_EXTRA" ], [ "POINT_SIZE_RANGE", "CONTEXT_FLOAT2(Const.MinPointSizeAA), NO_EXTRA" ], [ "POINT_SMOOTH", "CONTEXT_BOOL(Point.SmoothFlag), NO_EXTRA" ], - [ "POINT_SMOOTH_HINT", "CONTEXT_ENUM(Hint.PointSmooth), NO_EXTRA" ], + [ "POINT_SMOOTH_HINT", "CONTEXT_ENUM16(Hint.PointSmooth), NO_EXTRA" ], [ "POINT_SIZE_MIN_EXT", "CONTEXT_FLOAT(Point.MinSize), NO_EXTRA" ], [ "POINT_SIZE_MAX_EXT", "CONTEXT_FLOAT(Point.MaxSize), NO_EXTRA" ], [ "POINT_FADE_THRESHOLD_SIZE_EXT", "CONTEXT_FLOAT(Point.Threshold), NO_EXTRA" ], [ "PROJECTION_MATRIX", "CONTEXT_MATRIX(ProjectionMatrixStack.Top), NO_EXTRA" ], [ "PROJECTION_STACK_DEPTH", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_context, ProjectionMatrixStack.Depth), NO_EXTRA" ], [ "RESCALE_NORMAL", "CONTEXT_BOOL(Transform.RescaleNormals), NO_EXTRA" ], - [ "SHADE_MODEL", "CONTEXT_ENUM(Light.ShadeModel), NO_EXTRA" ], + [ "SHADE_MODEL", "CONTEXT_ENUM16(Light.ShadeModel), NO_EXTRA" ], [ "TEXTURE_2D", "LOC_CUSTOM, TYPE_BOOLEAN, 0, NO_EXTRA" ], [ "TEXTURE_MATRIX", "LOC_CUSTOM, TYPE_MATRIX, 0, extra_valid_texture_unit" ], [ "TEXTURE_STACK_DEPTH", "LOC_CUSTOM, TYPE_INT, 0, extra_valid_texture_unit" ], [ "VERTEX_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_POS].Enabled), NO_EXTRA" ], [ "VERTEX_ARRAY_SIZE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_POS].Size), NO_EXTRA" ], - [ "VERTEX_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_POS].Type), NO_EXTRA" ], + [ "VERTEX_ARRAY_TYPE", "ARRAY_ENUM16(VertexAttrib[VERT_ATTRIB_POS].Type), NO_EXTRA" ], [ "VERTEX_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_POS].Stride), NO_EXTRA" ], [ "NORMAL_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_NORMAL].Enabled), NO_EXTRA" ], - [ "NORMAL_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_NORMAL].Type), NO_EXTRA" ], + [ "NORMAL_ARRAY_TYPE", "ARRAY_ENUM16(VertexAttrib[VERT_ATTRIB_NORMAL].Type), NO_EXTRA" ], [ "NORMAL_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_NORMAL].Stride), NO_EXTRA" ], [ "COLOR_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR0].Enabled), NO_EXTRA" ], [ "COLOR_ARRAY_SIZE", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], - [ "COLOR_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR0].Type), NO_EXTRA" ], + [ "COLOR_ARRAY_TYPE", "ARRAY_ENUM16(VertexAttrib[VERT_ATTRIB_COLOR0].Type), NO_EXTRA" ], [ "COLOR_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR0].Stride), NO_EXTRA" ], [ "TEXTURE_COORD_ARRAY", "LOC_CUSTOM, TYPE_BOOLEAN, offsetof(struct gl_array_attributes, Enabled), NO_EXTRA" ], [ "TEXTURE_COORD_ARRAY_SIZE", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_attributes, Size), NO_EXTRA" ], - [ "TEXTURE_COORD_ARRAY_TYPE", "LOC_CUSTOM, TYPE_ENUM, offsetof(struct gl_array_attributes, Type), NO_EXTRA" ], + [ "TEXTURE_COORD_ARRAY_TYPE", "LOC_CUSTOM, TYPE_ENUM16, offsetof(struct gl_array_attributes, Type), NO_EXTRA" ], [ "TEXTURE_COORD_ARRAY_STRIDE", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_array_attributes, Stride), NO_EXTRA" ], # GL_ARB_multitexture @@ -249,7 +249,7 @@ descriptor=[ { "apis": ["GLES"], "params": [ # OES_point_size_array [ "POINT_SIZE_ARRAY_OES", "ARRAY_FIELD(VertexAttrib[VERT_ATTRIB_POINT_SIZE].Enabled, TYPE_BOOLEAN), NO_EXTRA" ], - [ "POINT_SIZE_ARRAY_TYPE_OES", "ARRAY_FIELD(VertexAttrib[VERT_ATTRIB_POINT_SIZE].Type, TYPE_ENUM), NO_EXTRA" ], + [ "POINT_SIZE_ARRAY_TYPE_OES", "ARRAY_FIELD(VertexAttrib[VERT_ATTRIB_POINT_SIZE].Type, TYPE_ENUM16), NO_EXTRA" ], [ "POINT_SIZE_ARRAY_STRIDE_OES", "ARRAY_FIELD(VertexAttrib[VERT_ATTRIB_POINT_SIZE].Stride, TYPE_INT), NO_EXTRA" ], [ "POINT_SIZE_ARRAY_BUFFER_BINDING_OES", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], ]}, @@ -279,14 +279,14 @@ descriptor=[ [ "MAX_COLOR_ATTACHMENTS", "CONTEXT_INT(Const.MaxColorAttachments), NO_EXTRA" ], # GL_ARB_draw_buffers / GL_NV_draw_buffers (for ES 2.0) - [ "DRAW_BUFFER0_ARB", "BUFFER_ENUM(ColorDrawBuffer[0]), NO_EXTRA" ], - [ "DRAW_BUFFER1_ARB", "BUFFER_ENUM(ColorDrawBuffer[1]), extra_valid_draw_buffer" ], - [ "DRAW_BUFFER2_ARB", "BUFFER_ENUM(ColorDrawBuffer[2]), extra_valid_draw_buffer" ], - [ "DRAW_BUFFER3_ARB", "BUFFER_ENUM(ColorDrawBuffer[3]), extra_valid_draw_buffer" ], - [ "DRAW_BUFFER4_ARB", "BUFFER_ENUM(ColorDrawBuffer[4]), extra_valid_draw_buffer" ], - [ "DRAW_BUFFER5_ARB", "BUFFER_ENUM(ColorDrawBuffer[5]), extra_valid_draw_buffer" ], - [ "DRAW_BUFFER6_ARB", "BUFFER_ENUM(ColorDrawBuffer[6]), extra_valid_draw_buffer" ], - [ "DRAW_BUFFER7_ARB", "BUFFER_ENUM(ColorDrawBuffer[7]), extra_valid_draw_buffer" ], + [ "DRAW_BUFFER0_ARB", "BUFFER_ENUM16(ColorDrawBuffer[0]), NO_EXTRA" ], + [ "DRAW_BUFFER1_ARB", "BUFFER_ENUM16(ColorDrawBuffer[1]), extra_valid_draw_buffer" ], + [ "DRAW_BUFFER2_ARB", "BUFFER_ENUM16(ColorDrawBuffer[2]), extra_valid_draw_buffer" ], + [ "DRAW_BUFFER3_ARB", "BUFFER_ENUM16(ColorDrawBuffer[3]), extra_valid_draw_buffer" ], + [ "DRAW_BUFFER4_ARB", "BUFFER_ENUM16(ColorDrawBuffer[4]), extra_valid_draw_buffer" ], + [ "DRAW_BUFFER5_ARB", "BUFFER_ENUM16(ColorDrawBuffer[5]), extra_valid_draw_buffer" ], + [ "DRAW_BUFFER6_ARB", "BUFFER_ENUM16(ColorDrawBuffer[6]), extra_valid_draw_buffer" ], + [ "DRAW_BUFFER7_ARB", "BUFFER_ENUM16(ColorDrawBuffer[7]), extra_valid_draw_buffer" ], [ "BLEND_COLOR_EXT", "LOC_CUSTOM, TYPE_FLOATN_4, 0, extra_new_frag_clamp" ], # GL_ARB_fragment_program @@ -301,13 +301,13 @@ descriptor=[ [ "CURRENT_PROGRAM", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], # OpenGL 2.0 - [ "STENCIL_BACK_FUNC", "CONTEXT_ENUM(Stencil.Function[1]), NO_EXTRA" ], + [ "STENCIL_BACK_FUNC", "CONTEXT_ENUM16(Stencil.Function[1]), NO_EXTRA" ], [ "STENCIL_BACK_VALUE_MASK", "CONTEXT_UINT(Stencil.ValueMask[1]), NO_EXTRA" ], [ "STENCIL_BACK_WRITEMASK", "CONTEXT_UINT(Stencil.WriteMask[1]), NO_EXTRA" ], [ "STENCIL_BACK_REF", "LOC_CUSTOM, TYPE_UINT, NO_OFFSET, NO_EXTRA" ], - [ "STENCIL_BACK_FAIL", "CONTEXT_ENUM(Stencil.FailFunc[1]), NO_EXTRA" ], - [ "STENCIL_BACK_PASS_DEPTH_FAIL", "CONTEXT_ENUM(Stencil.ZFailFunc[1]), NO_EXTRA" ], - [ "STENCIL_BACK_PASS_DEPTH_PASS", "CONTEXT_ENUM(Stencil.ZPassFunc[1]), NO_EXTRA" ], + [ "STENCIL_BACK_FAIL", "CONTEXT_ENUM16(Stencil.FailFunc[1]), NO_EXTRA" ], + [ "STENCIL_BACK_PASS_DEPTH_FAIL", "CONTEXT_ENUM16(Stencil.ZFailFunc[1]), NO_EXTRA" ], + [ "STENCIL_BACK_PASS_DEPTH_PASS", "CONTEXT_ENUM16(Stencil.ZPassFunc[1]), NO_EXTRA" ], [ "MAX_VERTEX_ATTRIBS_ARB", "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxAttribs), extra_ARB_vertex_program_api_es2" ], # OES_texture_3D @@ -315,10 +315,10 @@ descriptor=[ [ "MAX_3D_TEXTURE_SIZE", "LOC_CUSTOM, TYPE_INT, offsetof(struct gl_context, Const.Max3DTextureLevels), NO_EXTRA" ], # GL_ARB_fragment_program/OES_standard_derivatives - [ "FRAGMENT_SHADER_DERIVATIVE_HINT", "CONTEXT_ENUM(Hint.FragmentShaderDerivative), extra_ARB_fragment_shader" ], + [ "FRAGMENT_SHADER_DERIVATIVE_HINT", "CONTEXT_ENUM16(Hint.FragmentShaderDerivative), extra_ARB_fragment_shader" ], # GL_NV_read_buffer - [ "READ_BUFFER", "LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, extra_NV_read_buffer_api_gl" ], + [ "READ_BUFFER", "LOC_CUSTOM, TYPE_ENUM16, NO_OFFSET, extra_NV_read_buffer_api_gl" ], # GL_ARB_ES2_compatibility [ "SHADER_COMPILER", "CONST(1), extra_ARB_ES2_compatibility_api_es2" ], @@ -339,7 +339,7 @@ descriptor=[ [ "PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL", "CONST(PERFQUERY_HAVE_GPA_EXTENDED_COUNTERS), extra_INTEL_performance_query" ], # GL_KHR_context_flush_control - [ "CONTEXT_RELEASE_BEHAVIOR", "CONTEXT_ENUM(Const.ContextReleaseBehavior), NO_EXTRA" ], + [ "CONTEXT_RELEASE_BEHAVIOR", "CONTEXT_ENUM16(Const.ContextReleaseBehavior), NO_EXTRA" ], # blend_func_extended [ "MAX_DUAL_SOURCE_DRAW_BUFFERS", "CONTEXT_INT(Const.MaxDualSourceDrawBuffers), extra_ARB_blend_func_extended" ], @@ -348,8 +348,8 @@ descriptor=[ [ "BLEND_ADVANCED_COHERENT_KHR", "CONTEXT_BOOL(Color.BlendCoherent), extra_KHR_blend_equation_advanced_coherent" ], # GL_ARB_robustness / GL_KHR_robustness - [ "CONTEXT_ROBUST_ACCESS", "CONTEXT_ENUM(Const.RobustAccess), extra_KHR_robustness" ], - [ "RESET_NOTIFICATION_STRATEGY_ARB", "CONTEXT_ENUM(Const.ResetStrategy), extra_KHR_robustness_or_GL" ], + [ "CONTEXT_ROBUST_ACCESS", "CONTEXT_ENUM16(Const.RobustAccess), extra_KHR_robustness" ], + [ "RESET_NOTIFICATION_STRATEGY_ARB", "CONTEXT_ENUM16(Const.ResetStrategy), extra_KHR_robustness_or_GL" ], ]}, # GLES3 is not a typo. @@ -432,7 +432,7 @@ descriptor=[ # GL_EXT_window_rectangles [ "MAX_WINDOW_RECTANGLES_EXT", "CONTEXT_INT(Const.MaxWindowRectangles), extra_EXT_window_rectangles" ], [ "NUM_WINDOW_RECTANGLES_EXT", "CONTEXT_INT(Scissor.NumWindowRects), extra_EXT_window_rectangles" ], - [ "WINDOW_RECTANGLE_MODE_EXT", "CONTEXT_ENUM(Scissor.WindowRectMode), extra_EXT_window_rectangles" ], + [ "WINDOW_RECTANGLE_MODE_EXT", "CONTEXT_ENUM16(Scissor.WindowRectMode), extra_EXT_window_rectangles" ], ]}, { "apis": ["GLES", "GLES2"], "params": [ @@ -516,11 +516,11 @@ descriptor=[ [ "PROGRAM_PIPELINE_BINDING", "LOC_CUSTOM, TYPE_INT, GL_PROGRAM_PIPELINE_BINDING, NO_EXTRA" ], # GL_ARB_vertex_attrib_binding / GLES 3.1 - [ "MAX_VERTEX_ATTRIB_RELATIVE_OFFSET", "CONTEXT_ENUM(Const.MaxVertexAttribRelativeOffset), NO_EXTRA" ], - [ "MAX_VERTEX_ATTRIB_BINDINGS", "CONTEXT_ENUM(Const.MaxVertexAttribBindings), NO_EXTRA" ], + [ "MAX_VERTEX_ATTRIB_RELATIVE_OFFSET", "CONTEXT_ENUM16(Const.MaxVertexAttribRelativeOffset), NO_EXTRA" ], + [ "MAX_VERTEX_ATTRIB_BINDINGS", "CONTEXT_ENUM16(Const.MaxVertexAttribBindings), NO_EXTRA" ], # GL 4.4 / GLES 3.1 - [ "MAX_VERTEX_ATTRIB_STRIDE", "CONTEXT_ENUM(Const.MaxVertexAttribStride), NO_EXTRA" ], + [ "MAX_VERTEX_ATTRIB_STRIDE", "CONTEXT_ENUM16(Const.MaxVertexAttribStride), NO_EXTRA" ], # GL_ARB_shader_storage_buffer_object / GLES 3.1 [ "MAX_VERTEX_SHADER_STORAGE_BLOCKS", "CONTEXT_INT(Const.Program[MESA_SHADER_VERTEX].MaxShaderStorageBlocks), extra_ARB_shader_storage_buffer_object_es31" ], @@ -612,7 +612,7 @@ descriptor=[ [ "MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS", "CONTEXT_INT(Const.Program[MESA_SHADER_GEOMETRY].MaxCombinedUniformComponents), extra_ARB_uniform_buffer_object_and_geometry_shader" ], # GL_ARB_viewport_array / GL_OES_geometry_shader - [ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array_or_oes_geometry_shader" ], + [ "LAYER_PROVOKING_VERTEX", "CONTEXT_ENUM16(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array_or_oes_geometry_shader" ], # GL_ARB_gpu_shader5 / GL_OES_geometry_shader [ "MAX_GEOMETRY_SHADER_INVOCATIONS", "CONST(MAX_GEOMETRY_SHADER_INVOCATIONS), extra_ARB_gpu_shader5_or_oes_geometry_shader" ], @@ -624,7 +624,7 @@ descriptor=[ [ "MAX_VIEWPORTS", "CONTEXT_INT(Const.MaxViewports), extra_ARB_viewport_array_or_oes_viewport_array" ], [ "VIEWPORT_SUBPIXEL_BITS", "CONTEXT_INT(Const.ViewportSubpixelBits), extra_ARB_viewport_array_or_oes_viewport_array" ], [ "VIEWPORT_BOUNDS_RANGE", "CONTEXT_FLOAT2(Const.ViewportBounds), extra_ARB_viewport_array_or_oes_viewport_array" ], - [ "VIEWPORT_INDEX_PROVOKING_VERTEX", "CONTEXT_ENUM(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array_or_oes_viewport_array" ], + [ "VIEWPORT_INDEX_PROVOKING_VERTEX", "CONTEXT_ENUM16(Const.LayerAndVPIndexProvokingVertex), extra_ARB_viewport_array_or_oes_viewport_array" ], # INTEL_conservative_rasterization [ "CONSERVATIVE_RASTERIZATION_INTEL", "CONTEXT_BOOL(IntelConservativeRasterization), extra_INTEL_conservative_rasterization" ], @@ -654,11 +654,11 @@ descriptor=[ [ "AUX_BUFFERS", "BUFFER_INT(Visual.numAuxBuffers), NO_EXTRA" ], [ "BLUE_BIAS", "CONTEXT_FLOAT(Pixel.BlueBias), NO_EXTRA" ], [ "BLUE_SCALE", "CONTEXT_FLOAT(Pixel.BlueScale), NO_EXTRA" ], - [ "CLIP_DEPTH_MODE", "CONTEXT_ENUM(Transform.ClipDepthMode), extra_ARB_clip_control" ], - [ "CLIP_ORIGIN", "CONTEXT_ENUM(Transform.ClipOrigin), extra_ARB_clip_control" ], + [ "CLIP_DEPTH_MODE", "CONTEXT_ENUM16(Transform.ClipDepthMode), extra_ARB_clip_control" ], + [ "CLIP_ORIGIN", "CONTEXT_ENUM16(Transform.ClipOrigin), extra_ARB_clip_control" ], [ "CLIENT_ATTRIB_STACK_DEPTH", "CONTEXT_INT(ClientAttribStackDepth), NO_EXTRA" ], - [ "COLOR_MATERIAL_FACE", "CONTEXT_ENUM(Light.ColorMaterialFace), NO_EXTRA" ], - [ "COLOR_MATERIAL_PARAMETER", "CONTEXT_ENUM(Light.ColorMaterialMode), NO_EXTRA" ], + [ "COLOR_MATERIAL_FACE", "CONTEXT_ENUM16(Light.ColorMaterialFace), NO_EXTRA" ], + [ "COLOR_MATERIAL_PARAMETER", "CONTEXT_ENUM16(Light.ColorMaterialMode), NO_EXTRA" ], [ "CURRENT_INDEX", "CONTEXT_FLOAT(Current.Attrib[VERT_ATTRIB_COLOR_INDEX][0]), extra_flush_current" ], [ "CURRENT_RASTER_COLOR", "CONTEXT_FIELD(Current.RasterColor[0], TYPE_FLOATN_4), NO_EXTRA" ], [ "CURRENT_RASTER_DISTANCE", "CONTEXT_FLOAT(Current.RasterDistance), NO_EXTRA" ], @@ -670,10 +670,10 @@ descriptor=[ [ "DEPTH_BIAS", "CONTEXT_FLOAT(Pixel.DepthBias), NO_EXTRA" ], [ "DEPTH_SCALE", "CONTEXT_FLOAT(Pixel.DepthScale), NO_EXTRA" ], [ "DOUBLEBUFFER", "BUFFER_INT(Visual.doubleBufferMode), NO_EXTRA" ], - [ "DRAW_BUFFER", "BUFFER_ENUM(ColorDrawBuffer[0]), NO_EXTRA" ], + [ "DRAW_BUFFER", "BUFFER_ENUM16(ColorDrawBuffer[0]), NO_EXTRA" ], [ "EDGE_FLAG", "LOC_CUSTOM, TYPE_BOOLEAN, 0, extra_flush_current" ], [ "FEEDBACK_BUFFER_SIZE", "CONTEXT_INT(Feedback.BufferSize), NO_EXTRA" ], - [ "FEEDBACK_BUFFER_TYPE", "CONTEXT_ENUM(Feedback.Type), NO_EXTRA" ], + [ "FEEDBACK_BUFFER_TYPE", "CONTEXT_ENUM16(Feedback.Type), NO_EXTRA" ], [ "FOG_INDEX", "CONTEXT_FLOAT(Fog.Index), NO_EXTRA" ], [ "GREEN_BIAS", "CONTEXT_FLOAT(Pixel.GreenBias), NO_EXTRA" ], [ "GREEN_SCALE", "CONTEXT_FLOAT(Pixel.GreenScale), NO_EXTRA" ], @@ -683,7 +683,7 @@ descriptor=[ [ "INDEX_OFFSET", "CONTEXT_INT(Pixel.IndexOffset), NO_EXTRA" ], [ "INDEX_SHIFT", "CONTEXT_INT(Pixel.IndexShift), NO_EXTRA" ], [ "INDEX_WRITEMASK", "CONTEXT_INT(Color.IndexMask), NO_EXTRA" ], - [ "LIGHT_MODEL_COLOR_CONTROL", "CONTEXT_ENUM(Light.Model.ColorControl), NO_EXTRA" ], + [ "LIGHT_MODEL_COLOR_CONTROL", "CONTEXT_ENUM16(Light.Model.ColorControl), NO_EXTRA" ], [ "LIGHT_MODEL_LOCAL_VIEWER", "CONTEXT_BOOL(Light.Model.LocalViewer), NO_EXTRA" ], [ "LINE_STIPPLE", "CONTEXT_BOOL(Line.StippleFlag), NO_EXTRA" ], [ "LINE_STIPPLE_PATTERN", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], @@ -691,7 +691,7 @@ descriptor=[ [ "LINE_WIDTH_GRANULARITY", "CONTEXT_FLOAT(Const.LineWidthGranularity), NO_EXTRA" ], [ "LIST_BASE", "CONTEXT_INT(List.ListBase), NO_EXTRA" ], [ "LIST_INDEX", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], - [ "LIST_MODE", "LOC_CUSTOM, TYPE_ENUM, 0, NO_EXTRA" ], + [ "LIST_MODE", "LOC_CUSTOM, TYPE_ENUM16, 0, NO_EXTRA" ], [ "INDEX_LOGIC_OP", "CONTEXT_BOOL(Color.IndexLogicOpEnabled), NO_EXTRA" ], [ "MAP1_COLOR_4", "CONTEXT_BOOL(Eval.Map1Color4), NO_EXTRA" ], [ "MAP1_GRID_DOMAIN", "CONTEXT_FLOAT2(Eval.MapGrid1u1), NO_EXTRA" ], @@ -738,16 +738,16 @@ descriptor=[ [ "PIXEL_MAP_R_TO_R_SIZE", "CONTEXT_INT(PixelMaps.RtoR.Size), NO_EXTRA" ], [ "PIXEL_MAP_S_TO_S_SIZE", "CONTEXT_INT(PixelMaps.StoS.Size), NO_EXTRA" ], [ "POINT_SIZE_GRANULARITY", "CONTEXT_FLOAT(Const.PointSizeGranularity), NO_EXTRA" ], - [ "POLYGON_MODE", "CONTEXT_ENUM2(Polygon.FrontMode), NO_EXTRA" ], + [ "POLYGON_MODE", "CONTEXT_ENUM16(Polygon.FrontMode), NO_EXTRA" ], [ "POLYGON_OFFSET_BIAS_EXT", "CONTEXT_FLOAT(Polygon.OffsetUnits), NO_EXTRA" ], [ "POLYGON_OFFSET_POINT", "CONTEXT_BOOL(Polygon.OffsetPoint), NO_EXTRA" ], [ "POLYGON_OFFSET_LINE", "CONTEXT_BOOL(Polygon.OffsetLine), NO_EXTRA" ], [ "POLYGON_SMOOTH", "CONTEXT_BOOL(Polygon.SmoothFlag), NO_EXTRA" ], - [ "POLYGON_SMOOTH_HINT", "CONTEXT_ENUM(Hint.PolygonSmooth), NO_EXTRA" ], + [ "POLYGON_SMOOTH_HINT", "CONTEXT_ENUM16(Hint.PolygonSmooth), NO_EXTRA" ], [ "POLYGON_STIPPLE", "CONTEXT_BOOL(Polygon.StippleFlag), NO_EXTRA" ], [ "RED_BIAS", "CONTEXT_FLOAT(Pixel.RedBias), NO_EXTRA" ], [ "RED_SCALE", "CONTEXT_FLOAT(Pixel.RedScale), NO_EXTRA" ], - [ "RENDER_MODE", "CONTEXT_ENUM(RenderMode), NO_EXTRA" ], + [ "RENDER_MODE", "CONTEXT_ENUM16(RenderMode), NO_EXTRA" ], [ "RGBA_MODE", "CONST(1), NO_EXTRA" ], [ "SELECTION_BUFFER_SIZE", "CONTEXT_INT(Select.BufferSize), NO_EXTRA" ], [ "STEREO", "BUFFER_INT(Visual.stereoMode), NO_EXTRA" ], @@ -769,7 +769,7 @@ descriptor=[ [ "NORMAL_ARRAY_COUNT_EXT", "CONST(0), NO_EXTRA" ], [ "COLOR_ARRAY_COUNT_EXT", "CONST(0), NO_EXTRA" ], [ "INDEX_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Enabled), NO_EXTRA" ], - [ "INDEX_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Type), NO_EXTRA" ], + [ "INDEX_ARRAY_TYPE", "ARRAY_ENUM16(VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Type), NO_EXTRA" ], [ "INDEX_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR_INDEX].Stride), NO_EXTRA" ], [ "INDEX_ARRAY_COUNT_EXT", "CONST(0), NO_EXTRA" ], [ "TEXTURE_COORD_ARRAY_COUNT_EXT", "CONST(0), NO_EXTRA" ], @@ -803,26 +803,26 @@ descriptor=[ [ "COLOR_SUM", "CONTEXT_BOOL(Fog.ColorSumEnabled), NO_EXTRA" ], [ "CURRENT_SECONDARY_COLOR", "CONTEXT_FIELD(Current.Attrib[VERT_ATTRIB_COLOR1][0], TYPE_FLOATN_4), extra_flush_current" ], [ "SECONDARY_COLOR_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_COLOR1].Enabled), NO_EXTRA" ], - [ "SECONDARY_COLOR_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_COLOR1].Type), NO_EXTRA" ], + [ "SECONDARY_COLOR_ARRAY_TYPE", "ARRAY_ENUM16(VertexAttrib[VERT_ATTRIB_COLOR1].Type), NO_EXTRA" ], [ "SECONDARY_COLOR_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_COLOR1].Stride), NO_EXTRA" ], [ "SECONDARY_COLOR_ARRAY_SIZE", "LOC_CUSTOM, TYPE_INT, 0, NO_EXTRA" ], # GL_EXT_fog_coord [ "CURRENT_FOG_COORDINATE", "CONTEXT_FLOAT(Current.Attrib[VERT_ATTRIB_FOG][0]), extra_flush_current" ], [ "FOG_COORDINATE_ARRAY", "ARRAY_BOOL(VertexAttrib[VERT_ATTRIB_FOG].Enabled), NO_EXTRA" ], - [ "FOG_COORDINATE_ARRAY_TYPE", "ARRAY_ENUM(VertexAttrib[VERT_ATTRIB_FOG].Type), NO_EXTRA" ], + [ "FOG_COORDINATE_ARRAY_TYPE", "ARRAY_ENUM16(VertexAttrib[VERT_ATTRIB_FOG].Type), NO_EXTRA" ], [ "FOG_COORDINATE_ARRAY_STRIDE", "ARRAY_INT(VertexAttrib[VERT_ATTRIB_FOG].Stride), NO_EXTRA" ], - [ "FOG_COORDINATE_SOURCE", "CONTEXT_ENUM(Fog.FogCoordinateSource), NO_EXTRA" ], + [ "FOG_COORDINATE_SOURCE", "CONTEXT_ENUM16(Fog.FogCoordinateSource), NO_EXTRA" ], # GL_NV_fog_distance - [ "FOG_DISTANCE_MODE_NV", "CONTEXT_ENUM(Fog.FogDistanceMode), extra_NV_fog_distance" ], + [ "FOG_DISTANCE_MODE_NV", "CONTEXT_ENUM16(Fog.FogDistanceMode), extra_NV_fog_distance" ], # GL_IBM_rasterpos_clip [ "RASTER_POSITION_UNCLIPPED_IBM", "CONTEXT_BOOL(Transform.RasterPositionUnclipped), NO_EXTRA" ], # GL_NV_point_sprite - [ "POINT_SPRITE_R_MODE_NV", "CONTEXT_ENUM(Point.SpriteRMode), extra_NV_point_sprite" ], - [ "POINT_SPRITE_COORD_ORIGIN", "CONTEXT_ENUM(Point.SpriteOrigin), extra_NV_point_sprite_ARB_point_sprite" ], + [ "POINT_SPRITE_R_MODE_NV", "CONTEXT_ENUM16(Point.SpriteRMode), extra_NV_point_sprite" ], + [ "POINT_SPRITE_COORD_ORIGIN", "CONTEXT_ENUM16(Point.SpriteOrigin), extra_NV_point_sprite_ARB_point_sprite" ], # GL_NV_texture_rectangle [ "TEXTURE_RECTANGLE_NV", "LOC_CUSTOM, TYPE_BOOLEAN, 0, extra_NV_texture_rectangle" ], @@ -831,7 +831,7 @@ descriptor=[ # GL_EXT_stencil_two_side [ "STENCIL_TEST_TWO_SIDE_EXT", "CONTEXT_BOOL(Stencil.TestTwoSide), extra_EXT_stencil_two_side" ], - [ "ACTIVE_STENCIL_FACE_EXT", "LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, NO_EXTRA" ], + [ "ACTIVE_STENCIL_FACE_EXT", "LOC_CUSTOM, TYPE_ENUM16, NO_OFFSET, NO_EXTRA" ], # GL_NV_light_max_exponent [ "MAX_SHININESS_NV", "CONTEXT_FLOAT(Const.MaxShininess), NO_EXTRA" ], @@ -892,7 +892,7 @@ descriptor=[ [ "NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI", "CONST(3), extra_ATI_fragment_shader" ], # GL_EXT_provoking_vertex - [ "PROVOKING_VERTEX_EXT", "CONTEXT_ENUM(Light.ProvokingVertex), extra_EXT_provoking_vertex" ], + [ "PROVOKING_VERTEX_EXT", "CONTEXT_ENUM16(Light.ProvokingVertex), extra_EXT_provoking_vertex" ], [ "QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT", "CONTEXT_BOOL(Const.QuadsFollowProvokingVertexConvention), extra_EXT_provoking_vertex_32" ], # GL_ARB_seamless_cube_map diff --git a/src/mesa/main/glheader.h b/src/mesa/main/glheader.h index 35a442a77be..7a4b4a08d3a 100644 --- a/src/mesa/main/glheader.h +++ b/src/mesa/main/glheader.h @@ -43,6 +43,7 @@ extern "C" { #endif +typedef unsigned short GLenum16; /* custom Mesa type to save space */ typedef int GLclampx; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index 9cd32c3aaa5..b0eeeafbcda 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -388,7 +388,7 @@ struct gl_lightmodel GLfloat Ambient[4]; /**< ambient color */ GLboolean LocalViewer; /**< Local (or infinite) view point? */ GLboolean TwoSide; /**< Two (or one) sided lighting? */ - GLenum ColorControl; /**< either GL_SINGLE_COLOR + GLenum16 ColorControl; /**< either GL_SINGLE_COLOR or GL_SEPARATE_SPECULAR_COLOR */ }; @@ -461,14 +461,14 @@ struct gl_colorbuffer_attrib GLuint IndexMask; /**< Color index write mask */ GLubyte ColorMask[MAX_DRAW_BUFFERS][4]; /**< Each flag is 0xff or 0x0 */ - GLenum DrawBuffer[MAX_DRAW_BUFFERS]; /**< Which buffer to draw into */ + GLenum16 DrawBuffer[MAX_DRAW_BUFFERS]; /**< Which buffer to draw into */ /** * \name alpha testing */ /*@{*/ GLboolean AlphaEnabled; /**< Alpha test enabled flag */ - GLenum AlphaFunc; /**< Alpha test function */ + GLenum16 AlphaFunc; /**< Alpha test function */ GLfloat AlphaRefUnclamped; GLclampf AlphaRef; /**< Alpha reference value */ /*@}*/ @@ -488,12 +488,12 @@ struct gl_colorbuffer_attrib struct { - GLenum SrcRGB; /**< RGB blend source term */ - GLenum DstRGB; /**< RGB blend dest term */ - GLenum SrcA; /**< Alpha blend source term */ - GLenum DstA; /**< Alpha blend dest term */ - GLenum EquationRGB; /**< GL_ADD, GL_SUBTRACT, etc. */ - GLenum EquationA; /**< GL_ADD, GL_SUBTRACT, etc. */ + GLenum16 SrcRGB; /**< RGB blend source term */ + GLenum16 DstRGB; /**< RGB blend dest term */ + GLenum16 SrcA; /**< Alpha blend source term */ + GLenum16 DstA; /**< Alpha blend dest term */ + GLenum16 EquationRGB; /**< GL_ADD, GL_SUBTRACT, etc. */ + GLenum16 EquationA; /**< GL_ADD, GL_SUBTRACT, etc. */ /** * Set if any blend factor uses SRC1. Computed at the time blend factors * get set. @@ -524,15 +524,15 @@ struct gl_colorbuffer_attrib /*@{*/ GLboolean IndexLogicOpEnabled; /**< Color index logic op enabled flag */ GLboolean ColorLogicOpEnabled; /**< RGBA logic op enabled flag */ - GLenum LogicOp; /**< Logic operator */ + GLenum16 LogicOp; /**< Logic operator */ enum gl_logicop_mode _LogicOp; /*@}*/ GLboolean DitherFlag; /**< Dither enable flag */ GLboolean _ClampFragmentColor; /** < with GL_FIXED_ONLY_ARB resolved */ - GLenum ClampFragmentColor; /**< GL_TRUE, GL_FALSE or GL_FIXED_ONLY_ARB */ - GLenum ClampReadColor; /**< GL_TRUE, GL_FALSE or GL_FIXED_ONLY_ARB */ + GLenum16 ClampFragmentColor; /**< GL_TRUE, GL_FALSE or GL_FIXED_ONLY_ARB */ + GLenum16 ClampReadColor; /**< GL_TRUE, GL_FALSE or GL_FIXED_ONLY_ARB */ GLboolean sRGBEnabled; /**< Framebuffer sRGB blending/updating requested */ }; @@ -570,7 +570,7 @@ struct gl_current_attrib */ struct gl_depthbuffer_attrib { - GLenum Func; /**< Function for depth buffer compare */ + GLenum16 Func; /**< Function for depth buffer compare */ GLclampd Clear; /**< Value to clear depth buffer to */ GLboolean Test; /**< Depth buffering enabled flag */ GLboolean Mask; /**< Depth buffer writable? */ @@ -649,10 +649,10 @@ struct gl_fog_attrib GLfloat Start; /**< Start distance in eye coords */ GLfloat End; /**< End distance in eye coords */ GLfloat Index; /**< Fog index */ - GLenum Mode; /**< Fog mode */ - GLenum FogCoordinateSource; /**< GL_EXT_fog_coord */ + GLenum16 Mode; /**< Fog mode */ + GLenum16 FogCoordinateSource;/**< GL_EXT_fog_coord */ GLfloat _Scale; /**< (End == Start) ? 1.0 : 1.0 / (End - Start) */ - GLenum FogDistanceMode; /**< GL_NV_fog_distance */ + GLenum16 FogDistanceMode; /**< GL_NV_fog_distance */ }; @@ -663,14 +663,14 @@ struct gl_fog_attrib */ struct gl_hint_attrib { - GLenum PerspectiveCorrection; - GLenum PointSmooth; - GLenum LineSmooth; - GLenum PolygonSmooth; - GLenum Fog; - GLenum TextureCompression; /**< GL_ARB_texture_compression */ - GLenum GenerateMipmap; /**< GL_SGIS_generate_mipmap */ - GLenum FragmentShaderDerivative; /**< GL_ARB_fragment_shader */ + GLenum16 PerspectiveCorrection; + GLenum16 PointSmooth; + GLenum16 LineSmooth; + GLenum16 PolygonSmooth; + GLenum16 Fog; + GLenum16 TextureCompression; /**< GL_ARB_texture_compression */ + GLenum16 GenerateMipmap; /**< GL_SGIS_generate_mipmap */ + GLenum16 FragmentShaderDerivative; /**< GL_ARB_fragment_shader */ }; @@ -691,15 +691,15 @@ struct gl_light_attrib GLboolean Enabled; /**< Lighting enabled flag */ GLboolean ColorMaterialEnabled; - GLenum ShadeModel; /**< GL_FLAT or GL_SMOOTH */ - GLenum ProvokingVertex; /**< GL_EXT_provoking_vertex */ - GLenum ColorMaterialFace; /**< GL_FRONT, BACK or FRONT_AND_BACK */ - GLenum ColorMaterialMode; /**< GL_AMBIENT, GL_DIFFUSE, etc */ + GLenum16 ShadeModel; /**< GL_FLAT or GL_SMOOTH */ + GLenum16 ProvokingVertex; /**< GL_EXT_provoking_vertex */ + GLenum16 ColorMaterialFace; /**< GL_FRONT, BACK or FRONT_AND_BACK */ + GLenum16 ColorMaterialMode; /**< GL_AMBIENT, GL_DIFFUSE, etc */ GLbitfield _ColorMaterialBitmask; /**< bitmask formed from Face and Mode */ GLboolean _ClampVertexColor; - GLenum ClampVertexColor; /**< GL_TRUE, GL_FALSE, GL_FIXED_ONLY */ + GLenum16 ClampVertexColor; /**< GL_TRUE, GL_FALSE, GL_FIXED_ONLY */ /** * Derived state for optimizations: @@ -793,7 +793,7 @@ struct gl_pixelmaps */ struct gl_pixel_attrib { - GLenum ReadBuffer; /**< source buffer for glRead/CopyPixels() */ + GLenum16 ReadBuffer; /**< source buffer for glRead/CopyPixels() */ /*--- Begin Pixel Transfer State ---*/ /* Fields are in the order in which they're applied... */ @@ -833,8 +833,8 @@ struct gl_point_attrib GLboolean _Attenuated; /**< True if Params != [1, 0, 0] */ GLboolean PointSprite; /**< GL_NV/ARB_point_sprite */ GLbitfield CoordReplace; /**< GL_ARB_point_sprite*/ - GLenum SpriteRMode; /**< GL_NV_point_sprite (only!) */ - GLenum SpriteOrigin; /**< GL_ARB_point_sprite */ + GLenum16 SpriteRMode; /**< GL_NV_point_sprite (only!) */ + GLenum16 SpriteOrigin; /**< GL_ARB_point_sprite */ }; @@ -843,13 +843,13 @@ struct gl_point_attrib */ struct gl_polygon_attrib { - GLenum FrontFace; /**< Either GL_CW or GL_CCW */ - GLenum FrontMode; /**< Either GL_POINT, GL_LINE or GL_FILL */ - GLenum BackMode; /**< Either GL_POINT, GL_LINE or GL_FILL */ + GLenum16 FrontFace; /**< Either GL_CW or GL_CCW */ + GLenum16 FrontMode; /**< Either GL_POINT, GL_LINE or GL_FILL */ + GLenum16 BackMode; /**< Either GL_POINT, GL_LINE or GL_FILL */ GLboolean CullFlag; /**< Culling on/off flag */ GLboolean SmoothFlag; /**< True if GL_POLYGON_SMOOTH is enabled */ GLboolean StippleFlag; /**< True if GL_POLYGON_STIPPLE is enabled */ - GLenum CullFaceMode; /**< Culling mode GL_FRONT or GL_BACK */ + GLenum16 CullFaceMode; /**< Culling mode GL_FRONT or GL_BACK */ GLfloat OffsetFactor; /**< Polygon offset factor, from user */ GLfloat OffsetUnits; /**< Polygon offset units, from user */ GLfloat OffsetClamp; /**< Polygon offset clamp, from user */ @@ -874,7 +874,7 @@ struct gl_scissor_attrib GLbitfield EnableFlags; /**< Scissor test enabled? */ struct gl_scissor_rect ScissorArray[MAX_VIEWPORTS]; GLint NumWindowRects; /**< Count of enabled window rectangles */ - GLenum WindowRectMode; /**< Whether to include or exclude the rects */ + GLenum16 WindowRectMode; /**< Whether to include or exclude the rects */ struct gl_scissor_rect WindowRects[MAX_WINDOW_RECTANGLES]; }; @@ -901,10 +901,10 @@ struct gl_stencil_attrib GLboolean TestTwoSide; /**< GL_EXT_stencil_two_side */ GLubyte ActiveFace; /**< GL_EXT_stencil_two_side (0 or 2) */ GLubyte _BackFace; /**< Current back stencil state (1 or 2) */ - GLenum Function[3]; /**< Stencil function */ - GLenum FailFunc[3]; /**< Fail function */ - GLenum ZPassFunc[3]; /**< Depth buffer pass function */ - GLenum ZFailFunc[3]; /**< Depth buffer fail function */ + GLenum16 Function[3]; /**< Stencil function */ + GLenum16 FailFunc[3]; /**< Fail function */ + GLenum16 ZPassFunc[3]; /**< Depth buffer pass function */ + GLenum16 ZFailFunc[3]; /**< Depth buffer fail function */ GLint Ref[3]; /**< Reference value */ GLuint ValueMask[3]; /**< Value mask */ GLuint WriteMask[3]; /**< Write mask */ @@ -1019,19 +1019,19 @@ struct gl_sampler_object GLint RefCount; GLchar *Label; /**< GL_KHR_debug */ - GLenum WrapS; /**< S-axis texture image wrap mode */ - GLenum WrapT; /**< T-axis texture image wrap mode */ - GLenum WrapR; /**< R-axis texture image wrap mode */ - GLenum MinFilter; /**< minification filter */ - GLenum MagFilter; /**< magnification filter */ + GLenum16 WrapS; /**< S-axis texture image wrap mode */ + GLenum16 WrapT; /**< T-axis texture image wrap mode */ + GLenum16 WrapR; /**< R-axis texture image wrap mode */ + GLenum16 MinFilter; /**< minification filter */ + GLenum16 MagFilter; /**< magnification filter */ union gl_color_union BorderColor; /**< Interpreted according to texture format */ GLfloat MinLod; /**< min lambda, OpenGL 1.2 */ GLfloat MaxLod; /**< max lambda, OpenGL 1.2 */ GLfloat LodBias; /**< OpenGL 1.4 */ GLfloat MaxAnisotropy; /**< GL_EXT_texture_filter_anisotropic */ - GLenum CompareMode; /**< GL_ARB_shadow */ - GLenum CompareFunc; /**< GL_ARB_shadow */ - GLenum sRGBDecode; /**< GL_DECODE_EXT or GL_SKIP_DECODE_EXT */ + GLenum16 CompareMode; /**< GL_ARB_shadow */ + GLenum16 CompareFunc; /**< GL_ARB_shadow */ + GLenum16 sRGBDecode; /**< GL_DECODE_EXT or GL_SKIP_DECODE_EXT */ GLboolean CubeMapSeamless; /**< GL_AMD_seamless_cubemap_per_texture */ /** GL_ARB_bindless_texture */ @@ -1050,13 +1050,13 @@ struct gl_texture_object GLint RefCount; /**< reference count */ GLuint Name; /**< the user-visible texture object ID */ GLchar *Label; /**< GL_KHR_debug */ - GLenum Target; /**< GL_TEXTURE_1D, GL_TEXTURE_2D, etc. */ + GLenum16 Target; /**< GL_TEXTURE_1D, GL_TEXTURE_2D, etc. */ gl_texture_index TargetIndex; /**< The gl_texture_unit::CurrentTex index. Only valid when Target is valid. */ struct gl_sampler_object Sampler; - GLenum DepthMode; /**< GL_ARB_depth_texture */ + GLenum16 DepthMode; /**< GL_ARB_depth_texture */ GLfloat Priority; /**< in [0,1] */ GLint BaseLevel; /**< min mipmap level, OpenGL 1.2 */ @@ -1086,14 +1086,14 @@ struct gl_texture_object GLuint NumLayers; /**< GL_ARB_texture_view */ /** GL_EXT_memory_object */ - GLenum TextureTiling; + GLenum16 TextureTiling; /** Actual texture images, indexed by [cube face] and [mipmap level] */ struct gl_texture_image *Image[MAX_FACES][MAX_TEXTURE_LEVELS]; /** GL_ARB_texture_buffer_object */ struct gl_buffer_object *BufferObject; - GLenum BufferObjectFormat; + GLenum16 BufferObjectFormat; /** Equivalent Mesa format for BufferObjectFormat. */ mesa_format _BufferObjectFormat; /** GL_ARB_texture_buffer_range */ @@ -1104,7 +1104,7 @@ struct gl_texture_object GLint RequiredTextureImageUnits; /** GL_ARB_shader_image_load_store */ - GLenum ImageFormatCompatibilityType; + GLenum16 ImageFormatCompatibilityType; /** GL_ARB_bindless_texture */ struct util_dynarray SamplerHandles; @@ -1121,14 +1121,14 @@ struct gl_texture_object */ struct gl_tex_env_combine_state { - GLenum ModeRGB; /**< GL_REPLACE, GL_DECAL, GL_ADD, etc. */ - GLenum ModeA; /**< GL_REPLACE, GL_DECAL, GL_ADD, etc. */ + GLenum16 ModeRGB; /**< GL_REPLACE, GL_DECAL, GL_ADD, etc. */ + GLenum16 ModeA; /**< GL_REPLACE, GL_DECAL, GL_ADD, etc. */ /** Source terms: GL_PRIMARY_COLOR, GL_TEXTURE, etc */ - GLenum SourceRGB[MAX_COMBINER_TERMS]; - GLenum SourceA[MAX_COMBINER_TERMS]; + GLenum16 SourceRGB[MAX_COMBINER_TERMS]; + GLenum16 SourceA[MAX_COMBINER_TERMS]; /** Source operands: GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, etc */ - GLenum OperandRGB[MAX_COMBINER_TERMS]; - GLenum OperandA[MAX_COMBINER_TERMS]; + GLenum16 OperandRGB[MAX_COMBINER_TERMS]; + GLenum16 OperandA[MAX_COMBINER_TERMS]; GLuint ScaleShiftRGB; /**< 0, 1 or 2 */ GLuint ScaleShiftA; /**< 0, 1 or 2 */ GLuint _NumArgsRGB; /**< Number of inputs used for the RGB combiner */ @@ -1262,7 +1262,7 @@ struct gl_tex_env_combine_packed */ struct gl_texgen { - GLenum Mode; /**< GL_EYE_LINEAR, GL_SPHERE_MAP, etc */ + GLenum16 Mode; /**< GL_EYE_LINEAR, GL_SPHERE_MAP, etc */ GLbitfield _ModeBit; /**< TEXGEN_x bit corresponding to Mode */ GLfloat ObjectPlane[4]; GLfloat EyePlane[4]; @@ -1277,7 +1277,7 @@ struct gl_texture_unit { GLbitfield Enabled; /**< bitmask of TEXTURE_*_BIT flags */ - GLenum EnvMode; /**< GL_MODULATE, GL_DECAL, GL_BLEND, etc. */ + GLenum16 EnvMode; /**< GL_MODULATE, GL_DECAL, GL_BLEND, etc. */ GLclampf EnvColor[4]; GLfloat EnvColorUnclamped[4]; @@ -1373,7 +1373,7 @@ typedef GLfloat gl_clip_plane[4]; */ struct gl_transform_attrib { - GLenum MatrixMode; /**< Matrix mode */ + GLenum16 MatrixMode; /**< Matrix mode */ gl_clip_plane EyeUserPlane[MAX_CLIP_PLANES]; /**< User clip planes */ gl_clip_plane _ClipUserPlane[MAX_CLIP_PLANES]; /**< derived */ GLbitfield ClipPlanesEnabled; /**< on/off bitmask */ @@ -1382,8 +1382,8 @@ struct gl_transform_attrib GLboolean RasterPositionUnclipped; /**< GL_IBM_rasterpos_clip */ GLboolean DepthClamp; /**< GL_ARB_depth_clamp */ /** GL_ARB_clip_control */ - GLenum ClipOrigin; /**< GL_LOWER_LEFT or GL_UPPER_LEFT */ - GLenum ClipDepthMode; /**< GL_NEGATIVE_ONE_TO_ONE or GL_ZERO_TO_ONE */ + GLenum16 ClipOrigin; /**< GL_LOWER_LEFT or GL_UPPER_LEFT */ + GLenum16 ClipDepthMode;/**< GL_NEGATIVE_ONE_TO_ONE or GL_ZERO_TO_ONE */ }; @@ -1442,7 +1442,7 @@ struct gl_buffer_object GLint RefCount; GLuint Name; GLchar *Label; /**< GL_KHR_debug */ - GLenum Usage; /**< GL_STREAM_DRAW_ARB, GL_STREAM_READ_ARB, etc. */ + GLenum16 Usage; /**< GL_STREAM_DRAW_ARB, GL_STREAM_READ_ARB, etc. */ GLbitfield StorageFlags; /**< GL_MAP_PERSISTENT_BIT, etc. */ GLsizeiptrARB Size; /**< Size of buffer storage in bytes */ GLubyte *Data; /**< Location of storage either in RAM or VRAM. */ @@ -1498,8 +1498,8 @@ struct gl_pixelstore_attrib struct gl_vertex_array { GLint Size; /**< components per element (1,2,3,4) */ - GLenum Type; /**< datatype: GL_FLOAT, GL_INT, etc */ - GLenum Format; /**< default: GL_RGBA, but may be GL_BGRA */ + GLenum16 Type; /**< datatype: GL_FLOAT, GL_INT, etc */ + GLenum16 Format; /**< default: GL_RGBA, but may be GL_BGRA */ GLsizei StrideB; /**< actual stride in bytes */ GLuint _ElementSize; /**< size of each element in bytes */ const GLubyte *Ptr; /**< Points to array data */ @@ -1528,8 +1528,8 @@ struct gl_vertex_array struct gl_array_attributes { GLint Size; /**< Components per element (1,2,3,4) */ - GLenum Type; /**< Datatype: GL_FLOAT, GL_INT, etc */ - GLenum Format; /**< Default: GL_RGBA, but may be GL_BGRA */ + GLenum16 Type; /**< Datatype: GL_FLOAT, GL_INT, etc */ + GLenum16 Format; /**< Default: GL_RGBA, but may be GL_BGRA */ GLsizei Stride; /**< Stride as specified with gl*Pointer() */ const GLubyte *Ptr; /**< Points to client array data. Not used when a VBO is bound */ GLintptr RelativeOffset; /**< Offset of the first element relative to the binding offset */ @@ -1673,7 +1673,7 @@ struct gl_array_attrib */ struct gl_feedback { - GLenum Type; + GLenum16 Type; GLbitfield _Mask; /**< FB_* bits */ GLfloat *Buffer; GLuint BufferSize; @@ -1762,7 +1762,7 @@ struct gl_evaluators struct gl_transform_feedback_varying_info { char *Name; - GLenum Type; + GLenum16 Type; GLint BufferIndex; GLint Size; GLint Offset; @@ -1895,7 +1895,7 @@ struct gl_transform_feedback_object */ struct gl_transform_feedback_state { - GLenum Mode; /**< GL_POINTS, GL_LINES or GL_TRIANGLES */ + GLenum16 Mode; /**< GL_POINTS, GL_LINES or GL_TRIANGLES */ /** The general binding point (GL_TRANSFORM_FEEDBACK_BUFFER) */ struct gl_buffer_object *CurrentBuffer; @@ -1963,7 +1963,7 @@ struct gl_perf_monitor_counter * Data type of the counter. Valid values are FLOAT, UNSIGNED_INT, * UNSIGNED_INT64_AMD, and PERCENTAGE_AMD. */ - GLenum Type; + GLenum16 Type; /** Minimum counter value. */ union gl_perf_monitor_counter_value Minimum; @@ -2061,7 +2061,7 @@ struct gl_bindless_image GLboolean bound; /** Access qualifier (GL_READ_WRITE, GL_READ_ONLY, GL_WRITE_ONLY) */ - GLenum access; + GLenum16 access; /** Pointer to the base of the data. */ GLvoid *data; @@ -2114,8 +2114,8 @@ struct gl_program GLubyte *String; /**< Null-terminated program text */ /** GL_VERTEX/FRAGMENT_PROGRAM_ARB, GL_GEOMETRY_PROGRAM_NV */ - GLenum Target; - GLenum Format; /**< String encoding format */ + GLenum16 Target; + GLenum16 Format; /**< String encoding format */ GLboolean _Used; /**< Ever used for drawing? Used for debugging */ @@ -2203,7 +2203,7 @@ struct gl_program * It may be different, though only more strict than the value of * \c gl_image_unit::Access for the corresponding image unit. */ - GLenum ImageAccess[MAX_IMAGE_UNIFORMS]; + GLenum16 ImageAccess[MAX_IMAGE_UNIFORMS]; struct gl_uniform_block **UniformBlocks; struct gl_uniform_block **ShaderStorageBlocks; @@ -2486,14 +2486,14 @@ struct gl_shader_info * GL_TRIANGLES, GL_QUADS, GL_ISOLINES or PRIM_UNKNOWN if it's not set * in this shader. */ - GLenum PrimitiveMode; + GLenum16 PrimitiveMode; enum gl_tess_spacing Spacing; /** * GL_CW, GL_CCW, or 0 if it's not set in this shader. */ - GLenum VertexOrder; + GLenum16 VertexOrder; /** * 1, 0, or -1 if it's not set in this shader. */ @@ -2515,12 +2515,12 @@ struct gl_shader_info * GL_TRIANGLES_ADJACENCY, or PRIM_UNKNOWN if it's not set in this * shader. */ - GLenum InputType; + GLenum16 InputType; /** * GL_POINTS, GL_LINE_STRIP or GL_TRIANGLE_STRIP, or PRIM_UNKNOWN if * it's not set in this shader. */ - GLenum OutputType; + GLenum16 OutputType; } Geom; /** @@ -2608,7 +2608,7 @@ struct gl_shader * GL_TESS_CONTROL_SHADER || GL_TESS_EVALUATION_SHADER. * Must be the first field. */ - GLenum Type; + GLenum16 Type; gl_shader_stage Stage; GLuint Name; /**< AKA the handle */ GLint RefCount; /**< Reference count */ @@ -2873,7 +2873,7 @@ struct gl_shader_variable */ struct gl_program_resource { - GLenum Type; /** Program interface type. */ + GLenum16 Type; /** Program interface type. */ const void *Data; /** Pointer to resource associated data structure. */ uint8_t StageReferences; /** Bitmask of shader stage references. */ }; @@ -2948,7 +2948,7 @@ struct gl_shader_program_data */ struct gl_shader_program { - GLenum Type; /**< Always GL_SHADER_PROGRAM (internal token) */ + GLenum16 Type; /**< Always GL_SHADER_PROGRAM (internal token) */ GLuint Name; /**< aka handle or ID */ GLchar *Label; /**< GL_KHR_debug */ GLint RefCount; /**< Reference count */ @@ -2995,7 +2995,7 @@ struct gl_shader_program * feedback output, see LinkedTransformFeedback. */ struct { - GLenum BufferMode; + GLenum16 BufferMode; /** Global xfb_stride out qualifier if any */ GLuint BufferStride[MAX_FEEDBACK_BUFFERS]; GLuint NumVarying; @@ -3239,7 +3239,7 @@ struct gl_query_state /** GL_ARB_pipeline_statistics_query */ struct gl_query_object *pipeline_stats[MAX_PIPELINE_STATISTICS]; - GLenum CondRenderMode; + GLenum16 CondRenderMode; }; @@ -3252,7 +3252,7 @@ struct gl_sync_object GLboolean DeletePending; /**< Object was deleted while there were still * live references (e.g., sync not yet finished) */ - GLenum SyncCondition; + GLenum16 SyncCondition; GLbitfield Flags; /**< Flags passed to glFenceSync */ GLuint StatusFlag:1; /**< Has the sync object been signaled? */ }; @@ -3374,8 +3374,8 @@ struct gl_renderbuffer */ GLboolean NeedsFinishRenderTexture; GLubyte NumSamples; /**< zero means not multisampled */ - GLenum InternalFormat; /**< The user-specified format */ - GLenum _BaseFormat; /**< Either GL_RGB, GL_RGBA, GL_DEPTH_COMPONENT or + GLenum16 InternalFormat; /**< The user-specified format */ + GLenum16 _BaseFormat; /**< Either GL_RGB, GL_RGBA, GL_DEPTH_COMPONENT or GL_STENCIL_INDEX. */ mesa_format Format; /**< The actual renderbuffer memory format */ /** @@ -3404,7 +3404,7 @@ struct gl_renderbuffer */ struct gl_renderbuffer_attachment { - GLenum Type; /**< \c GL_NONE or \c GL_TEXTURE or \c GL_RENDERBUFFER_EXT */ + GLenum16 Type; /**< \c GL_NONE or \c GL_TEXTURE or \c GL_RENDERBUFFER_EXT */ GLboolean Complete; /** @@ -3491,7 +3491,7 @@ struct gl_framebuffer /*@}*/ /** One of the GL_FRAMEBUFFER_(IN)COMPLETE_* tokens */ - GLenum _Status; + GLenum16 _Status; /** Whether one of Attachment has Type != GL_NONE * NOTE: the values for Width and Height are set to 0 in case of having @@ -3530,8 +3530,8 @@ struct gl_framebuffer /* In unextended OpenGL these vars are part of the GL_COLOR_BUFFER * attribute group and GL_PIXEL attribute group, respectively. */ - GLenum ColorDrawBuffer[MAX_DRAW_BUFFERS]; - GLenum ColorReadBuffer; + GLenum16 ColorDrawBuffer[MAX_DRAW_BUFFERS]; + GLenum16 ColorReadBuffer; /** Computed from ColorDraw/ReadBuffer above */ GLuint _NumColorDrawBuffers; @@ -3817,7 +3817,7 @@ struct gl_constants GLboolean QuadsFollowProvokingVertexConvention; /** GL_ARB_viewport_array */ - GLenum LayerAndVPIndexProvokingVertex; + GLenum16 LayerAndVPIndexProvokingVertex; /** OpenGL version 3.0 */ GLbitfield ContextFlags; /**< Ex: GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT */ @@ -3843,7 +3843,7 @@ struct gl_constants GLuint MaxProgramTextureGatherComponents; /* GL_ARB_robustness */ - GLenum ResetStrategy; + GLenum16 ResetStrategy; /* GL_KHR_robustness */ GLboolean RobustAccess; @@ -4032,7 +4032,7 @@ struct gl_constants GLboolean FakeSWMSAA; /** GL_KHR_context_flush_control */ - GLenum ContextReleaseBehavior; + GLenum16 ContextReleaseBehavior; struct gl_shader_compiler_options ShaderCompilerOptions[MESA_SHADER_STAGES]; @@ -4439,7 +4439,7 @@ struct gl_dlist_state /* State known to have been set by the currently-compiling display * list. Used to eliminate some redundant state changes. */ - GLenum ShadeModel; + GLenum16 ShadeModel; } Current; }; @@ -4670,14 +4670,14 @@ struct gl_image_unit * Access allowed to this texture image. Either \c GL_READ_ONLY, * \c GL_WRITE_ONLY or \c GL_READ_WRITE. */ - GLenum Access; + GLenum16 Access; /** * GL internal format that determines the interpretation of the * image memory when shader image operations are performed through * this unit. */ - GLenum Format; + GLenum16 Format; /** * Mesa format corresponding to \c Format. @@ -4979,7 +4979,7 @@ struct gl_context /* GL_EXT_framebuffer_object */ struct gl_renderbuffer *CurrentRenderbuffer; - GLenum ErrorValue; /**< Last error code */ + GLenum16 ErrorValue; /**< Last error code */ /** * Recognize and silence repeated error debug messages in buggy apps. @@ -4991,7 +4991,7 @@ struct gl_context simple_mtx_t DebugMutex; struct gl_debug_state *Debug; - GLenum RenderMode; /**< either GL_RENDER, GL_SELECT, GL_FEEDBACK */ + GLenum16 RenderMode; /**< either GL_RENDER, GL_SELECT, GL_FEEDBACK */ GLbitfield NewState; /**< bitwise-or of _NEW_* flags */ uint64_t NewDriverState; /**< bitwise-or of flags from DriverFlags */ diff --git a/src/mesa/vbo/vbo_exec.h b/src/mesa/vbo/vbo_exec.h index dc18889b6b4..7e00d45de04 100644 --- a/src/mesa/vbo/vbo_exec.h +++ b/src/mesa/vbo/vbo_exec.h @@ -97,7 +97,7 @@ struct vbo_exec_context GLbitfield64 enabled; /**< mask of enabled vbo arrays. */ GLubyte attrsz[VBO_ATTRIB_MAX]; /**< nr. of attrib components (1..4) */ - GLenum attrtype[VBO_ATTRIB_MAX]; /**< GL_FLOAT, GL_DOUBLE, GL_INT, etc */ + GLenum16 attrtype[VBO_ATTRIB_MAX]; /**< GL_FLOAT, GL_DOUBLE, GL_INT, etc */ GLubyte active_sz[VBO_ATTRIB_MAX]; /**< attrib size (nr. 32-bit words) */ /** pointers into the current 'vertex' array, declared above */ diff --git a/src/mesa/vbo/vbo_save.h b/src/mesa/vbo/vbo_save.h index 51ea9ccb3d0..1dc66a598e3 100644 --- a/src/mesa/vbo/vbo_save.h +++ b/src/mesa/vbo/vbo_save.h @@ -63,7 +63,7 @@ struct vbo_save_copied_vtx { struct vbo_save_vertex_list { GLbitfield64 enabled; /**< mask of enabled vbo arrays. */ GLubyte attrsz[VBO_ATTRIB_MAX]; - GLenum attrtype[VBO_ATTRIB_MAX]; + GLenum16 attrtype[VBO_ATTRIB_MAX]; GLuint vertex_size; /**< size in GLfloats */ /* Copy of the final vertex from node->vertex_store->bufferobj. @@ -144,7 +144,7 @@ struct vbo_save_context { GLbitfield64 enabled; /**< mask of enabled vbo arrays. */ GLubyte attrsz[VBO_ATTRIB_MAX]; /**< 1, 2, 3 or 4 */ - GLenum attrtype[VBO_ATTRIB_MAX]; /**< GL_FLOAT, GL_INT, etc */ + GLenum16 attrtype[VBO_ATTRIB_MAX]; /**< GL_FLOAT, GL_INT, etc */ GLubyte active_sz[VBO_ATTRIB_MAX]; /**< 1, 2, 3 or 4 */ GLuint vertex_size; /**< size in GLfloats */ diff --git a/src/mesa/vbo/vbo_save_api.c b/src/mesa/vbo/vbo_save_api.c index 11c40a26429..a0fb62d8145 100644 --- a/src/mesa/vbo/vbo_save_api.c +++ b/src/mesa/vbo/vbo_save_api.c @@ -436,7 +436,9 @@ compile_vertex_list(struct gl_context *ctx) /* Duplicate our template, increment refcounts to the storage structs: */ node->enabled = save->enabled; + STATIC_ASSERT(sizeof(node->attrsz) == sizeof(save->attrsz)); memcpy(node->attrsz, save->attrsz, sizeof(node->attrsz)); + STATIC_ASSERT(sizeof(node->attrtype) == sizeof(save->attrtype)); memcpy(node->attrtype, save->attrtype, sizeof(node->attrtype)); node->vertex_size = save->vertex_size; node->buffer_offset = diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c index c86efcb05ee..fd0ccc1230a 100644 --- a/src/mesa/vbo/vbo_save_draw.c +++ b/src/mesa/vbo/vbo_save_draw.c @@ -141,10 +141,12 @@ bind_vertex_list(struct gl_context *ctx, const GLubyte *map; GLuint attr; GLubyte node_attrsz[VBO_ATTRIB_MAX]; /* copy of node->attrsz[] */ - GLenum node_attrtype[VBO_ATTRIB_MAX]; /* copy of node->attrtype[] */ + GLenum16 node_attrtype[VBO_ATTRIB_MAX]; /* copy of node->attrtype[] */ GLbitfield varying_inputs = 0x0; + STATIC_ASSERT(sizeof(node_attrsz) == sizeof(node->attrsz)); memcpy(node_attrsz, node->attrsz, sizeof(node->attrsz)); + STATIC_ASSERT(sizeof(node_attrtype) == sizeof(node->attrtype)); memcpy(node_attrtype, node->attrtype, sizeof(node->attrtype)); if (aligned_vertex_buffer_offset(node)) { -- 2.30.2