summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/dlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/main/dlist.c')
-rw-r--r--src/mesa/main/dlist.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/mesa/main/dlist.c b/src/mesa/main/dlist.c
index 3de6832d3cd..7e86f1d0ed0 100644
--- a/src/mesa/main/dlist.c
+++ b/src/mesa/main/dlist.c
@@ -388,6 +388,9 @@ typedef enum
OPCODE_UNIFORM_3UIV,
OPCODE_UNIFORM_4UIV,
+ /* GL_ARB_color_buffer_float */
+ OPCODE_CLAMP_COLOR,
+
/* GL_EXT_framebuffer_blit */
OPCODE_BLIT_FRAMEBUFFER,
@@ -6887,6 +6890,22 @@ save_UniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose,
}
static void GLAPIENTRY
+save_ClampColorARB(GLenum target, GLenum clamp)
+{
+ GET_CURRENT_CONTEXT(ctx);
+ Node *n;
+ ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx);
+ n = alloc_instruction(ctx, OPCODE_CLAMP_COLOR, 2);
+ if (n) {
+ n[1].e = target;
+ n[2].e = clamp;
+ }
+ if (ctx->ExecuteFlag) {
+ CALL_ClampColorARB(ctx->Exec, (target, clamp));
+ }
+}
+
+static void GLAPIENTRY
save_UseShaderProgramEXT(GLenum type, GLuint program)
{
GET_CURRENT_CONTEXT(ctx);
@@ -8071,6 +8090,10 @@ execute_list(struct gl_context *ctx, GLuint list)
(n[1].i, n[2].i, n[3].b, n[4].data));
break;
+ case OPCODE_CLAMP_COLOR:
+ CALL_ClampColorARB(ctx->Exec, (n[1].e, n[2].e));
+ break;
+
case OPCODE_TEX_BUMP_PARAMETER_ATI:
{
GLfloat values[4];
@@ -9868,6 +9891,10 @@ _mesa_create_save_table(void)
SET_UseShaderProgramEXT(table, save_UseShaderProgramEXT);
SET_ActiveProgramEXT(table, save_ActiveProgramEXT);
+ /* GL_ARB_color_buffer_float */
+ SET_ClampColorARB(table, save_ClampColorARB);
+ SET_ClampColor(table, save_ClampColorARB);
+
/* GL 3.0 */
#if 0
SET_ClearBufferiv(table, save_ClearBufferiv);