mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-04 18:28:12 +02:00
Added XMesaDrawable to xmesa_renderbuffer. Use it in a few places instead
of the XMesaPixmap field to avoid some X server-side issues with casting.
This commit is contained in:
parent
b7f8d69bb3
commit
a882648023
4 changed files with 120 additions and 95 deletions
|
|
@ -583,8 +583,8 @@ alloc_shm_back_buffer(XMesaBuffer b, GLuint width, GLuint height)
|
|||
shmctl( b->shminfo.shmid, IPC_RMID, 0 ); /* nobody else needs it */
|
||||
|
||||
/* Finally, try an XShmPutImage to be really sure the extension works */
|
||||
gc = XCreateGC( b->xm_visual->display, b->frontxrb->pixmap, 0, NULL );
|
||||
XShmPutImage( b->xm_visual->display, b->frontxrb->pixmap, gc,
|
||||
gc = XCreateGC( b->xm_visual->display, b->frontxrb->drawable, 0, NULL );
|
||||
XShmPutImage( b->xm_visual->display, b->frontxrb->drawable, gc,
|
||||
b->backxrb->ximage, 0, 0, 0, 0, 1, 1 /*one pixel*/, False );
|
||||
XSync( b->xm_visual->display, False );
|
||||
XFreeGC( b->xm_visual->display, gc );
|
||||
|
|
@ -610,6 +610,7 @@ alloc_shm_back_buffer(XMesaBuffer b, GLuint width, GLuint height)
|
|||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Setup an off-screen pixmap or Ximage to use as the back buffer.
|
||||
* Input: b - the X/Mesa buffer
|
||||
|
|
@ -662,9 +663,13 @@ xmesa_alloc_back_buffer( XMesaBuffer b, GLuint width, GLuint height )
|
|||
XMesaDestroyImage( b->backxrb->ximage );
|
||||
b->backxrb->ximage = NULL;
|
||||
}
|
||||
/* this call just updates the width/origin fields in the xrb */
|
||||
b->backxrb->Base.AllocStorage(NULL, &b->backxrb->Base,
|
||||
b->backxrb->Base.InternalFormat,
|
||||
b->backxrb->ximage->width,
|
||||
b->backxrb->ximage->height);
|
||||
}
|
||||
b->backxrb->pixmap = None;
|
||||
b->backxrb->ximage = b->backxrb->ximage;
|
||||
}
|
||||
else if (b->db_state==BACK_PIXMAP) {
|
||||
if (!width)
|
||||
|
|
@ -677,9 +682,10 @@ xmesa_alloc_back_buffer( XMesaBuffer b, GLuint width, GLuint height )
|
|||
XMesaFreePixmap( b->xm_visual->display, b->backxrb->pixmap );
|
||||
}
|
||||
/* Allocate new back pixmap */
|
||||
b->backxrb->pixmap = XMesaCreatePixmap( b->xm_visual->display, b->frontxrb->pixmap,
|
||||
width, height,
|
||||
GET_VISUAL_DEPTH(b->xm_visual) );
|
||||
b->backxrb->pixmap = XMesaCreatePixmap( b->xm_visual->display,
|
||||
b->frontxrb->drawable,
|
||||
width, height,
|
||||
GET_VISUAL_DEPTH(b->xm_visual) );
|
||||
b->backxrb->ximage = NULL;
|
||||
}
|
||||
}
|
||||
|
|
@ -1296,7 +1302,8 @@ static GLboolean initialize_visual_and_buffer( int client,
|
|||
if (b && window) {
|
||||
/* Do window-specific initializations */
|
||||
|
||||
b->frontxrb->pixmap = window;
|
||||
b->frontxrb->drawable = window;
|
||||
b->frontxrb->pixmap = (XMesaPixmap) window;
|
||||
|
||||
/* Setup for single/double buffering */
|
||||
if (v->mesa_visual.doubleBufferMode) {
|
||||
|
|
@ -1998,8 +2005,8 @@ void XMesaDestroyBuffer( XMesaBuffer b )
|
|||
int client = 0;
|
||||
|
||||
#ifdef XFree86Server
|
||||
if (b->frontxrb->pixmap)
|
||||
client = CLIENT_ID(b->frontxrb->pixmap->id);
|
||||
if (b->frontxrb->drawable)
|
||||
client = CLIENT_ID(b->frontxrb->drawable->id);
|
||||
#endif
|
||||
|
||||
if (b->gc) XMesaFreeGC( b->xm_visual->display, b->gc );
|
||||
|
|
@ -2008,25 +2015,26 @@ void XMesaDestroyBuffer( XMesaBuffer b )
|
|||
|
||||
if (b->xm_visual->mesa_visual.doubleBufferMode)
|
||||
{
|
||||
if (b->backxrb->ximage) {
|
||||
if (b->backxrb->ximage) {
|
||||
#if defined(USE_XSHM) && !defined(XFree86Server)
|
||||
if (b->shm) {
|
||||
XShmDetach( b->xm_visual->display, &b->shminfo );
|
||||
XDestroyImage( b->backxrb->ximage );
|
||||
shmdt( b->shminfo.shmaddr );
|
||||
}
|
||||
else
|
||||
if (b->shm) {
|
||||
XShmDetach( b->xm_visual->display, &b->shminfo );
|
||||
XDestroyImage( b->backxrb->ximage );
|
||||
shmdt( b->shminfo.shmaddr );
|
||||
}
|
||||
else
|
||||
#endif
|
||||
XMesaDestroyImage( b->backxrb->ximage );
|
||||
}
|
||||
if (b->backxrb->pixmap) {
|
||||
XMesaFreePixmap( b->xm_visual->display, b->backxrb->pixmap );
|
||||
if (b->xm_visual->hpcr_clear_flag) {
|
||||
XMesaFreePixmap( b->xm_visual->display,
|
||||
b->xm_visual->hpcr_clear_pixmap );
|
||||
XMesaDestroyImage( b->xm_visual->hpcr_clear_ximage );
|
||||
}
|
||||
XMesaDestroyImage( b->backxrb->ximage );
|
||||
}
|
||||
if (b->backxrb->pixmap) {
|
||||
XMesaFreePixmap( b->xm_visual->display,
|
||||
(XMesaPixmap) b->backxrb->pixmap );
|
||||
if (b->xm_visual->hpcr_clear_flag) {
|
||||
XMesaFreePixmap( b->xm_visual->display,
|
||||
b->xm_visual->hpcr_clear_pixmap );
|
||||
XMesaDestroyImage( b->xm_visual->hpcr_clear_ximage );
|
||||
}
|
||||
}
|
||||
}
|
||||
if (b->rowimage) {
|
||||
_mesa_free( b->rowimage->data );
|
||||
|
|
@ -2350,7 +2358,7 @@ void XMesaSwapBuffers( XMesaBuffer b )
|
|||
#if defined(USE_XSHM) && !defined(XFree86Server)
|
||||
if (b->shm) {
|
||||
/*_glthread_LOCK_MUTEX(_xmesa_lock);*/
|
||||
XShmPutImage( b->xm_visual->display, b->frontxrb->pixmap,
|
||||
XShmPutImage( b->xm_visual->display, b->frontxrb->drawable,
|
||||
b->swapgc,
|
||||
b->backxrb->ximage, 0, 0,
|
||||
0, 0, b->mesa_buffer.Width, b->mesa_buffer.Height,
|
||||
|
|
@ -2361,7 +2369,7 @@ void XMesaSwapBuffers( XMesaBuffer b )
|
|||
#endif
|
||||
{
|
||||
/*_glthread_LOCK_MUTEX(_xmesa_lock);*/
|
||||
XMesaPutImage( b->xm_visual->display, b->frontxrb->pixmap,
|
||||
XMesaPutImage( b->xm_visual->display, b->frontxrb->drawable,
|
||||
b->swapgc,
|
||||
b->backxrb->ximage, 0, 0,
|
||||
0, 0, b->mesa_buffer.Width, b->mesa_buffer.Height );
|
||||
|
|
@ -2373,7 +2381,7 @@ void XMesaSwapBuffers( XMesaBuffer b )
|
|||
/*_glthread_LOCK_MUTEX(_xmesa_lock);*/
|
||||
XMesaCopyArea( b->xm_visual->display,
|
||||
b->backxrb->pixmap, /* source drawable */
|
||||
b->frontxrb->pixmap, /* dest. drawable */
|
||||
b->frontxrb->drawable, /* dest. drawable */
|
||||
b->swapgc,
|
||||
0, 0, b->mesa_buffer.Width, b->mesa_buffer.Height,
|
||||
0, 0 /* dest region */
|
||||
|
|
@ -2417,7 +2425,7 @@ void XMesaCopySubBuffer( XMesaBuffer b, int x, int y, int width, int height )
|
|||
#if defined(USE_XSHM) && !defined(XFree86Server)
|
||||
if (b->shm) {
|
||||
/* XXX assuming width and height aren't too large! */
|
||||
XShmPutImage( b->xm_visual->display, b->frontxrb->pixmap,
|
||||
XShmPutImage( b->xm_visual->display, b->frontxrb->drawable,
|
||||
b->swapgc,
|
||||
b->backxrb->ximage, x, yTop,
|
||||
x, yTop, width, height, False );
|
||||
|
|
@ -2427,7 +2435,7 @@ void XMesaCopySubBuffer( XMesaBuffer b, int x, int y, int width, int height )
|
|||
#endif
|
||||
{
|
||||
/* XXX assuming width and height aren't too large! */
|
||||
XMesaPutImage( b->xm_visual->display, b->frontxrb->pixmap,
|
||||
XMesaPutImage( b->xm_visual->display, b->frontxrb->drawable,
|
||||
b->swapgc,
|
||||
b->backxrb->ximage, x, yTop,
|
||||
x, yTop, width, height );
|
||||
|
|
@ -2437,7 +2445,7 @@ void XMesaCopySubBuffer( XMesaBuffer b, int x, int y, int width, int height )
|
|||
/* Copy pixmap to window on server */
|
||||
XMesaCopyArea( b->xm_visual->display,
|
||||
b->backxrb->pixmap, /* source drawable */
|
||||
b->frontxrb->pixmap, /* dest. drawable */
|
||||
b->frontxrb->drawable, /* dest. drawable */
|
||||
b->swapgc,
|
||||
x, yTop, width, height, /* source region */
|
||||
x, yTop /* dest region */
|
||||
|
|
@ -2456,6 +2464,7 @@ void XMesaCopySubBuffer( XMesaBuffer b, int x, int y, int width, int height )
|
|||
* Return: GL_TRUE = context is double buffered
|
||||
* GL_FALSE = context is single buffered
|
||||
*/
|
||||
#ifndef XFree86Server
|
||||
GLboolean XMesaGetBackBuffer( XMesaBuffer b,
|
||||
XMesaPixmap *pixmap,
|
||||
XMesaImage **ximage )
|
||||
|
|
@ -2471,6 +2480,7 @@ GLboolean XMesaGetBackBuffer( XMesaBuffer b,
|
|||
return GL_FALSE;
|
||||
}
|
||||
}
|
||||
#endif /* XFree86Server */
|
||||
|
||||
|
||||
/*
|
||||
|
|
@ -2537,7 +2547,7 @@ XMesaBuffer XMesaFindBuffer( XMesaDisplay *dpy, XMesaDrawable d )
|
|||
{
|
||||
XMesaBuffer b;
|
||||
for (b=XMesaBufferList; b; b=b->Next) {
|
||||
if (b->frontxrb->pixmap==d && b->display==dpy) {
|
||||
if (b->frontxrb->drawable == d && b->display == dpy) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
|
|
@ -2555,12 +2565,12 @@ void XMesaGarbageCollect( void )
|
|||
XMesaBuffer b, next;
|
||||
for (b=XMesaBufferList; b; b=next) {
|
||||
next = b->Next;
|
||||
if (b->display && b->frontxrb->pixmap && b->type == WINDOW) {
|
||||
if (b->display && b->frontxrb->drawable && b->type == WINDOW) {
|
||||
#ifdef XFree86Server
|
||||
/* NOT_NEEDED */
|
||||
#else
|
||||
XSync(b->display, False);
|
||||
if (!window_exists( b->display, b->frontxrb->pixmap )) {
|
||||
if (!window_exists( b->display, b->frontxrb->drawable )) {
|
||||
/* found a dead window, free the ancillary info */
|
||||
XMesaDestroyBuffer( b );
|
||||
}
|
||||
|
|
@ -2645,8 +2655,13 @@ unsigned long XMesaDitherColor( XMesaContext xmesa, GLint x, GLint y,
|
|||
void XMesaResizeBuffers( XMesaBuffer b )
|
||||
{
|
||||
#ifdef XFree86Server
|
||||
GLuint winwidth, winheight;
|
||||
GET_CURRENT_CONTEXT(ctx);
|
||||
xmesa_resize_buffers(ctx, &(b->mesa_buffer), 0, 0);
|
||||
|
||||
winwidth = MIN2(b->frontxrb->drawable->width, MAX_WIDTH);
|
||||
winheight = MIN2(b->frontxrb->drawable->height, MAX_HEIGHT);
|
||||
|
||||
xmesa_resize_buffers(ctx, &(b->mesa_buffer), winwidth, winheight);
|
||||
#else
|
||||
Window root;
|
||||
int xpos, ypos;
|
||||
|
|
|
|||
|
|
@ -105,8 +105,8 @@ get_buffer_size( GLframebuffer *buffer, GLuint *width, GLuint *height )
|
|||
unsigned int winwidth, winheight;
|
||||
#ifdef XFree86Server
|
||||
/* XFree86 GLX renderer */
|
||||
winwidth = MIN2(xmBuffer->frontxrb->pixmap->width, MAX_WIDTH);
|
||||
winheight = MIN2(xmBuffer->frontxrb->pixmap->height, MAX_HEIGHT);
|
||||
winwidth = MIN2(xmBuffer->frontxrb->drawable->width, MAX_WIDTH);
|
||||
winheight = MIN2(xmBuffer->frontxrb->drawable->height, MAX_HEIGHT);
|
||||
#else
|
||||
Window root;
|
||||
int winx, winy;
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ static void put_row_TRUECOLOR_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = XMESA_BUFFER(ctx->DrawBuffer)->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
|
||||
|
|
@ -225,7 +225,7 @@ static void put_row_rgb_TRUECOLOR_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -260,7 +260,7 @@ static void put_row_TRUEDITHER_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -295,7 +295,7 @@ static void put_row_rgb_TRUEDITHER_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -330,7 +330,7 @@ static void put_row_8A8B8G8R_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -364,7 +364,7 @@ static void put_row_rgb_8A8B8G8R_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -397,7 +397,7 @@ static void put_row_8A8R8G8B_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -431,7 +431,7 @@ static void put_row_rgb_8A8R8G8B_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -464,7 +464,7 @@ static void put_row_8R8G8B_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -497,7 +497,7 @@ static void put_row_8R8G8B24_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
y = YFLIP(xrb, y);
|
||||
if (mask) {
|
||||
|
|
@ -593,7 +593,7 @@ static void put_row_rgb_8R8G8B_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -625,7 +625,7 @@ static void put_row_rgb_8R8G8B24_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
y = YFLIP(xrb, y);
|
||||
if (mask) {
|
||||
|
|
@ -726,7 +726,7 @@ static void put_row_5R6G5B_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -759,7 +759,7 @@ static void put_row_DITHER_5R6G5B_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -794,7 +794,7 @@ static void put_row_rgb_5R6G5B_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -827,7 +827,7 @@ static void put_row_rgb_DITHER_5R6G5B_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -862,7 +862,7 @@ static void put_row_DITHER_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
XDITHER_SETUP(y);
|
||||
|
|
@ -895,7 +895,7 @@ static void put_row_rgb_DITHER_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
XDITHER_SETUP(y);
|
||||
|
|
@ -928,7 +928,7 @@ static void put_row_1BIT_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
SETUP_1BIT;
|
||||
|
|
@ -963,7 +963,7 @@ static void put_row_rgb_1BIT_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
SETUP_1BIT;
|
||||
|
|
@ -998,7 +998,7 @@ static void put_row_HPCR_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -1031,7 +1031,7 @@ static void put_row_rgb_HPCR_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -1063,7 +1063,7 @@ static void put_row_LOOKUP_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
LOOKUP_SETUP;
|
||||
|
|
@ -1095,7 +1095,7 @@ static void put_row_rgb_LOOKUP_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
LOOKUP_SETUP;
|
||||
|
|
@ -1127,7 +1127,7 @@ static void put_row_GRAYSCALE_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -1158,7 +1158,7 @@ static void put_row_rgb_GRAYSCALE_pixmap( RGB_SPAN_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -2237,7 +2237,7 @@ static void put_values_TRUECOLOR_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2260,7 +2260,7 @@ static void put_values_TRUEDITHER_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2283,7 +2283,7 @@ static void put_values_8A8B8G8R_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2304,7 +2304,7 @@ static void put_values_8A8R8G8B_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2325,7 +2325,7 @@ static void put_values_8R8G8B_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2346,7 +2346,7 @@ static void put_values_8R8G8B24_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2367,7 +2367,7 @@ static void put_values_5R6G5B_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2388,7 +2388,7 @@ static void put_values_DITHER_5R6G5B_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2411,7 +2411,7 @@ static void put_values_DITHER_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
DITHER_SETUP;
|
||||
|
|
@ -2434,7 +2434,7 @@ static void put_values_1BIT_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
SETUP_1BIT;
|
||||
|
|
@ -2457,7 +2457,7 @@ static void put_values_HPCR_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2479,7 +2479,7 @@ static void put_values_LOOKUP_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
LOOKUP_SETUP;
|
||||
|
|
@ -2501,7 +2501,7 @@ static void put_values_GRAYSCALE_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -2825,7 +2825,7 @@ static void put_mono_row_pixmap( PUT_MONO_ROW_ARGS )
|
|||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
const unsigned long pixel = xmesa_color_to_pixel(ctx, color[RCOMP],
|
||||
color[GCOMP], color[BCOMP], color[ACOMP], xmesa->pixelformat);
|
||||
|
|
@ -2865,7 +2865,7 @@ put_mono_row_ci_pixmap( PUT_MONO_ROW_ARGS )
|
|||
XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
XMesaSetForeground( xmesa->display, gc, colorIndex );
|
||||
|
|
@ -2902,7 +2902,7 @@ static void put_mono_row_TRUEDITHER_pixmap( PUT_MONO_ROW_ARGS )
|
|||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
|
||||
register GLuint i;
|
||||
|
|
@ -2927,7 +2927,7 @@ static void put_mono_row_DITHER_pixmap( PUT_MONO_ROW_ARGS )
|
|||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
|
||||
register GLuint i;
|
||||
|
|
@ -2951,7 +2951,7 @@ static void put_mono_row_1BIT_pixmap( PUT_MONO_ROW_ARGS )
|
|||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
|
||||
register GLuint i;
|
||||
|
|
@ -3263,7 +3263,7 @@ static void put_mono_values_pixmap( PUT_MONO_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
const unsigned long pixel = xmesa_color_to_pixel(ctx, color[RCOMP],
|
||||
|
|
@ -3285,7 +3285,7 @@ put_mono_values_ci_pixmap( PUT_MONO_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
XMesaSetForeground( xmesa->display, gc, colorIndex );
|
||||
|
|
@ -3307,7 +3307,7 @@ static void put_mono_values_TRUEDITHER_pixmap( PUT_MONO_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
|
||||
|
|
@ -3332,7 +3332,7 @@ static void put_mono_values_DITHER_pixmap( PUT_MONO_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
|
||||
|
|
@ -3355,7 +3355,7 @@ static void put_mono_values_1BIT_pixmap( PUT_MONO_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
|
||||
|
|
@ -3650,7 +3650,7 @@ static void put_row_ci_pixmap( PUT_ROW_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
y = YFLIP(xrb, y);
|
||||
|
|
@ -3709,7 +3709,7 @@ static void put_values_ci_pixmap( PUT_VALUES_ARGS )
|
|||
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
|
||||
struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
|
||||
register GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
|
|
@ -3832,7 +3832,7 @@ get_row_ci(GLcontext *ctx, struct gl_renderbuffer *rb,
|
|||
XMesaDestroyImage( span );
|
||||
}
|
||||
#else
|
||||
(*xmesa->display->GetImage)(xrb->pixmap,
|
||||
(*xmesa->display->GetImage)(xrb->drawable,
|
||||
x, y, n, 1, ZPixmap,
|
||||
~0L, (pointer)index);
|
||||
#endif
|
||||
|
|
@ -3867,7 +3867,7 @@ get_row_rgba(GLcontext *ctx, struct gl_renderbuffer *rb,
|
|||
span = XMesaCreateImage(xmesa->xm_visual->BitsPerPixel, n, 1, NULL);
|
||||
span->data = (char *)MALLOC(span->height * span->bytes_per_line);
|
||||
error = (!span->data);
|
||||
(*xmesa->display->GetImage)(xrb->pixmap,
|
||||
(*xmesa->display->GetImage)(xrb->drawable,
|
||||
x, YFLIP(xrb, y), n, 1, ZPixmap,
|
||||
~0L, (pointer)span->data);
|
||||
#else
|
||||
|
|
@ -4262,7 +4262,7 @@ get_values_ci(GLcontext *ctx, struct gl_renderbuffer *rb,
|
|||
GLuint i;
|
||||
if (xrb->pixmap) {
|
||||
for (i=0;i<n;i++) {
|
||||
indx[i] = (GLuint) read_pixel( xmesa->display, xrb->pixmap,
|
||||
indx[i] = (GLuint) read_pixel( xmesa->display, xrb->drawable,
|
||||
x[i], YFLIP(xrb, y[i]) );
|
||||
}
|
||||
}
|
||||
|
|
@ -4288,7 +4288,7 @@ get_values_rgba(GLcontext *ctx, struct gl_renderbuffer *rb,
|
|||
register GLuint i;
|
||||
|
||||
if (xrb->pixmap) {
|
||||
XMesaDrawable buffer = xrb->pixmap;
|
||||
XMesaDrawable buffer = xrb->drawable;
|
||||
switch (xmesa->pixelformat) {
|
||||
case PF_Truecolor:
|
||||
case PF_Dither_True:
|
||||
|
|
|
|||
|
|
@ -156,13 +156,23 @@ typedef enum {
|
|||
} BufferType;
|
||||
|
||||
|
||||
/**
|
||||
* An xmesa_renderbuffer represents the back or front color buffer.
|
||||
* For the front color buffer:
|
||||
* <drawable> is the X window
|
||||
* For the back color buffer:
|
||||
* Either <ximage> or <pixmap> will be used, never both.
|
||||
* In any case, <drawable> always equals <pixmap>.
|
||||
* For stand-alone Mesa, we could merge <drawable> and <pixmap> into one
|
||||
* field. We don't do that for the server-side GLcore module because
|
||||
* pixmaps and drawables are different and we'd need a bunch of casts.
|
||||
*/
|
||||
struct xmesa_renderbuffer
|
||||
{
|
||||
struct gl_renderbuffer Base; /* Base class */
|
||||
|
||||
XMesaDrawable pixmap; /* Either an X Window ID (front color buf) */
|
||||
/* or X Pixmap ID (back color buf) */
|
||||
|
||||
XMesaDrawable drawable; /* Usually the X window ID */
|
||||
XMesaPixmap pixmap; /* Back color buffer */
|
||||
XMesaImage *ximage; /* The back buffer, if not using a Pixmap */
|
||||
|
||||
GLubyte *origin1; /* used for PIXEL_ADDR1 macro */
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue