diff options
author | Marek Olšák <[email protected]> | 2013-03-28 03:02:14 +0100 |
---|---|---|
committer | Marek Olšák <[email protected]> | 2013-04-06 23:57:10 +0200 |
commit | 3264c3e99700389f0a3958db7c9c19673107d67a (patch) | |
tree | 2c26670d6e2940646f62742d739452ff2e3aa688 /src/mesa/main/blend.c | |
parent | 9d4f67600b0a8f4b37eb2ed45b194e153669d11a (diff) |
mesa: allow drivers not to expose ARB_color_buffer_float in GL core profile
Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/main/blend.c')
-rw-r--r-- | src/mesa/main/blend.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c index 906ff3efdfb..09a1c9ae84c 100644 --- a/src/mesa/main/blend.c +++ b/src/mesa/main/blend.c @@ -765,11 +765,19 @@ _mesa_ClampColor(GLenum target, GLenum clamp) switch (target) { case GL_CLAMP_VERTEX_COLOR_ARB: + if (ctx->API == API_OPENGL_CORE && + !ctx->Extensions.ARB_color_buffer_float) { + goto invalid_enum; + } FLUSH_VERTICES(ctx, _NEW_LIGHT); ctx->Light.ClampVertexColor = clamp; _mesa_update_clamp_vertex_color(ctx); break; case GL_CLAMP_FRAGMENT_COLOR_ARB: + if (ctx->API == API_OPENGL_CORE && + !ctx->Extensions.ARB_color_buffer_float) { + goto invalid_enum; + } FLUSH_VERTICES(ctx, _NEW_FRAG_CLAMP); ctx->Color.ClampFragmentColor = clamp; _mesa_update_clamp_fragment_color(ctx); @@ -779,9 +787,13 @@ _mesa_ClampColor(GLenum target, GLenum clamp) ctx->Color.ClampReadColor = clamp; break; default: - _mesa_error(ctx, GL_INVALID_ENUM, "glClampColorARB(target)"); - return; + goto invalid_enum; } + return; + +invalid_enum: + _mesa_error(ctx, GL_INVALID_ENUM, "glClampColor(%s)", + _mesa_lookup_enum_by_nr(target)); } static GLboolean @@ -892,7 +904,8 @@ void _mesa_init_color( struct gl_context * ctx ) ctx->Color.DrawBuffer[0] = GL_FRONT; } - ctx->Color.ClampFragmentColor = GL_FIXED_ONLY_ARB; + ctx->Color.ClampFragmentColor = ctx->API == API_OPENGL_COMPAT ? + GL_FIXED_ONLY_ARB : GL_FALSE; ctx->Color._ClampFragmentColor = GL_FALSE; ctx->Color.ClampReadColor = GL_FIXED_ONLY_ARB; |