GL_ARB_vertex_buffer_object working now, at least for non-indexed
[mesa.git] / src / mesa / drivers / x11 / xm_tri.c
index 602eba41e6467000b9815380c08a002e0877faf8..8e8b8fc93889a72d395a33b366dd85d455ca204f 100644 (file)
@@ -1,4 +1,3 @@
-/* $Id: xm_tri.c,v 1.32 2003/03/01 01:50:24 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -60,7 +59,7 @@
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 
 #define RENDER_SPAN( span )                                    \
@@ -97,7 +96,7 @@
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
 
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
 
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE bgr_t
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    for (i = 0; i < span.end; i++) {                            \
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    for (i = 0; i < span.end; i++) {                            \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    GLint x = span.x, y = FLIP(xmesa->xm_buffer, span.y);       \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    GLint x = span.x, y = FLIP(xmesa->xm_buffer, span.y);       \
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define INTERP_RGB 1
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    LOOKUP_SETUP;                                               \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    GLint x = span.x, y = FLIP(xmesa->xm_buffer, span.y);       \
 #define INTERP_Z 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;              \
    unsigned long pixel;                                                \
    PACK_TRUECOLOR(pixel, v2->color[0], v2->color[1], v2->color[2]);
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    unsigned long p = PACK_8B8G8R( v2->color[0],                \
                 v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                            \
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    unsigned long p = PACK_8R8G8B( v2->color[0],                \
                 v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                    \
 #define PIXEL_TYPE bgr_t
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    const GLubyte *color = v2->color;
 #define RENDER_SPAN( span )                            \
    GLuint i;                                           \
 #define INTERP_Z 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    unsigned long p = PACK_5R6G5B( v2->color[0],                \
             v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                            \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    const GLubyte *color = v2->color;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    FLAT_DITHER_SETUP( v2->color[0], v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define INTERP_Z 1
 #define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;              \
    FLAT_DITHER_SETUP( v2->color[0], v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                                    \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    GLubyte r = v2->color[0];                                   \
    GLubyte g = v2->color[1];                                   \
    GLubyte b = v2->color[2];
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    LOOKUP_SETUP;                                       \
    GLubyte r = v2->color[0];                           \
    GLubyte g = v2->color[1];                           \
 #define NAME smooth_TRUECOLOR_triangle
 #define INTERP_RGB 1
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    for (i = 0; i < span.end; i++) {                            \
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    for (i = 0; i < span.end; i++) {                            \
 #define PIXEL_TYPE bgr_t
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                            \
    GLuint i;                                           \
    PIXEL_TYPE *pixel = pRow;                           \
 #define NAME smooth_TRUEDITHER_triangle
 #define INTERP_RGB 1
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    for (i = 0; i < span.end; i++) {                            \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    GLint x = span.x, y = FLIP(xmesa->xm_buffer, span.y);       \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    GLint x = span.x, y = FLIP(xmesa->xm_buffer, span.y);       \
 #define NAME smooth_DITHER_triangle
 #define INTERP_RGB 1
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    LOOKUP_SETUP;                                               \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
    GLint x = span.x, y = FLIP(xmesa->xm_buffer, span.y);       \
  */
 #define NAME flat_TRUECOLOR_triangle
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;              \
    unsigned long pixel;                                                \
    PACK_TRUECOLOR(pixel, v2->color[0], v2->color[1], v2->color[2]);
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    unsigned long p = PACK_8B8G8R( v2->color[0],                \
                 v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                            \
 #define PIXEL_TYPE GLuint
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    unsigned long p = PACK_8R8G8B( v2->color[0],                \
                 v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                            \
 #define PIXEL_TYPE bgr_t
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    const GLubyte *color = v2->color;
 #define RENDER_SPAN( span )                            \
    GLuint i;                                           \
  */
 #define NAME flat_TRUEDITHER_triangle
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    unsigned long p = PACK_5R6G5B( v2->color[0],                \
                 v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                            \
 #define PIXEL_TYPE GLushort
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    const GLubyte *color = v2->color;
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    FLAT_DITHER_SETUP( v2->color[0], v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                                    \
    GLuint i;                                                   \
  */
 #define NAME flat_DITHER_triangle
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    XMesaImage *img = xmesa->xm_buffer->backimage;              \
    FLAT_DITHER_SETUP( v2->color[0], v2->color[1], v2->color[2] );
 #define RENDER_SPAN( span )                                    \
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                             \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;         \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);                    \
    GLubyte r = v2->color[0];                                   \
    GLubyte g = v2->color[1];                                   \
    GLubyte b = v2->color[2];
 #define PIXEL_TYPE GLubyte
 #define BYTES_PER_ROW (xmesa->xm_buffer->backimage->bytes_per_line)
 #define SETUP_CODE                                     \
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx; \
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);            \
    LOOKUP_SETUP;                                       \
    GLubyte r = v2->color[0];                           \
    GLubyte g = v2->color[1];                           \
@@ -1307,7 +1306,7 @@ do {                                   \
 static swrast_tri_func get_triangle_func( GLcontext *ctx )
 {
    SWcontext *swrast = SWRAST_CONTEXT(ctx);
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
    int depth = GET_VISUAL_DEPTH(xmesa->xm_visual);
 
    (void) kernel1;