diff options
| author | Brian Paul <brian.paul@tungstengraphics.com> | 2001-01-09 00:02:55 +0000 | 
|---|---|---|
| committer | Brian Paul <brian.paul@tungstengraphics.com> | 2001-01-09 00:02:55 +0000 | 
| commit | e448d6cf0c671822f0cb59395c88ff667f4da867 (patch) | |
| tree | f862cb3d2f088eda8d49d587b7af9b2333756bbb /src | |
| parent | ce656b6a0a103ae9cb41d509be353f0e661e3574 (diff) | |
Added PointSize and PointParametersfv to dd interface, for completeness.
Clean-up and updated comments in dd.h file.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/main/dd.h | 242 | ||||
| -rw-r--r-- | src/mesa/main/points.c | 14 | 
2 files changed, 146 insertions, 110 deletions
| diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index d3cd4f8a6e..86220bdf4a 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -1,4 +1,4 @@ -/* $Id: dd.h,v 1.46 2001/01/08 04:09:41 keithw Exp $ */ +/* $Id: dd.h,v 1.47 2001/01/09 00:02:55 brianp Exp $ */  /*   * Mesa 3-D graphics library @@ -406,6 +406,15 @@ struct dd_function_table {     /*** +    *** For hardware accumulation buffer: +    ***/ +   GLboolean (*Accum)( GLcontext *ctx, GLenum op, GLfloat value, +                       GLint xpos, GLint ypos, GLint width, GLint height ); +   /* Execute glAccum command within the given scissor region. +    */ + + +   /***      *** glDraw/Read/CopyPixels and glBitmap functions:      ***/ @@ -446,14 +455,9 @@ struct dd_function_table {     /* This is called by glBitmap.  Works the same as DrawPixels, above.      */ -   GLboolean (*Accum)( GLcontext *ctx, GLenum op,  -		       GLfloat value, GLint xpos, GLint ypos,  -		       GLint width, GLint height ); -   /* Hardware accum buffer. -    */     /*** -    *** Texture mapping functions: +    *** Texture image functions:      ***/     GLboolean (*TexImage1D)( GLcontext *ctx, GLenum target, GLint level, @@ -582,6 +586,10 @@ struct dd_function_table {      * if the test fails.      */ +   /*** +    *** Compressed texture functions: +    ***/ +     GLboolean (*CompressedTexImage1D)( GLcontext *ctx, GLenum target,                                        GLint level, GLsizei imageSize,                                        const GLvoid *data, @@ -697,21 +705,9 @@ struct dd_function_table {      * <texImage> is the source texture image.      */ -   void (*TexEnv)( GLcontext *ctx, GLenum target, GLenum pname, -                   const GLfloat *param ); -   /* Called by glTexEnv*(). -    */ - -   void (*TexParameter)( GLcontext *ctx, GLenum target, -                         struct gl_texture_object *texObj, -                         GLenum pname, const GLfloat *params ); -   /* Called by glTexParameter*(). -    *    <target> is user specified -    *    <texObj> the texture object to modify -    *    <pname> is one of GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MAG_FILTER, -    *       GL_TEXTURE_WRAP_[STR], or GL_TEXTURE_BORDER_COLOR. -    *    <params> is user specified. -    */ +   /*** +    *** Texture object functions: +    ***/     void (*BindTexture)( GLcontext *ctx, GLenum target,                          struct gl_texture_object *tObj ); @@ -745,13 +741,111 @@ struct dd_function_table {      */ -   void (*RenderStart)( GLcontext *ctx ); -   void (*RenderPrimitive)( GLcontext *ctx, GLenum mode ); -   void (*RenderFinish)( GLcontext *ctx ); -   /* Wrap around all rendering functions.  Suitable for -    * grabbing/releasing hardware locks. +   /*** +    *** State-changing functions (drawing functions are above) +    *** +    *** These functions are called by their corresponding OpenGL API functions. +    *** They're ALSO called by the gl_PopAttrib() function!!! +    *** May add more functions like these to the device driver in the future. +    ***/ +   void (*AlphaFunc)(GLcontext *ctx, GLenum func, GLclampf ref); +   void (*BlendEquation)(GLcontext *ctx, GLenum mode); +   void (*BlendFunc)(GLcontext *ctx, GLenum sfactor, GLenum dfactor); +   void (*BlendFuncSeparate)(GLcontext *ctx, +                             GLenum sfactorRGB, GLenum dfactorRGB, +                             GLenum sfactorA, GLenum dfactorA); +   void (*ClearDepth)(GLcontext *ctx, GLclampd d); +   void (*ClearStencil)(GLcontext *ctx, GLint s); +   void (*ColorMask)(GLcontext *ctx, GLboolean rmask, GLboolean gmask, +                     GLboolean bmask, GLboolean amask ); +   void (*CullFace)(GLcontext *ctx, GLenum mode); +   void (*ClipPlane)(GLcontext *ctx, GLenum plane, const GLfloat *equation ); +   void (*FrontFace)(GLcontext *ctx, GLenum mode); +   void (*DepthFunc)(GLcontext *ctx, GLenum func); +   void (*DepthMask)(GLcontext *ctx, GLboolean flag); +   void (*DepthRange)(GLcontext *ctx, GLclampd nearval, GLclampd farval); +   void (*Enable)(GLcontext* ctx, GLenum cap, GLboolean state); +   void (*Fogfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); +   void (*Hint)(GLcontext *ctx, GLenum target, GLenum mode); +   void (*IndexMask)(GLcontext *ctx, GLuint mask); +   void (*Lightfv)(GLcontext *ctx, GLenum light, +		   GLenum pname, const GLfloat *params ); +   void (*LightModelfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); +   void (*LineStipple)(GLcontext *ctx, GLint factor, GLushort pattern ); +   void (*LineWidth)(GLcontext *ctx, GLfloat width); +   void (*LogicOpcode)(GLcontext *ctx, GLenum opcode); +   void (*PointParameterfv)(GLcontext *ctx, GLenum pname, +                            const GLfloat *params); +   void (*PointSize)(GLcontext *ctx, GLfloat size); +   void (*PolygonMode)(GLcontext *ctx, GLenum face, GLenum mode); +   void (*PolygonStipple)(GLcontext *ctx, const GLubyte *mask ); +   void (*RenderMode)(GLcontext *ctx, GLenum mode ); +   void (*Scissor)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); +   void (*ShadeModel)(GLcontext *ctx, GLenum mode); +   void (*StencilFunc)(GLcontext *ctx, GLenum func, GLint ref, GLuint mask); +   void (*StencilMask)(GLcontext *ctx, GLuint mask); +   void (*StencilOp)(GLcontext *ctx, GLenum fail, GLenum zfail, GLenum zpass); +   void (*TexGen)(GLcontext *ctx, GLenum coord, GLenum pname,  +		  const GLfloat *params); +   void (*TexEnv)(GLcontext *ctx, GLenum target, GLenum pname, +                  const GLfloat *param); +   void (*TexParameter)(GLcontext *ctx, GLenum target, +                        struct gl_texture_object *texObj, +                        GLenum pname, const GLfloat *params); +   void (*TextureMatrix)(GLcontext *ctx, GLuint unit, const GLmatrix *mat); +   void (*Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); + + +   /*** State-query functions +    *** +    *** Return GL_TRUE if query was completed, GL_FALSE otherwise. +    ***/ +   GLboolean (*GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result); +   GLboolean (*GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result); +   GLboolean (*GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result); +   GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result); +   GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result); + + +   /*** +    *** Vertex array functions +    *** +    *** Called by the corresponding OpenGL functions. +    ***/ +   void (*VertexPointer)(GLcontext *ctx, GLint size, GLenum type,  +			 GLsizei stride, const GLvoid *ptr); +   void (*NormalPointer)(GLcontext *ctx, GLenum type,  +			 GLsizei stride, const GLvoid *ptr); +   void (*ColorPointer)(GLcontext *ctx, GLint size, GLenum type,  +			GLsizei stride, const GLvoid *ptr); +   void (*FogCoordPointer)(GLcontext *ctx, GLenum type,  +			   GLsizei stride, const GLvoid *ptr); +   void (*IndexPointer)(GLcontext *ctx, GLenum type,  +			GLsizei stride, const GLvoid *ptr); +   void (*SecondaryColorPointer)(GLcontext *ctx, GLint size, GLenum type,  +				 GLsizei stride, const GLvoid *ptr); +   void (*TexCoordPointer)(GLcontext *ctx, GLint size, GLenum type,  +			   GLsizei stride, const GLvoid *ptr); +   void (*EdgeFlagPointer)(GLcontext *ctx, GLsizei stride, const GLvoid *ptr); + + + +   /*** +    *** Rendering +    ***/ + +   void (*RenderStart)(GLcontext *ctx); +   void (*RenderFinish)(GLcontext *ctx); +   /* Called before and after all rendering operations, including DrawPixels, +    * ReadPixels, Bitmap, span functions, and CopyTexImage, etc commands. +    * These are a suitable place for grabbing/releasing hardware locks.      */ +   void (*RenderPrimitive)(GLcontext *ctx, GLenum mode); +   /* Called between RednerStart() and RenderFinish() to indicate the +    * type of primitive we're about to draw.  Mode will be one of the +    * modes accepted by glBegin(). +    */     /*** @@ -761,11 +855,18 @@ struct dd_function_table {     line_func             LineFunc;     triangle_func         TriangleFunc;     quad_func             QuadFunc; +   /* These functions are called in order to render points, lines, +    * triangles and quads.  These are only called via the T&L module. +    */     render_func          *RenderTabVerts;     render_func          *RenderTabElts; +   /* XXX Description??? +    */     void (*ResetLineStipple)( GLcontext *ctx ); +   /* Reset the hardware's line stipple counter. +    */     void (*BuildProjectedVertices)( GLcontext *ctx,   				   GLuint start, GLuint end, @@ -840,11 +941,13 @@ struct dd_function_table {     void (*EndList)( GLcontext *ctx );     /* Let the t&l component know what is going on with display lists      * in time to make changes to dispatch tables, etc. +    * Called by glNewList() and glEndList(), respectively.      */     void (*BeginCallList)( GLcontext *ctx, GLuint list );     void (*EndCallList)( GLcontext *ctx );     /* Notify the t&l component before and after calling a display list. +    * Called by glCallList(s), but not recursively.      */     void (*MakeCurrent)( GLcontext *ctx, GLframebuffer *drawBuffer,  @@ -855,94 +958,17 @@ struct dd_function_table {     void (*LockArraysEXT)( GLcontext *ctx, GLint first, GLsizei count );     void (*UnlockArraysEXT)( GLcontext *ctx ); -   /*  +   /* Called by glLockArraysEXT() and glUnlockArraysEXT(), respectively.      */ - -   /* -    * State-changing functions (drawing functions are above) -    * -    * These functions are called by their corresponding OpenGL API functions. -    * They're ALSO called by the gl_PopAttrib() function!!! -    * May add more functions like these to the device driver in the future. -    * This should reduce the amount of state checking that -    * the driver's UpdateState() function must do. -    */ -   void (*AlphaFunc)(GLcontext *ctx, GLenum func, GLclampf ref); -   void (*BlendEquation)(GLcontext *ctx, GLenum mode); -   void (*BlendFunc)(GLcontext *ctx, GLenum sfactor, GLenum dfactor); -   void (*BlendFuncSeparate)( GLcontext *ctx, GLenum sfactorRGB,  -			      GLenum dfactorRGB, GLenum sfactorA, -			      GLenum dfactorA ); -   void (*ClearDepth)(GLcontext *ctx, GLclampd d); -   void (*ClearStencil)(GLcontext *ctx, GLint s); -   void (*ColorMask)(GLcontext *ctx, GLboolean rmask, GLboolean gmask, -                     GLboolean bmask, GLboolean amask ); -   void (*CullFace)(GLcontext *ctx, GLenum mode); -   void (*ClipPlane)(GLcontext *ctx, GLenum plane, const GLfloat *equation ); -   void (*FrontFace)(GLcontext *ctx, GLenum mode); -   void (*DepthFunc)(GLcontext *ctx, GLenum func); -   void (*DepthMask)(GLcontext *ctx, GLboolean flag); -   void (*DepthRange)(GLcontext *ctx, GLclampd nearval, GLclampd farval); -   void (*Enable)(GLcontext* ctx, GLenum cap, GLboolean state); -   void (*Fogfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); -   void (*Hint)(GLcontext *ctx, GLenum target, GLenum mode); -   void (*IndexMask)(GLcontext *ctx, GLuint mask); -   void (*Lightfv)(GLcontext *ctx, GLenum light, -		   GLenum pname, const GLfloat *params ); -   void (*LightModelfv)(GLcontext *ctx, GLenum pname, const GLfloat *params); -   void (*LineStipple)(GLcontext *ctx, GLint factor, GLushort pattern ); -   void (*LineWidth)(GLcontext *ctx, GLfloat width); -   void (*LogicOpcode)(GLcontext *ctx, GLenum opcode); -   void (*PolygonMode)(GLcontext *ctx, GLenum face, GLenum mode); -   void (*PolygonStipple)(GLcontext *ctx, const GLubyte *mask ); -   void (*RenderMode)(GLcontext *ctx, GLenum mode ); -   void (*Scissor)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); -   void (*ShadeModel)(GLcontext *ctx, GLenum mode); -   void (*StencilFunc)(GLcontext *ctx, GLenum func, GLint ref, GLuint mask); -   void (*StencilMask)(GLcontext *ctx, GLuint mask); -   void (*StencilOp)(GLcontext *ctx, GLenum fail, GLenum zfail, GLenum zpass); -   void (*TexGen)(GLcontext *ctx, GLenum coord, GLenum pname,  -		  const GLfloat *params ); -   void (*TextureMatrix)(GLcontext *ctx, GLuint unit, const GLmatrix *mat); -   void (*Viewport)(GLcontext *ctx, GLint x, GLint y, GLsizei w, GLsizei h); - -   /* State-query functions -    * -    * Return GL_TRUE if query was completed, GL_FALSE otherwise. -    */ -   GLboolean (*GetBooleanv)(GLcontext *ctx, GLenum pname, GLboolean *result); -   GLboolean (*GetDoublev)(GLcontext *ctx, GLenum pname, GLdouble *result); -   GLboolean (*GetFloatv)(GLcontext *ctx, GLenum pname, GLfloat *result); -   GLboolean (*GetIntegerv)(GLcontext *ctx, GLenum pname, GLint *result); -   GLboolean (*GetPointerv)(GLcontext *ctx, GLenum pname, GLvoid **result); - - -   void (*VertexPointer)(GLcontext *ctx, GLint size, GLenum type,  -			 GLsizei stride, const GLvoid *ptr); -   void (*NormalPointer)(GLcontext *ctx, GLenum type,  -			 GLsizei stride, const GLvoid *ptr); -   void (*ColorPointer)(GLcontext *ctx, GLint size, GLenum type,  -			GLsizei stride, const GLvoid *ptr); -   void (*FogCoordPointer)(GLcontext *ctx, GLenum type,  -			   GLsizei stride, const GLvoid *ptr); -   void (*IndexPointer)(GLcontext *ctx, GLenum type,  -			GLsizei stride, const GLvoid *ptr); -   void (*SecondaryColorPointer)(GLcontext *ctx, GLint size, GLenum type,  -				 GLsizei stride, const GLvoid *ptr); -   void (*TexCoordPointer)(GLcontext *ctx, GLint size, GLenum type,  -			   GLsizei stride, const GLvoid *ptr); -   void (*EdgeFlagPointer)(GLcontext *ctx, GLsizei stride, const GLvoid *ptr);  }; - - - - +/* + * Transform/Clip/Lighting interface + */  typedef struct { -     void (*ArrayElement)( GLint ); /* NOTE */     void (*Color3f)( GLfloat, GLfloat, GLfloat );     void (*Color3fv)( const GLfloat * ); diff --git a/src/mesa/main/points.c b/src/mesa/main/points.c index 3becddb34c..c24b1b4eef 100644 --- a/src/mesa/main/points.c +++ b/src/mesa/main/points.c @@ -1,4 +1,4 @@ -/* $Id: points.c,v 1.26 2000/12/26 05:09:29 keithw Exp $ */ +/* $Id: points.c,v 1.27 2001/01/09 00:02:55 brianp Exp $ */  /*   * Mesa 3-D graphics library @@ -59,7 +59,14 @@ _mesa_PointSize( GLfloat size )     ctx->Point._Size = CLAMP(size,   			    ctx->Const.MinPointSize,  			    ctx->Const.MaxPointSize); -   ctx->_TriangleCaps ^= DD_POINT_SIZE; + +   if (ctx->Point._Size == 1.0F) +      ctx->_TriangleCaps &= ~DD_POINT_SIZE; +   else +      ctx->_TriangleCaps |= DD_POINT_SIZE; + +   if (ctx->Driver.PointSize) +      (*ctx->Driver.PointSize)(ctx, size);  } @@ -136,5 +143,8 @@ _mesa_PointParameterfvEXT( GLenum pname, const GLfloat *params)           gl_error( ctx, GL_INVALID_ENUM, "glPointParameterfvEXT" );           return;     } + +   if (ctx->Driver.PointParameterfv) +      (*ctx->Driver.PointParameterfv)(ctx, pname, params);  } | 
