X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Ftnl%2Ft_context.h;h=226b877d8525d705b6edf6fd996ce05478ab2375;hb=cd1cefae9146fc14b35ee93a04bdb1b1590fba7b;hp=9864c8ec07055c1c99591131c49e1c376f831325;hpb=6d1055c9675fb8c39d3843b550beaa168e031fc9;p=mesa.git diff --git a/src/mesa/tnl/t_context.h b/src/mesa/tnl/t_context.h index 9864c8ec070..226b877d852 100644 --- a/src/mesa/tnl/t_context.h +++ b/src/mesa/tnl/t_context.h @@ -1,4 +1,4 @@ -/* $Id: t_context.h,v 1.24 2001/05/11 08:11:31 keithw Exp $ */ +/* $Id: t_context.h,v 1.28 2001/06/04 16:09:28 keithw Exp $ */ /* * Mesa 3-D graphics library @@ -271,6 +271,7 @@ typedef struct vertex_buffer GLuint importable_data; + void *import_source; void (*import_data)( GLcontext *ctx, GLuint flags, GLuint vecflags ); /* Callback to the provider of the untransformed input for the * render stage (or other stages) to call if they need to write into @@ -370,7 +371,7 @@ typedef void (*quad_func)( GLcontext *ctx, GLuint v1, GLuint v2, typedef void (*render_func)( GLcontext *ctx, GLuint start, GLuint count, GLuint flags ); typedef void (*interp_func)( GLcontext *ctx, - GLfloat t, GLuint dst, GLuint in, GLuint out, + GLfloat t, GLuint dst, GLuint out, GLuint in, GLboolean force_boundary ); typedef void (*copy_pv_func)( GLcontext *ctx, GLuint dst, GLuint src ); @@ -404,13 +405,25 @@ struct tnl_device_driver { */ interp_func RenderInterp; + /* The interp function is called by the clipping routines when we need + * to generate an interpolated vertex. All pertinant vertex ancilliary + * data should be computed by interpolating between the 'in' and 'out' + * vertices. + */ + copy_pv_func RenderCopyPV; + /* The copy function is used to make a copy of a vertex. All pertinant + * vertex attributes should be copied. + */ + void (*RenderClippedPolygon)( GLcontext *ctx, const GLuint *elts, GLuint n ); - void (*RenderClippedLine)( GLcontext *ctx, GLuint v0, GLuint v1 ); - /* Functions to interpolate between prebuilt vertices, copy flat-shade - * provoking color, and to render clipped primitives. + /* Render a polygon with vertices whose indexes are in the + * array. */ + void (*RenderClippedLine)( GLcontext *ctx, GLuint v0, GLuint v1 ); + /* Render a line between the two vertices given by indexes v0 and v1. */ + points_func PointsFunc; /* must now respect vb->elts */ line_func LineFunc; triangle_func TriangleFunc; @@ -423,7 +436,9 @@ struct tnl_device_driver { render_func *RenderTabElts; /* Render whole unclipped primitives (points, lines, linestrips, * lineloops, etc). The tables are indexed by the GL enum of the - * primitive to be rendered. + * primitive to be rendered. RenderTabVerts is used for non-indexed + * arrays of vertices. RenderTabElts is used for indexed arrays of + * vertices. */ void (*ResetLineStipple)( GLcontext *ctx ); @@ -509,6 +524,7 @@ typedef struct { /* Probably need a better configuration mechanism: */ GLboolean NeedProjCoords; + GLboolean LoopbackDListCassettes; /* Derived state and storage for _tnl_eval_vb: */