summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/blend.c
diff options
context:
space:
mode:
authorMarek Olšák <maraeo@gmail.com>2013-03-28 03:02:14 +0100
committerMarek Olšák <maraeo@gmail.com>2013-04-06 23:57:10 +0200
commit3264c3e99700389f0a3958db7c9c19673107d67a (patch)
tree2c26670d6e2940646f62742d739452ff2e3aa688 /src/mesa/main/blend.c
parent9d4f67600b0a8f4b37eb2ed45b194e153669d11a (diff)
downloadexternal_mesa3d-3264c3e99700389f0a3958db7c9c19673107d67a.zip
external_mesa3d-3264c3e99700389f0a3958db7c9c19673107d67a.tar.gz
external_mesa3d-3264c3e99700389f0a3958db7c9c19673107d67a.tar.bz2
mesa: allow drivers not to expose ARB_color_buffer_float in GL core profile
Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/mesa/main/blend.c')
-rw-r--r--src/mesa/main/blend.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/mesa/main/blend.c b/src/mesa/main/blend.c
index 906ff3e..09a1c9a 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;