New comments, clean-up of fields related to point/line/triangle validation.

This commit is contained in:
Brian Paul
2006-01-26 01:32:47 +00:00
parent 2219a15b06
commit 3a5bb1729d
4 changed files with 33 additions and 21 deletions
+2 -2
View File
@@ -868,8 +868,8 @@ dmesa_register_swrast_functions (GLcontext *ctx)
swrast->choose_line = dmesa_choose_line;
swrast->choose_triangle = dmesa_choose_tri;
swrast->invalidate_line |= DMESA_NEW_LINE;
swrast->invalidate_triangle |= DMESA_NEW_TRIANGLE;
swrast->InvalidateLineMask |= DMESA_NEW_LINE;
swrast->InvalidateTriangleMask |= DMESA_NEW_TRIANGLE;
}
+7 -4
View File
@@ -1293,8 +1293,10 @@ xmesa_init_driver_functions( XMesaVisual xmvisual,
_SWRAST_NEW_RASTERMASK)
/* Extend the software rasterizer with our line/point/triangle
/**
* Extend the software rasterizer with our line/point/triangle
* functions.
* Called during context creation only.
*/
void xmesa_register_swrast_functions( GLcontext *ctx )
{
@@ -1304,7 +1306,8 @@ void xmesa_register_swrast_functions( GLcontext *ctx )
swrast->choose_line = xmesa_choose_line;
swrast->choose_triangle = xmesa_choose_triangle;
swrast->invalidate_point |= XMESA_NEW_POINT;
swrast->invalidate_line |= XMESA_NEW_LINE;
swrast->invalidate_triangle |= XMESA_NEW_TRIANGLE;
/* XXX these lines have no net effect. Remove??? */
swrast->InvalidatePointMask |= XMESA_NEW_POINT;
swrast->InvalidateLineMask |= XMESA_NEW_LINE;
swrast->InvalidateTriangleMask |= XMESA_NEW_TRIANGLE;
}
+6 -6
View File
@@ -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;
+18 -9
View File
@@ -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;