nouveau: Use _NEW_SCISSOR instead of hooking through dd_function_table
authorIan Romanick <ian.d.romanick@intel.com>
Fri, 1 Nov 2013 21:56:53 +0000 (14:56 -0700)
committerIan Romanick <ian.d.romanick@intel.com>
Tue, 5 Nov 2013 15:50:19 +0000 (07:50 -0800)
This will enable removing the dd_function_table::Scissor hook in the
near future.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
src/mesa/drivers/dri/nouveau/nouveau_state.c

index 16b7acc099283826d687131d4df355681607e58e..3e7ed210196537216a5affbb5b84c78108d33c8e 100644 (file)
@@ -336,12 +336,6 @@ nouveau_render_mode(struct gl_context *ctx, GLenum mode)
        context_dirty(ctx, RENDER_MODE);
 }
 
-static void
-nouveau_scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei w, GLsizei h)
-{
-       context_dirty(ctx, SCISSOR);
-}
-
 static void
 nouveau_shade_model(struct gl_context *ctx, GLenum mode)
 {
@@ -471,6 +465,9 @@ nouveau_update_state(struct gl_context *ctx, GLbitfield new_state)
                        context_dirty_i(ctx, TEX_MAT, i);
        }
 
+       if (new_state & _NEW_SCISSOR)
+               context_dirty(ctx, SCISSOR);
+
        if (new_state & _NEW_VIEWPORT)
                context_dirty(ctx, VIEWPORT);
 
@@ -530,7 +527,6 @@ nouveau_state_init(struct gl_context *ctx)
        ctx->Driver.PolygonOffset = nouveau_polygon_offset;
        ctx->Driver.PolygonStipple = nouveau_polygon_stipple;
        ctx->Driver.RenderMode = nouveau_render_mode;
-       ctx->Driver.Scissor = nouveau_scissor;
        ctx->Driver.ShadeModel = nouveau_shade_model;
        ctx->Driver.StencilFuncSeparate = nouveau_stencil_func_separate;
        ctx->Driver.StencilMaskSeparate = nouveau_stencil_mask_separate;