implement Fake_glXCreateWindow() to fix bug #890894
[mesa.git] / src / mesa / drivers / x11 / xm_span.c
index c62b15835b0345dab7ec65a19c0bb035b48c839f..07fa5b6cec186303a876c23cf754d921fbacfb8d 100644 (file)
@@ -1,10 +1,8 @@
-/* $Id: xm_span.c,v 1.18 2002/11/13 16:48:47 brianp Exp $ */
-
 /*
  * Mesa 3-D graphics library
  * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -182,7 +180,7 @@ static unsigned long read_pixel( XMesaDisplay *dpy,
  */
 static void write_span_TRUECOLOR_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -219,7 +217,7 @@ static void write_span_TRUECOLOR_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_TRUECOLOR_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -253,7 +251,7 @@ static void write_span_rgb_TRUECOLOR_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_TRUEDITHER_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -286,7 +284,7 @@ static void write_span_TRUEDITHER_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_TRUEDITHER_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -320,7 +318,7 @@ static void write_span_rgb_TRUEDITHER_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_8A8B8G8R_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -352,7 +350,7 @@ static void write_span_8A8B8G8R_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_8A8B8G8R_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -384,7 +382,7 @@ static void write_span_rgb_8A8B8G8R_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_8R8G8B_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -415,7 +413,7 @@ static void write_span_8R8G8B_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_8R8G8B24_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -509,7 +507,7 @@ static void write_span_8R8G8B24_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_8R8G8B_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -540,7 +538,7 @@ static void write_span_rgb_8R8G8B_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_rgb_8R8G8B24_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -639,7 +637,7 @@ static void write_span_rgb_8R8G8B24_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_5R6G5B_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -670,7 +668,7 @@ static void write_span_5R6G5B_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_DITHER_5R6G5B_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -703,7 +701,7 @@ static void write_span_DITHER_5R6G5B_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_5R6G5B_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -734,7 +732,7 @@ static void write_span_rgb_5R6G5B_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_rgb_DITHER_5R6G5B_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -768,7 +766,7 @@ static void write_span_rgb_DITHER_5R6G5B_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_DITHER_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -799,7 +797,7 @@ static void write_span_DITHER_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_DITHER_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -830,7 +828,7 @@ static void write_span_rgb_DITHER_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_1BIT_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -863,7 +861,7 @@ static void write_span_1BIT_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_1BIT_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -896,7 +894,7 @@ static void write_span_rgb_1BIT_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_HPCR_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -927,7 +925,7 @@ static void write_span_HPCR_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_HPCR_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -958,7 +956,7 @@ static void write_span_rgb_HPCR_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_LOOKUP_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -988,7 +986,7 @@ static void write_span_LOOKUP_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_LOOKUP_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -1019,7 +1017,7 @@ static void write_span_rgb_LOOKUP_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_GRAYSCALE_pixmap( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -1048,7 +1046,7 @@ static void write_span_GRAYSCALE_pixmap( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_GRAYSCALE_pixmap( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -1077,7 +1075,7 @@ static void write_span_rgb_GRAYSCALE_pixmap( RGB_SPAN_ARGS )
  */
 static void write_span_TRUECOLOR_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -1106,7 +1104,7 @@ static void write_span_TRUECOLOR_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_TRUECOLOR_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -1135,7 +1133,7 @@ static void write_span_rgb_TRUECOLOR_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_TRUEDITHER_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -1164,7 +1162,7 @@ static void write_span_TRUEDITHER_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_TRUEDITHER_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -1193,7 +1191,7 @@ static void write_span_rgb_TRUEDITHER_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_8A8B8G8R_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLuint *ptr = PIXELADDR4( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1217,7 +1215,7 @@ static void write_span_8A8B8G8R_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_8A8B8G8R_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLuint *ptr = PIXELADDR4( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1241,7 +1239,7 @@ static void write_span_rgb_8A8B8G8R_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_8R8G8B_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLuint *ptr = PIXELADDR4( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1264,7 +1262,7 @@ static void write_span_8R8G8B_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_8R8G8B24_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = (GLubyte *) PIXELADDR3( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1414,7 +1412,7 @@ static void write_span_8R8G8B24_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_8R8G8B_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLuint *ptr = PIXELADDR4( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1438,7 +1436,7 @@ static void write_span_rgb_8R8G8B_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_rgb_8R8G8B24_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = (GLubyte *) PIXELADDR3( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1469,7 +1467,7 @@ static void write_span_rgb_8R8G8B24_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_5R6G5B_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLushort *ptr = PIXELADDR2( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1508,7 +1506,7 @@ static void write_span_5R6G5B_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_DITHER_5R6G5B_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLushort *ptr = PIXELADDR2( xmesa->xm_buffer, x, y );
    const GLint y2 = FLIP(xmesa->xm_buffer, y);
@@ -1548,7 +1546,7 @@ static void write_span_DITHER_5R6G5B_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_5R6G5B_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLushort *ptr = PIXELADDR2( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1587,7 +1585,7 @@ static void write_span_rgb_5R6G5B_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_rgb_DITHER_5R6G5B_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLushort *ptr = PIXELADDR2( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1626,7 +1624,7 @@ static void write_span_rgb_DITHER_5R6G5B_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_DITHER_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    int yy = FLIP(xmesa->xm_buffer, y);
@@ -1652,7 +1650,7 @@ static void write_span_DITHER_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_DITHER_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    int yy = FLIP(xmesa->xm_buffer, y);
@@ -1679,7 +1677,7 @@ static void write_span_rgb_DITHER_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_DITHER8_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    XDITHER_SETUP(y);
@@ -1700,7 +1698,7 @@ static void write_span_DITHER8_ximage( RGBA_SPAN_ARGS )
 
 static void write_span_rgb_DITHER8_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    XDITHER_SETUP(y);
@@ -1727,7 +1725,7 @@ static void write_span_rgb_DITHER8_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_1BIT_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    SETUP_1BIT;
@@ -1752,7 +1750,7 @@ static void write_span_1BIT_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_1BIT_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    SETUP_1BIT;
@@ -1777,7 +1775,7 @@ static void write_span_rgb_1BIT_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_HPCR_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1801,7 +1799,7 @@ static void write_span_HPCR_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_HPCR_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -1825,7 +1823,7 @@ static void write_span_rgb_HPCR_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_LOOKUP_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    LOOKUP_SETUP;
@@ -1851,7 +1849,7 @@ static void write_span_LOOKUP_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_LOOKUP_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    LOOKUP_SETUP;
@@ -1877,7 +1875,7 @@ static void write_span_rgb_LOOKUP_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_LOOKUP8_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    LOOKUP_SETUP;
@@ -1902,7 +1900,7 @@ static void write_rgb_LOOKUP8_ximage( const GLcontext *ctx,
                                       CONST GLubyte rgb[][3],
                                       const GLubyte mask[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    LOOKUP_SETUP;
@@ -1929,7 +1927,7 @@ static void write_rgb_LOOKUP8_ximage( const GLcontext *ctx,
  */
 static void write_span_GRAYSCALE_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -1954,7 +1952,7 @@ static void write_span_GRAYSCALE_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_GRAYSCALE_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -1979,7 +1977,7 @@ static void write_span_rgb_GRAYSCALE_ximage( RGB_SPAN_ARGS )
  */
 static void write_span_GRAYSCALE8_ximage( RGBA_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -2003,7 +2001,7 @@ static void write_span_GRAYSCALE8_ximage( RGBA_SPAN_ARGS )
  */
 static void write_span_rgb_GRAYSCALE8_ximage( RGB_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer, x, y );
    if (mask) {
@@ -2039,7 +2037,7 @@ static void write_span_rgb_GRAYSCALE8_ximage( RGB_SPAN_ARGS )
  */
 static void write_pixels_TRUECOLOR_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2060,7 +2058,7 @@ static void write_pixels_TRUECOLOR_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_TRUEDITHER_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2081,7 +2079,7 @@ static void write_pixels_TRUEDITHER_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_8A8B8G8R_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2101,7 +2099,7 @@ static void write_pixels_8A8B8G8R_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_8R8G8B_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2120,7 +2118,7 @@ static void write_pixels_8R8G8B_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_8R8G8B24_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2139,7 +2137,7 @@ static void write_pixels_8R8G8B24_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_5R6G5B_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2158,7 +2156,7 @@ static void write_pixels_5R6G5B_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_DITHER_5R6G5B_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2179,7 +2177,7 @@ static void write_pixels_DITHER_5R6G5B_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_DITHER_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2200,7 +2198,7 @@ static void write_pixels_DITHER_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_1BIT_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2221,7 +2219,7 @@ static void write_pixels_1BIT_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_HPCR_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2241,7 +2239,7 @@ static void write_pixels_HPCR_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_LOOKUP_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2261,7 +2259,7 @@ static void write_pixels_LOOKUP_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_GRAYSCALE_pixmap( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2280,7 +2278,7 @@ static void write_pixels_GRAYSCALE_pixmap( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_TRUECOLOR_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -2298,7 +2296,7 @@ static void write_pixels_TRUECOLOR_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_TRUEDITHER_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -2316,7 +2314,7 @@ static void write_pixels_TRUEDITHER_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_8A8B8G8R_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    for (i=0;i<n;i++) {
       if (mask[i]) {
@@ -2332,7 +2330,7 @@ static void write_pixels_8A8B8G8R_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_8R8G8B_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    for (i=0;i<n;i++) {
       if (mask[i]) {
@@ -2348,7 +2346,7 @@ static void write_pixels_8R8G8B_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_8R8G8B24_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    for (i=0;i<n;i++) {
       if (mask[i]) {
@@ -2366,7 +2364,7 @@ static void write_pixels_8R8G8B24_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_5R6G5B_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    for (i=0;i<n;i++) {
       if (mask[i]) {
@@ -2382,7 +2380,7 @@ static void write_pixels_5R6G5B_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_DITHER_5R6G5B_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    for (i=0;i<n;i++) {
       if (mask[i]) {
@@ -2398,7 +2396,7 @@ static void write_pixels_DITHER_5R6G5B_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_DITHER_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    DITHER_SETUP;
@@ -2416,7 +2414,7 @@ static void write_pixels_DITHER_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_DITHER8_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    DITHER_SETUP;
    for (i=0;i<n;i++) {
@@ -2433,7 +2431,7 @@ static void write_pixels_DITHER8_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_1BIT_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    SETUP_1BIT;
@@ -2451,7 +2449,7 @@ static void write_pixels_1BIT_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_HPCR_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    for (i=0;i<n;i++) {
       if (mask[i]) {
@@ -2467,7 +2465,7 @@ static void write_pixels_HPCR_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_LOOKUP_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    LOOKUP_SETUP;
@@ -2484,7 +2482,7 @@ static void write_pixels_LOOKUP_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_LOOKUP8_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    LOOKUP_SETUP;
    for (i=0;i<n;i++) {
@@ -2501,7 +2499,7 @@ static void write_pixels_LOOKUP8_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_GRAYSCALE_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -2518,7 +2516,7 @@ static void write_pixels_GRAYSCALE_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_pixels_GRAYSCALE8_ximage( RGBA_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    for (i=0;i<n;i++) {
       if (mask[i]) {
@@ -2545,7 +2543,7 @@ static void write_pixels_GRAYSCALE8_ximage( RGBA_PIXEL_ARGS )
  */
 static void write_span_mono_pixmap( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2584,7 +2582,7 @@ static void write_span_mono_index_pixmap( const GLcontext *ctx, GLuint n,
                                           GLint x, GLint y, GLuint colorIndex,
                                           const GLubyte mask[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2619,7 +2617,7 @@ static void write_span_mono_index_pixmap( const GLcontext *ctx, GLuint n,
  */
 static void write_span_mono_TRUEDITHER_pixmap( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2642,7 +2640,7 @@ static void write_span_mono_TRUEDITHER_pixmap( MONO_SPAN_ARGS )
  */
 static void write_span_mono_DITHER_pixmap( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2664,7 +2662,7 @@ static void write_span_mono_DITHER_pixmap( MONO_SPAN_ARGS )
  */
 static void write_span_mono_1BIT_pixmap( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2686,7 +2684,7 @@ static void write_span_mono_1BIT_pixmap( MONO_SPAN_ARGS )
  */
 static void write_span_mono_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    const unsigned long pixel = xmesa_color_to_pixel(xmesa, color[RCOMP],
@@ -2705,7 +2703,7 @@ static void write_span_mono_index_ximage( const GLcontext *ctx, GLuint n,
                                           GLuint colorIndex,
                                           const GLubyte mask[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -2722,7 +2720,7 @@ static void write_span_mono_index_ximage( const GLcontext *ctx, GLuint n,
  */
 static void write_span_mono_TRUEDITHER_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    const GLint r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    GLuint i;
@@ -2742,7 +2740,7 @@ static void write_span_mono_TRUEDITHER_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_8A8B8G8R_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    GLuint i, *ptr;
    const unsigned long pixel = xmesa_color_to_pixel(xmesa, color[RCOMP],
                color[GCOMP], color[BCOMP], color[ACOMP], xmesa->pixelformat);
@@ -2760,7 +2758,7 @@ static void write_span_mono_8A8B8G8R_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_8R8G8B_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLuint pixel = PACK_8R8G8B(color[RCOMP], color[GCOMP], color[BCOMP]);
    GLuint *ptr = PIXELADDR4( xmesa->xm_buffer, x, y );
    GLuint i;
@@ -2777,7 +2775,7 @@ static void write_span_mono_8R8G8B_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_8R8G8B24_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP];
    const GLubyte g = color[GCOMP];
    const GLubyte b = color[BCOMP];
@@ -2798,7 +2796,7 @@ static void write_span_mono_8R8G8B24_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_DITHER_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    XMesaImage *img = xmesa->xm_buffer->backimage;
    int yy = FLIP(xmesa->xm_buffer, y);
@@ -2817,7 +2815,7 @@ static void write_span_mono_DITHER_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_DITHER8_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer,x,y);
    register GLuint i;
@@ -2835,7 +2833,7 @@ static void write_span_mono_DITHER8_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_LOOKUP8_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer,x,y);
    GLubyte pixel;
@@ -2854,7 +2852,7 @@ static void write_span_mono_LOOKUP8_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_1BIT_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
@@ -2873,7 +2871,7 @@ static void write_span_mono_1BIT_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_HPCR_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    register GLubyte *ptr = PIXELADDR1( xmesa->xm_buffer,x,y);
    register GLuint i;
@@ -2890,7 +2888,7 @@ static void write_span_mono_HPCR_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_GRAYSCALE8_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte p = GRAY_RGB(color[RCOMP], color[GCOMP], color[BCOMP]);
    GLubyte *ptr = (GLubyte *) PIXELADDR1( xmesa->xm_buffer,x,y);
    GLuint i;
@@ -2908,7 +2906,7 @@ static void write_span_mono_GRAYSCALE8_ximage( MONO_SPAN_ARGS )
  */
 static void write_span_mono_DITHER_5R6G5B_ximage( MONO_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLushort *ptr = PIXELADDR2( xmesa->xm_buffer, x, y );
    const GLint r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    GLuint i;
@@ -2935,7 +2933,7 @@ static void write_span_mono_DITHER_5R6G5B_ximage( MONO_SPAN_ARGS )
  */
 static void write_pixels_mono_pixmap( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2958,7 +2956,7 @@ static void write_pixels_mono_index_pixmap(const GLcontext *ctx,
                                            GLuint colorIndex,
                                            const GLubyte mask[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -2978,7 +2976,7 @@ static void write_pixels_mono_index_pixmap(const GLcontext *ctx,
  */
 static void write_pixels_mono_TRUEDITHER_pixmap( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -3001,7 +2999,7 @@ static void write_pixels_mono_TRUEDITHER_pixmap( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_DITHER_pixmap( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -3022,7 +3020,7 @@ static void write_pixels_mono_DITHER_pixmap( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_1BIT_pixmap( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -3043,7 +3041,7 @@ static void write_pixels_mono_1BIT_pixmap( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    const unsigned long pixel = xmesa_color_to_pixel(xmesa, color[RCOMP],
@@ -3061,7 +3059,7 @@ static void write_pixels_mono_index_ximage( const GLcontext *ctx, GLuint n,
                                             GLuint colorIndex,
                                             const GLubyte mask[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -3077,7 +3075,7 @@ static void write_pixels_mono_index_ximage( const GLcontext *ctx, GLuint n,
  */
 static void write_pixels_mono_TRUEDITHER_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    const int r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
@@ -3097,7 +3095,7 @@ static void write_pixels_mono_TRUEDITHER_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_8A8B8G8R_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLuint p = PACK_8A8B8G8R(color[RCOMP], color[GCOMP],
                                   color[BCOMP], color[ACOMP]);
    register GLuint i;
@@ -3115,7 +3113,7 @@ static void write_pixels_mono_8A8B8G8R_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_8R8G8B_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    const GLuint p = PACK_8R8G8B(color[RCOMP], color[GCOMP], color[BCOMP]);
    for (i=0;i<n;i++) {
@@ -3132,7 +3130,7 @@ static void write_pixels_mono_8R8G8B_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_8R8G8B24_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -3151,7 +3149,7 @@ static void write_pixels_mono_8R8G8B24_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_DITHER_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
@@ -3169,7 +3167,7 @@ static void write_pixels_mono_DITHER_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_DITHER8_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    register GLuint i;
    DITHER_SETUP;
@@ -3187,7 +3185,7 @@ static void write_pixels_mono_DITHER8_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_LOOKUP8_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    GLubyte pixel;
    LOOKUP_SETUP;
@@ -3207,7 +3205,7 @@ static void write_pixels_mono_LOOKUP8_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_1BIT_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
@@ -3226,7 +3224,7 @@ static void write_pixels_mono_1BIT_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_HPCR_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -3243,7 +3241,7 @@ static void write_pixels_mono_HPCR_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_GRAYSCALE8_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    register GLubyte p = GRAY_RGB(color[RCOMP], color[GCOMP], color[BCOMP]);
    for (i=0;i<n;i++) {
@@ -3260,7 +3258,7 @@ static void write_pixels_mono_GRAYSCALE8_ximage( MONO_PIXEL_ARGS )
  */
 static void write_pixels_mono_DITHER_5R6G5B_ximage( MONO_PIXEL_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    const int r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -3291,7 +3289,7 @@ static void write_pixels_mono_DITHER_5R6G5B_ximage( MONO_PIXEL_ARGS )
  */
 static void write_span_index_pixmap( INDEX_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -3319,7 +3317,7 @@ static void write_span_index_pixmap( INDEX_SPAN_ARGS )
  */
 static void write_span_index8_pixmap( INDEX8_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -3347,7 +3345,7 @@ static void write_span_index8_pixmap( INDEX8_SPAN_ARGS )
  */
 static void write_span_index_ximage( INDEX_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    y = FLIP(xmesa->xm_buffer, y);
@@ -3369,11 +3367,9 @@ static void write_span_index_ximage( INDEX_SPAN_ARGS )
 /*
  * Write a span of 8-bit CI pixels to a non 8-bit XImage.
  */
-static void write_span_index8_ximage( const GLcontext *ctx, GLuint n,
-                                      GLint x, GLint y, const GLubyte index[],
-                                      const GLubyte mask[] )
+static void write_span_index8_ximage( INDEX8_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    if (mask) {
       GLuint i;
       for (i=0;i<n;i++) {
@@ -3393,11 +3389,9 @@ static void write_span_index8_ximage( const GLcontext *ctx, GLuint n,
 /*
  * Write a span of 8-bit CI pixels to an 8-bit XImage.
  */
-static void write_span_index8_ximage8( const GLcontext *ctx, GLuint n,
-                                      GLint x, GLint y, const GLubyte index[],
-                                      const GLubyte mask[] )
+static void write_span_index8_ximage8( INDEX8_SPAN_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    GLubyte *dst = PIXELADDR1( xmesa->xm_buffer,x,y);
    if (mask) {
       GLuint i;
@@ -3428,7 +3422,7 @@ static void write_span_index8_ximage8( const GLcontext *ctx, GLuint n,
  */
 static void write_pixels_index_pixmap( INDEX_PIXELS_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    XMesaDrawable buffer = xmesa->xm_buffer->buffer;
    XMesaGC gc = xmesa->xm_buffer->gc;
@@ -3447,7 +3441,7 @@ static void write_pixels_index_pixmap( INDEX_PIXELS_ARGS )
  */
 static void write_pixels_index_ximage( INDEX_PIXELS_ARGS )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaImage *img = xmesa->xm_buffer->backimage;
    register GLuint i;
    for (i=0;i<n;i++) {
@@ -3472,7 +3466,7 @@ static void write_pixels_index_ximage( INDEX_PIXELS_ARGS )
 static void read_index_span( const GLcontext *ctx,
                             GLuint n, GLint x, GLint y, GLuint index[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaBuffer source = xmesa->xm_buffer;
    GLuint i;
 
@@ -3523,7 +3517,7 @@ static void read_color_span( const GLcontext *ctx,
                             GLuint n, GLint x, GLint y,
                              GLubyte rgba[][4] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaBuffer source = xmesa->xm_buffer;
 
    if (source->buffer) {
@@ -3545,8 +3539,8 @@ static void read_color_span( const GLcontext *ctx,
 #endif
       if (span && !error) {
         switch (xmesa->pixelformat) {
-           case PF_TRUECOLOR:
-           case PF_TRUEDITHER:
+           case PF_Truecolor:
+           case PF_Dither_True:
                {
                   const GLubyte *pixelToR = xmesa->xm_visual->PixelToR;
                   const GLubyte *pixelToG = xmesa->xm_visual->PixelToG;
@@ -3569,7 +3563,7 @@ static void read_color_span( const GLcontext *ctx,
                }
               break;
             case PF_5R6G5B:
-            case PF_DITHER_5R6G5B:
+            case PF_Dither_5R6G5B:
                {
                   const GLubyte *pixelToR = xmesa->xm_visual->PixelToR;
                   const GLubyte *pixelToG = xmesa->xm_visual->PixelToG;
@@ -3640,9 +3634,9 @@ static void read_color_span( const GLcontext *ctx,
                   }
                }
                break;
-           case PF_DITHER:
-           case PF_LOOKUP:
-           case PF_GRAYSCALE:
+           case PF_Dither:
+           case PF_Lookup:
+           case PF_Grayscale:
                {
                   GLubyte *rTable = source->pixel_to_r;
                   GLubyte *gTable = source->pixel_to_g;
@@ -3670,7 +3664,7 @@ static void read_color_span( const GLcontext *ctx,
                   }
                }
               break;
-           case PF_1BIT:
+           case PF_1Bit:
                {
                   int bitFlip = xmesa->xm_visual->bitFlip;
                   GLuint i;
@@ -3703,8 +3697,8 @@ static void read_color_span( const GLcontext *ctx,
    else if (source->backimage) {
       /* Read from XImage back buffer */
       switch (xmesa->pixelformat) {
-         case PF_TRUECOLOR:
-         case PF_TRUEDITHER:
+         case PF_Truecolor:
+         case PF_Dither_True:
             {
                const GLubyte *pixelToR = xmesa->xm_visual->PixelToR;
                const GLubyte *pixelToG = xmesa->xm_visual->PixelToG;
@@ -3729,7 +3723,7 @@ static void read_color_span( const GLcontext *ctx,
             }
             break;
          case PF_5R6G5B:
-         case PF_DITHER_5R6G5B:
+         case PF_Dither_5R6G5B:
             {
                const GLubyte *pixelToR = xmesa->xm_visual->PixelToR;
                const GLubyte *pixelToG = xmesa->xm_visual->PixelToG;
@@ -3827,9 +3821,9 @@ static void read_color_span( const GLcontext *ctx,
                }
             }
             break;
-        case PF_DITHER:
-        case PF_LOOKUP:
-        case PF_GRAYSCALE:
+        case PF_Dither:
+        case PF_Lookup:
+        case PF_Grayscale:
             {
                const GLubyte *rTable = source->pixel_to_r;
                const GLubyte *gTable = source->pixel_to_g;
@@ -3859,7 +3853,7 @@ static void read_color_span( const GLcontext *ctx,
                }
             }
            break;
-        case PF_1BIT:
+        case PF_1Bit:
             {
                XMesaImage *img = source->backimage;
                int bitFlip = xmesa->xm_visual->bitFlip;
@@ -3891,7 +3885,7 @@ static void read_index_pixels( const GLcontext *ctx,
                               GLuint n, const GLint x[], const GLint y[],
                                GLuint indx[], const GLubyte mask[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    register GLuint i;
    XMesaBuffer source = xmesa->xm_buffer;
 
@@ -3920,7 +3914,7 @@ static void read_color_pixels( const GLcontext *ctx,
                               GLuint n, const GLint x[], const GLint y[],
                                GLubyte rgba[][4], const GLubyte mask[] )
 {
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
    XMesaDisplay *dpy = xmesa->xm_visual->display;
    register GLuint i;
    XMesaBuffer source = xmesa->xm_buffer;
@@ -3928,10 +3922,10 @@ static void read_color_pixels( const GLcontext *ctx,
 
    if (source->buffer) {
       switch (xmesa->pixelformat) {
-        case PF_TRUECOLOR:
-         case PF_TRUEDITHER:
+        case PF_Truecolor:
+         case PF_Dither_True:
          case PF_5R6G5B:
-         case PF_DITHER_5R6G5B:
+         case PF_Dither_5R6G5B:
             {
                unsigned long rMask = GET_REDMASK(xmesa->xm_visual);
                unsigned long gMask = GET_GREENMASK(xmesa->xm_visual);
@@ -4004,9 +3998,9 @@ static void read_color_pixels( const GLcontext *ctx,
                }
             }
             break;
-        case PF_DITHER:
-        case PF_LOOKUP:
-        case PF_GRAYSCALE:
+        case PF_Dither:
+        case PF_Lookup:
+        case PF_Grayscale:
             {
                GLubyte *rTable = source->pixel_to_r;
                GLubyte *gTable = source->pixel_to_g;
@@ -4023,7 +4017,7 @@ static void read_color_pixels( const GLcontext *ctx,
                }
            }
            break;
-        case PF_1BIT:
+        case PF_1Bit:
             {
                int bitFlip = xmesa->xm_visual->bitFlip;
                for (i=0;i<n;i++) {
@@ -4045,10 +4039,10 @@ static void read_color_pixels( const GLcontext *ctx,
    }
    else if (source->backimage) {
       switch (xmesa->pixelformat) {
-        case PF_TRUECOLOR:
-         case PF_TRUEDITHER:
+        case PF_Truecolor:
+         case PF_Dither_True:
          case PF_5R6G5B:
-         case PF_DITHER_5R6G5B:
+         case PF_Dither_5R6G5B:
             {
                unsigned long rMask = GET_REDMASK(xmesa->xm_visual);
                unsigned long gMask = GET_GREENMASK(xmesa->xm_visual);
@@ -4119,9 +4113,9 @@ static void read_color_pixels( const GLcontext *ctx,
                }
             }
             break;
-        case PF_DITHER:
-        case PF_LOOKUP:
-        case PF_GRAYSCALE:
+        case PF_Dither:
+        case PF_Lookup:
+        case PF_Grayscale:
             {
                GLubyte *rTable = source->pixel_to_r;
                GLubyte *gTable = source->pixel_to_g;
@@ -4139,7 +4133,7 @@ static void read_color_pixels( const GLcontext *ctx,
                }
            }
            break;
-        case PF_1BIT:
+        case PF_1Bit:
             {
                XMesaImage *img = source->backimage;
                int bitFlip = xmesa->xm_visual->bitFlip;
@@ -4167,7 +4161,7 @@ static void
 clear_color_HPCR_ximage( GLcontext *ctx, const GLfloat color[4] )
 {
    int i;
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
 
    CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[0], color[0]);
    CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[1], color[1]);
@@ -4201,7 +4195,7 @@ static void
 clear_color_HPCR_pixmap( GLcontext *ctx, const GLfloat color[4] )
 {
    int i;
-   const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   const XMesaContext xmesa = XMESA_CONTEXT(ctx);
 
    CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[0], color[0]);
    CLAMPED_FLOAT_TO_UBYTE(xmesa->clearcolor[1], color[1]);
@@ -4240,7 +4234,7 @@ clear_color_HPCR_pixmap( GLcontext *ctx, const GLfloat color[4] )
 
 void xmesa_update_span_funcs( GLcontext *ctx )
 {
-   XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+   XMesaContext xmesa = XMESA_CONTEXT(ctx);
    int depth=GET_VISUAL_DEPTH(xmesa->xm_visual);
    struct swrast_device_driver *dd = _swrast_GetDeviceDriverReference( ctx );
 
@@ -4250,21 +4244,21 @@ void xmesa_update_span_funcs( GLcontext *ctx )
    if (xmesa->xm_buffer->buffer!=XIMAGE) {
       /* Writing to window or back pixmap */
       switch (xmesa->pixelformat) {
-        case PF_INDEX:
+        case PF_Index:
            dd->WriteCI32Span     = write_span_index_pixmap;
            dd->WriteCI8Span      = write_span_index8_pixmap;
            dd->WriteMonoCISpan   = write_span_mono_index_pixmap;
            dd->WriteCI32Pixels   = write_pixels_index_pixmap;
            dd->WriteMonoCIPixels = write_pixels_mono_index_pixmap;
            break;
-        case PF_TRUECOLOR:
+        case PF_Truecolor:
            dd->WriteRGBASpan       = write_span_TRUECOLOR_pixmap;
            dd->WriteRGBSpan        = write_span_rgb_TRUECOLOR_pixmap;
            dd->WriteMonoRGBASpan   = write_span_mono_pixmap;
            dd->WriteRGBAPixels     = write_pixels_TRUECOLOR_pixmap;
            dd->WriteMonoRGBAPixels = write_pixels_mono_pixmap;
            break;
-        case PF_TRUEDITHER:
+        case PF_Dither_True:
            dd->WriteRGBASpan       = write_span_TRUEDITHER_pixmap;
            dd->WriteRGBSpan        = write_span_rgb_TRUEDITHER_pixmap;
            dd->WriteMonoRGBASpan   = write_span_mono_TRUEDITHER_pixmap;
@@ -4299,21 +4293,21 @@ void xmesa_update_span_funcs( GLcontext *ctx )
            dd->WriteRGBAPixels     = write_pixels_5R6G5B_pixmap;
            dd->WriteMonoRGBAPixels = write_pixels_mono_pixmap;
            break;
-        case PF_DITHER_5R6G5B:
+        case PF_Dither_5R6G5B:
            dd->WriteRGBASpan       = write_span_DITHER_5R6G5B_pixmap;
            dd->WriteRGBSpan        = write_span_rgb_DITHER_5R6G5B_pixmap;
            dd->WriteMonoRGBASpan   = write_span_mono_TRUEDITHER_pixmap;
            dd->WriteRGBAPixels     = write_pixels_DITHER_5R6G5B_pixmap;
            dd->WriteMonoRGBAPixels = write_pixels_mono_TRUEDITHER_pixmap;
            break;
-        case PF_DITHER:
+        case PF_Dither:
            dd->WriteRGBASpan       = write_span_DITHER_pixmap;
            dd->WriteRGBSpan        = write_span_rgb_DITHER_pixmap;
            dd->WriteMonoRGBASpan   = write_span_mono_DITHER_pixmap;
            dd->WriteRGBAPixels     = write_pixels_DITHER_pixmap;
            dd->WriteMonoRGBAPixels = write_pixels_mono_DITHER_pixmap;
            break;
-        case PF_1BIT:
+        case PF_1Bit:
            dd->WriteRGBASpan       = write_span_1BIT_pixmap;
            dd->WriteRGBSpan        = write_span_rgb_1BIT_pixmap;
            dd->WriteMonoRGBASpan   = write_span_mono_1BIT_pixmap;
@@ -4330,14 +4324,14 @@ void xmesa_update_span_funcs( GLcontext *ctx )
               ctx->Driver.ClearColor = clear_color_HPCR_pixmap;
            }
             break;
-         case PF_LOOKUP:
+         case PF_Lookup:
             dd->WriteRGBASpan       = write_span_LOOKUP_pixmap;
             dd->WriteRGBSpan        = write_span_rgb_LOOKUP_pixmap;
             dd->WriteMonoRGBASpan   = write_span_mono_pixmap;
             dd->WriteRGBAPixels     = write_pixels_LOOKUP_pixmap;
             dd->WriteMonoRGBAPixels = write_pixels_mono_pixmap;
             break;
-         case PF_GRAYSCALE:
+         case PF_Grayscale:
             dd->WriteRGBASpan       = write_span_GRAYSCALE_pixmap;
             dd->WriteRGBSpan        = write_span_rgb_GRAYSCALE_pixmap;
             dd->WriteMonoRGBASpan   = write_span_mono_pixmap;
@@ -4352,7 +4346,7 @@ void xmesa_update_span_funcs( GLcontext *ctx )
    else if (xmesa->xm_buffer->buffer==XIMAGE) {
       /* Writing to back XImage */
       switch (xmesa->pixelformat) {
-        case PF_INDEX:
+        case PF_Index:
            dd->WriteCI32Span     = write_span_index_ximage;
            if (depth==8)
                dd->WriteCI8Span   = write_span_index8_ximage8;
@@ -4362,7 +4356,7 @@ void xmesa_update_span_funcs( GLcontext *ctx )
            dd->WriteCI32Pixels   = write_pixels_index_ximage;
            dd->WriteMonoCIPixels = write_pixels_mono_index_ximage;
            break;
-        case PF_TRUECOLOR:
+        case PF_Truecolor:
            /* Generic RGB */
            dd->WriteRGBASpan       = write_span_TRUECOLOR_ximage;
            dd->WriteRGBSpan        = write_span_rgb_TRUECOLOR_ximage;
@@ -4370,7 +4364,7 @@ void xmesa_update_span_funcs( GLcontext *ctx )
            dd->WriteRGBAPixels     = write_pixels_TRUECOLOR_ximage;
            dd->WriteMonoRGBAPixels = write_pixels_mono_ximage;
            break;
-        case PF_TRUEDITHER:
+        case PF_Dither_True:
            dd->WriteRGBASpan       = write_span_TRUEDITHER_ximage;
            dd->WriteRGBSpan        = write_span_rgb_TRUEDITHER_ximage;
            dd->WriteMonoRGBASpan   = write_span_mono_TRUEDITHER_ximage;
@@ -4405,14 +4399,14 @@ void xmesa_update_span_funcs( GLcontext *ctx )
            dd->WriteRGBAPixels     = write_pixels_5R6G5B_ximage;
            dd->WriteMonoRGBAPixels = write_pixels_mono_ximage;
            break;
-        case PF_DITHER_5R6G5B:
+        case PF_Dither_5R6G5B:
            dd->WriteRGBASpan       = write_span_DITHER_5R6G5B_ximage;
            dd->WriteRGBSpan        = write_span_rgb_DITHER_5R6G5B_ximage;
            dd->WriteMonoRGBASpan   = write_span_mono_DITHER_5R6G5B_ximage;
            dd->WriteRGBAPixels     = write_pixels_DITHER_5R6G5B_ximage;
            dd->WriteMonoRGBAPixels = write_pixels_mono_DITHER_5R6G5B_ximage;
            break;
-        case PF_DITHER:
+        case PF_Dither:
            if (depth==8) {
               dd->WriteRGBASpan      = write_span_DITHER8_ximage;
               dd->WriteRGBSpan       = write_span_rgb_DITHER8_ximage;
@@ -4428,7 +4422,7 @@ void xmesa_update_span_funcs( GLcontext *ctx )
               dd->WriteMonoRGBAPixels = write_pixels_mono_DITHER_ximage;
            }
            break;
-        case PF_1BIT:
+        case PF_1Bit:
            dd->WriteRGBASpan       = write_span_1BIT_ximage;
            dd->WriteRGBSpan        = write_span_rgb_1BIT_ximage;
            dd->WriteMonoRGBASpan   = write_span_mono_1BIT_ximage;
@@ -4445,7 +4439,7 @@ void xmesa_update_span_funcs( GLcontext *ctx )
                ctx->Driver.ClearColor = clear_color_HPCR_ximage;
            }
             break;
-         case PF_LOOKUP:
+         case PF_Lookup:
            if (depth==8) {
                dd->WriteRGBASpan       = write_span_LOOKUP8_ximage;
                dd->WriteRGBSpan        = write_rgb_LOOKUP8_ximage;
@@ -4461,7 +4455,7 @@ void xmesa_update_span_funcs( GLcontext *ctx )
                dd->WriteMonoRGBAPixels = write_pixels_mono_ximage;
             }
             break;
-         case PF_GRAYSCALE:
+         case PF_Grayscale:
            if (depth==8) {
               dd->WriteRGBASpan       = write_span_GRAYSCALE8_ximage;
               dd->WriteRGBSpan        = write_span_rgb_GRAYSCALE8_ximage;