diff options
Diffstat (limited to 'mesalib/src/mesa')
| -rw-r--r-- | mesalib/src/mesa/main/APIspec.xml | 13 | ||||
| -rw-r--r-- | mesalib/src/mesa/main/extensions.c | 1 | ||||
| -rw-r--r-- | mesalib/src/mesa/main/get.c | 32 | ||||
| -rw-r--r-- | mesalib/src/mesa/main/mtypes.h | 1 | 
4 files changed, 41 insertions, 6 deletions
| diff --git a/mesalib/src/mesa/main/APIspec.xml b/mesalib/src/mesa/main/APIspec.xml index f23857ad2..64e666eff 100644 --- a/mesalib/src/mesa/main/APIspec.xml +++ b/mesalib/src/mesa/main/APIspec.xml @@ -3534,6 +3534,13 @@  	</proto>  </template> +<template name="ReadBuffer"> +	<proto> +		<return type="void"/> +		<param name="mode" type="GLenum"/> +	</proto> +</template> +  <api name="mesa" implementation="true">  	<category name="MESA"/> @@ -3810,6 +3817,9 @@          <function name="EGLImageTargetRenderbufferStorageOES" template="EGLImageTargetRenderbufferStorage"/>  	<function name="DrawBuffersARB" template="DrawBuffers"/> + +	<function name="ReadBuffer" template="ReadBuffer"/> +  </api>  <api name="GLES1.1"> @@ -4150,7 +4160,10 @@          <category name="EXT_unpack_subimage"/>  	<category name="NV_draw_buffers"/> +	<category name="NV_read_buffer"/> +  	<function name="DrawBuffersNV" template="DrawBuffers"/> +	<function name="ReadBufferNV" template="ReadBuffer"/>   	<function name="CullFace" template="CullFace"/> diff --git a/mesalib/src/mesa/main/extensions.c b/mesalib/src/mesa/main/extensions.c index 2688f7ace..0e8178397 100644 --- a/mesalib/src/mesa/main/extensions.c +++ b/mesalib/src/mesa/main/extensions.c @@ -300,6 +300,7 @@ static const struct extension extension_table[] = {     { "GL_NV_packed_depth_stencil",                 o(EXT_packed_depth_stencil),                GL,             2000 },     { "GL_NV_point_sprite",                         o(NV_point_sprite),                         GL,             2001 },     { "GL_NV_primitive_restart",                    o(NV_primitive_restart),                    GL,             2002 }, +   { "GL_NV_read_buffer",                          o(dummy_true),                              ES2,            2011 },     { "GL_NV_texgen_reflection",                    o(NV_texgen_reflection),                    GL,             1999 },     { "GL_NV_texture_barrier",                      o(NV_texture_barrier),                      GL,             2009 },     { "GL_NV_texture_env_combine4",                 o(NV_texture_env_combine4),                 GL,             1999 }, diff --git a/mesalib/src/mesa/main/get.c b/mesalib/src/mesa/main/get.c index 55dc20550..8dc47306f 100644 --- a/mesalib/src/mesa/main/get.c +++ b/mesalib/src/mesa/main/get.c @@ -131,7 +131,8 @@ enum value_extra {     EXTRA_VERSION_30,     EXTRA_VERSION_31,     EXTRA_VERSION_32, -   EXTRA_VERSION_ES2, +   EXTRA_API_GL, +   EXTRA_API_ES2,     EXTRA_NEW_BUFFERS,      EXTRA_NEW_FRAG_CLAMP,     EXTRA_VALID_DRAW_BUFFER, @@ -363,9 +364,18 @@ static const int extra_version_31[] = { EXTRA_VERSION_31, EXTRA_END };  static const int extra_version_32[] = { EXTRA_VERSION_32, EXTRA_END };  static const int -extra_ARB_vertex_program_version_es2[] = { +extra_ARB_vertex_program_api_es2[] = {     EXT(ARB_vertex_program), -   EXTRA_VERSION_ES2, +   EXTRA_API_ES2, +   EXTRA_END +}; + +/* The ReadBuffer get token is valid under either full GL or under + * GLES2 if the NV_read_buffer extension is available. */ +static const int +extra_NV_read_buffer_api_gl[] = { +   EXT(NV_read_buffer), +   EXTRA_API_GL,     EXTRA_END  }; @@ -740,7 +750,7 @@ static const struct value_desc values[] = {     { GL_MAX_VERTEX_ATTRIBS_ARB,       CONTEXT_INT(Const.VertexProgram.MaxAttribs), -     extra_ARB_vertex_program_version_es2 }, +     extra_ARB_vertex_program_api_es2 },     /* OES_texture_3D */     { GL_TEXTURE_BINDING_3D, LOC_CUSTOM, TYPE_INT, TEXTURE_3D_INDEX, NO_EXTRA }, @@ -750,6 +760,11 @@ static const struct value_desc values[] = {     /* GL_ARB_fragment_program/OES_standard_derivatives */     { GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB,       CONTEXT_ENUM(Hint.FragmentShaderDerivative), extra_ARB_fragment_shader }, + +   /* GL_NV_read_buffer */ +   { GL_READ_BUFFER, +     LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, extra_NV_read_buffer_api_gl }, +  #endif /* FEATURE_GL || FEATURE_ES2 */  #if FEATURE_ES2 @@ -884,7 +899,6 @@ static const struct value_desc values[] = {     { GL_POLYGON_SMOOTH, CONTEXT_BOOL(Polygon.SmoothFlag), NO_EXTRA },     { GL_POLYGON_SMOOTH_HINT, CONTEXT_ENUM(Hint.PolygonSmooth), NO_EXTRA },     { GL_POLYGON_STIPPLE, CONTEXT_BOOL(Polygon.StippleFlag), NO_EXTRA }, -   { GL_READ_BUFFER, LOC_CUSTOM, TYPE_ENUM, NO_OFFSET, NO_EXTRA },     { GL_RED_BIAS, CONTEXT_FLOAT(Pixel.RedBias), NO_EXTRA },     { GL_RED_SCALE, CONTEXT_FLOAT(Pixel.RedScale), NO_EXTRA },     { GL_RENDER_MODE, CONTEXT_ENUM(RenderMode), NO_EXTRA }, @@ -1808,12 +1822,18 @@ check_extra(struct gl_context *ctx, const char *func, const struct value_desc *d           if (ctx->NewState & (_NEW_BUFFERS | _NEW_FRAG_CLAMP))              _mesa_update_state(ctx);           break; -      case EXTRA_VERSION_ES2: +      case EXTRA_API_ES2:  	 if (ctx->API == API_OPENGLES2) {  	    total++;  	    enabled++;  	 }  	 break; +      case EXTRA_API_GL: +	 if (ctx->API == API_OPENGL) { +	    total++; +	    enabled++; +	 } +	 break;        case EXTRA_NEW_BUFFERS:  	 if (ctx->NewState & _NEW_BUFFERS)  	    _mesa_update_state(ctx); diff --git a/mesalib/src/mesa/main/mtypes.h b/mesalib/src/mesa/main/mtypes.h index ea40ffc9c..3d18b7c48 100644 --- a/mesalib/src/mesa/main/mtypes.h +++ b/mesalib/src/mesa/main/mtypes.h @@ -2995,6 +2995,7 @@ struct gl_extensions     GLboolean NV_light_max_exponent;     GLboolean NV_point_sprite;     GLboolean NV_primitive_restart; +   GLboolean NV_read_buffer;     GLboolean NV_texture_barrier;     GLboolean NV_texgen_reflection;     GLboolean NV_texture_env_combine4; | 
