-/* $Id: xm_span.c,v 1.16 2002/10/04 19:10:12 brianp Exp $ */
-
/*
* Mesa 3-D graphics library
- * Version: 3.5
+ * 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"),
#include "drawpix.h"
#include "extensions.h"
#include "macros.h"
-#include "mem.h"
+#include "imports.h"
#include "mtypes.h"
#include "state.h"
#include "xmesaP.h"
*/
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;
register GLuint i;
- (void)DitherValues; /* Muffle compiler */
-
y = FLIP(xmesa->xm_buffer, y);
if (mask) {
for (i=0;i<n;i++,x++) {
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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);
*/
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);
*/
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);
*/
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);
*/
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) {
*/
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) {
*/
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) {
*/
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) {
*/
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) {
*/
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) {
*/
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) {
*/
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);
*/
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) {
*/
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) {
*/
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);
*/
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);
*/
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);
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);
*/
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;
*/
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;
*/
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) {
*/
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) {
*/
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;
*/
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;
*/
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;
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;
*/
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);
*/
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);
*/
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) {
*/
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) {
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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++) {
*/
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++) {
*/
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]) {
*/
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]) {
*/
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]) {
*/
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]) {
*/
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]) {
*/
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;
*/
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++) {
*/
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;
*/
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]) {
*/
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;
*/
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++) {
*/
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++) {
*/
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]) {
*/
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;
/* Identify and emit contiguous rendered pixels
*/
- while (i < n && mask[i])
+ while (i < n && (!mask || mask[i]))
i++;
if (start < i)
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;
*/
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;
*/
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;
*/
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;
*/
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],
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);
*/
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;
*/
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);
*/
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;
for (i=0;i<n;i++) {
- if (mask[i]) {
+ if (!mask || mask[i]) {
ptr[i] = pixel;
}
}
*/
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];
*/
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);
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
*/
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;
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;
*/
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;
*/
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;
*/
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;
*/
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],
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++) {
*/
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];
*/
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;
*/
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++) {
*/
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++) {
*/
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;
*/
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;
*/
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;
*/
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;
*/
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++) {
*/
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++) {
*/
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++) {
*/
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;
*/
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;
*/
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);
/*
* 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++) {
/*
* 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;
*/
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;
*/
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++) {
/***** Pixel reading *****/
/**********************************************************************/
+#ifndef XFree86Server
+/**
+ * Do clip testing prior to calling XGetImage. If any of the region lies
+ * outside the screen's bounds, XGetImage will return NULL.
+ * We use XTranslateCoordinates() to check if that's the case and
+ * adjust the x, y and length parameters accordingly.
+ * \return -1 if span is totally clipped away,
+ * else return number of pixels to skip in the destination array.
+ */
+static int
+clip_for_xgetimage(XMesaContext xmesa, GLuint *n, GLint *x, GLint *y)
+{
+ XMesaBuffer source = xmesa->xm_buffer;
+ Window rootWin = RootWindow(xmesa->display, 0);
+ Window child;
+ int screenWidth = WidthOfScreen(DefaultScreenOfDisplay(xmesa->display));
+ int dx, dy;
+ XTranslateCoordinates(xmesa->display, source->buffer, rootWin,
+ *x, *y, &dx, &dy, &child);
+ if (dx >= screenWidth) {
+ /* totally clipped on right */
+ return -1;
+ }
+ if (dx < 0) {
+ /* clipped on left */
+ int clip = -dx;
+ if (clip >= *n)
+ return -1; /* totally clipped on left */
+ *x += clip;
+ *n -= clip;
+ dx = 0;
+ return clip;
+ }
+ if (dx + *n > screenWidth) {
+ /* clipped on right */
+ int clip = dx + *n - screenWidth;
+ *n -= clip;
+ }
+ return 0;
+}
+#endif
/*
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;
#ifndef XFree86Server
XMesaImage *span = NULL;
int error;
+ int k = clip_for_xgetimage(xmesa, &n, &x, &y);
+ if (k < 0)
+ return;
+ index += k;
+
catch_xgetimage_errors( xmesa->display );
span = XGetImage( xmesa->display, source->buffer,
x, y, n, 1, AllPlanes, ZPixmap );
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) {
x, FLIP(source, y), n, 1, ZPixmap,
~0L, (pointer)span->data);
#else
+ int k;
+ y = FLIP(source, y);
+ k = clip_for_xgetimage(xmesa, &n, &x, &y);
+ if (k < 0)
+ return;
+ rgba += k;
catch_xgetimage_errors( xmesa->display );
span = XGetImage( xmesa->display, source->buffer,
- x, FLIP(source, y), n, 1, AllPlanes, ZPixmap );
+ x, y, n, 1, AllPlanes, ZPixmap );
error = check_xgetimage_errors();
#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;
}
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;
}
}
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;
}
}
break;
- case PF_1BIT:
+ case PF_1Bit:
{
int bitFlip = xmesa->xm_visual->bitFlip;
GLuint i;
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;
}
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;
}
}
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;
}
}
break;
- case PF_1BIT:
+ case PF_1Bit:
{
XMesaImage *img = source->backimage;
int bitFlip = xmesa->xm_visual->bitFlip;
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;
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;
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);
}
}
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;
}
}
break;
- case PF_1BIT:
+ case PF_1Bit:
{
int bitFlip = xmesa->xm_visual->bitFlip;
for (i=0;i<n;i++) {
}
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);
}
}
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;
}
}
break;
- case PF_1BIT:
+ case PF_1Bit:
{
XMesaImage *img = source->backimage;
int bitFlip = xmesa->xm_visual->bitFlip;
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]);
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]);
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 );
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;
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;
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;
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;
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;
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;
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;
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;
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;
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;