From 3a5bb1729d8c229a587e34ccd5ddc86e26811b9f Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 26 Jan 2006 01:32:47 +0000 Subject: New comments, clean-up of fields related to point/line/triangle validation. --- src/mesa/swrast/s_context.c | 12 ++++++------ src/mesa/swrast/s_context.h | 27 ++++++++++++++++++--------- 2 files changed, 24 insertions(+), 15 deletions(-) (limited to 'src/mesa/swrast') diff --git a/src/mesa/swrast/s_context.c b/src/mesa/swrast/s_context.c index 9d283b0589..dc5b92dbf8 100644 --- a/src/mesa/swrast/s_context.c +++ b/src/mesa/swrast/s_context.c @@ -392,13 +392,13 @@ _swrast_invalidate_state( GLcontext *ctx, GLbitfield new_state ) new_state = ~0; } - if (new_state & swrast->invalidate_triangle) + if (new_state & swrast->InvalidateTriangleMask) swrast->Triangle = _swrast_validate_triangle; - if (new_state & swrast->invalidate_line) + if (new_state & swrast->InvalidateLineMask) swrast->Line = _swrast_validate_line; - if (new_state & swrast->invalidate_point) + if (new_state & swrast->InvalidatePointMask) swrast->Point = _swrast_validate_point; if (new_state & _SWRAST_NEW_BLEND_FUNC) @@ -570,9 +570,9 @@ _swrast_CreateContext( GLcontext *ctx ) swrast->choose_line = _swrast_choose_line; swrast->choose_triangle = _swrast_choose_triangle; - swrast->invalidate_point = _SWRAST_NEW_POINT; - swrast->invalidate_line = _SWRAST_NEW_LINE; - swrast->invalidate_triangle = _SWRAST_NEW_TRIANGLE; + swrast->InvalidatePointMask = _SWRAST_NEW_POINT; + swrast->InvalidateLineMask = _SWRAST_NEW_LINE; + swrast->InvalidateTriangleMask = _SWRAST_NEW_TRIANGLE; swrast->Point = _swrast_validate_point; swrast->Line = _swrast_validate_line; diff --git a/src/mesa/swrast/s_context.h b/src/mesa/swrast/s_context.h index 5cfe7627a5..c1c01df8f5 100644 --- a/src/mesa/swrast/s_context.h +++ b/src/mesa/swrast/s_context.h @@ -299,23 +299,32 @@ typedef struct GLuint StateChanges; GLenum Primitive; /* current primitive being drawn (ala glBegin) */ - /** Mechanism to allow driver (like X11) to register further - * software rasterization routines. + void (*InvalidateState)( GLcontext *ctx, GLbitfield new_state ); + + /** + * When the NewState mask intersects these masks, we invalidate the + * Point/Line/Triangle function pointers below. + */ + /*@{*/ + GLbitfield InvalidatePointMask; + GLbitfield InvalidateLineMask; + GLbitfield InvalidateTriangleMask; + /*@}*/ + + /** + * Device drivers plug in functions for these callbacks. + * Will be called when the GL state change mask intersects the above masks. */ /*@{*/ void (*choose_point)( GLcontext * ); void (*choose_line)( GLcontext * ); void (*choose_triangle)( GLcontext * ); - - GLbitfield invalidate_point; - GLbitfield invalidate_line; - GLbitfield invalidate_triangle; /*@}*/ - /** Function pointers for dispatch behind public entrypoints. */ + /** + * Current point, line and triangle drawing functions. + */ /*@{*/ - void (*InvalidateState)( GLcontext *ctx, GLbitfield new_state ); - swrast_point_func Point; swrast_line_func Line; swrast_tri_func Triangle; -- cgit v1.2.3