* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-/* $XFree86: xc/extras/Mesa/src/X/xm_span.c,v 1.3 2002/02/27 21:07:54 tsi Exp $ */
#include "glxheader.h"
-#include "colormac.h"
-#include "context.h"
-#include "depth.h"
-#include "drawpix.h"
-#include "extensions.h"
-#include "macros.h"
-#include "imports.h"
-#include "mtypes.h"
-#include "state.h"
+#include "main/colormac.h"
+#include "main/context.h"
+#include "main/depth.h"
+#include "main/drawpix.h"
+#include "main/extensions.h"
+#include "main/macros.h"
+#include "main/imports.h"
+#include "main/mtypes.h"
+#include "main/state.h"
#include "xmesaP.h"
#include "swrast/swrast.h"
const void *values, const GLubyte mask[]
-/* NOTE: if mask==NULL, draw all pixels */
+#define GET_XRB(XRB) \
+ struct xmesa_renderbuffer *XRB = xmesa_renderbuffer(rb)
/*
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
if (mask) {
for (i=0;i<n;i++,x++) {
if (mask[i]) {
+#if 1
+ /*
+ * XXX Something funny is going on here.
+ * If we're drawing into a window that uses a depth 32 TrueColor
+ * visual, we see the right pixels on screen, but when we read
+ * them back with XGetImage() we get random colors.
+ * The alternative code below which uses XPutImage() instead
+ * seems to mostly fix the problem, but not always.
+ * We don't normally create windows with this visual, but glean
+ * does and we're seeing some failures there.
+ */
XMesaSetForeground( dpy, gc, PACK_8R8G8B( rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] ));
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
+#else
+ /* This code works more often, but not always */
+ XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
+ GLuint *ptr4 = (GLuint *) rowimg->data;
+ *ptr4 = PACK_8R8G8B( rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP] );
+ XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, 1, 1 );
+#endif
}
}
}
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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) {
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
static void put_row_8A8B8G8R_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
+ (void) ctx;
if (mask) {
for (i=0;i<n;i++) {
if (mask[i]) {
static void put_row_rgb_8A8B8G8R_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
static void put_row_8A8R8G8B_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
static void put_row_rgb_8A8R8G8B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
static void put_row_8R8G8B_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
static void put_row_8R8G8B24_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = (GLubyte *) PIXEL_ADDR3(xrb, x, y );
if (mask) {
pixel &= 0x00ffffff;
pixel |= rgba[i][BCOMP] << 24;
*ptr4++ = pixel;
- pixel = *ptr4 && 0xffff0000;
+ pixel = *ptr4 & 0xffff0000;
pixel |= rgba[i][GCOMP];
pixel |= rgba[i][RCOMP] << 8;
*ptr4 = pixel;
pixel |= rgba[i][BCOMP] << 16;
pixel |= rgba[i][GCOMP] << 24;
*ptr4++ = pixel;
- pixel = *ptr4 && 0xffffff00;
+ pixel = *ptr4 & 0xffffff00;
pixel |= rgba[i][RCOMP];
*ptr4 = pixel;
break;
pixel &= 0x00ffffff;
pixel |= rgba[i][BCOMP] << 24;
*ptr4++ = pixel;
- pixel = *ptr4 && 0xffff0000;
+ pixel = *ptr4 & 0xffff0000;
pixel |= rgba[i][GCOMP];
pixel |= rgba[i++][RCOMP] << 8;
*ptr4 = pixel;
pixel |= rgba[i][BCOMP] << 16;
pixel |= rgba[i][GCOMP] << 24;
*ptr4++ = pixel;
- pixel = *ptr4 && 0xffffff00;
+ pixel = *ptr4 & 0xffffff00;
pixel |= rgba[i++][RCOMP];
*ptr4 = pixel;
if (0 == --w)
static void put_row_rgb_8R8G8B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
static void put_row_rgb_8R8G8B24_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = (GLubyte *) PIXEL_ADDR3(xrb, x, y);
if (mask) {
static void put_row_5R6G5B_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLushort *ptr = PIXEL_ADDR2(xrb, x, y);
if (mask) {
static void put_row_DITHER_5R6G5B_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLuint i;
register GLushort *ptr = PIXEL_ADDR2(xrb, x, y);
static void put_row_rgb_5R6G5B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLushort *ptr = PIXEL_ADDR2(xrb, x, y);
if (mask) {
static void put_row_rgb_DITHER_5R6G5B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLuint i;
register GLushort *ptr = PIXEL_ADDR2(xrb, x, y );
static void put_row_DITHER_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
int yy = YFLIP(xrb, y);
static void put_row_rgb_DITHER_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
int yy = YFLIP(xrb, y);
static void put_row_DITHER8_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
XDITHER_SETUP(y);
static void put_row_rgb_DITHER8_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
XDITHER_SETUP(y);
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
SETUP_1BIT;
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
SETUP_1BIT;
static void put_row_HPCR_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
static void put_row_rgb_HPCR_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
static void put_row_LOOKUP_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
LOOKUP_SETUP;
static void put_row_rgb_LOOKUP_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
LOOKUP_SETUP;
static void put_row_LOOKUP8_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
LOOKUP_SETUP;
static void put_row_rgb_LOOKUP8_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
LOOKUP_SETUP;
static void put_row_GRAYSCALE_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
static void put_row_rgb_GRAYSCALE_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
static void put_row_GRAYSCALE8_ximage( PUT_ROW_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
if (mask) {
static void put_row_rgb_GRAYSCALE8_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
if (mask) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
for (i=0;i<n;i++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
for (i=0;i<n;i++) {
static void put_values_8A8B8G8R_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
for (i=0;i<n;i++) {
if (mask[i]) {
static void put_values_8A8R8G8B_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
for (i=0;i<n;i++) {
if (mask[i]) {
static void put_values_8R8G8B_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
for (i=0;i<n;i++) {
if (mask[i]) {
static void put_values_8R8G8B24_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
for (i=0;i<n;i++) {
if (mask[i]) {
static void put_values_5R6G5B_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
for (i=0;i<n;i++) {
if (mask[i]) {
static void put_values_DITHER_5R6G5B_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLuint i;
for (i=0;i<n;i++) {
static void put_values_DITHER_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
DITHER_SETUP;
static void put_values_DITHER8_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
DITHER_SETUP;
for (i=0;i<n;i++) {
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
SETUP_1BIT;
static void put_values_HPCR_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLuint i;
for (i=0;i<n;i++) {
static void put_values_LOOKUP_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
LOOKUP_SETUP;
static void put_values_LOOKUP8_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
LOOKUP_SETUP;
for (i=0;i<n;i++) {
static void put_values_GRAYSCALE_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
for (i=0;i<n;i++) {
static void put_values_GRAYSCALE8_ximage( PUT_VALUES_ARGS )
{
const GLubyte (*rgba)[4] = (const GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
for (i=0;i<n;i++) {
if (mask[i]) {
static void put_mono_row_pixmap( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
{
GLuint colorIndex = *((GLuint *) value);
XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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 );
static void put_mono_row_TRUEDITHER_pixmap( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
static void put_mono_row_DITHER_pixmap( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
static void put_mono_row_1BIT_pixmap( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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;
static void put_mono_row_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaContext xmesa = XMESA_CONTEXT(ctx);
XMesaImage *img = xrb->ximage;
register GLuint i;
put_mono_row_ci_ximage( PUT_MONO_ROW_ARGS )
{
const GLuint colorIndex = *((GLuint *) value);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
static void put_mono_row_TRUEDITHER_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaContext xmesa = XMESA_CONTEXT(ctx);
XMesaImage *img = xrb->ximage;
const GLint r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
static void put_mono_row_8A8B8G8R_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaContext xmesa = XMESA_CONTEXT(ctx);
GLuint i, *ptr;
const unsigned long pixel = xmesa_color_to_pixel(ctx, color[RCOMP],
static void put_mono_row_8A8R8G8B_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
GLuint i, *ptr;
XMesaContext xmesa = XMESA_CONTEXT(ctx);
const unsigned long pixel = xmesa_color_to_pixel(ctx, color[RCOMP],
static void put_mono_row_8R8G8B_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLuint pixel = PACK_8R8G8B(color[RCOMP], color[GCOMP], color[BCOMP]);
GLuint *ptr = PIXEL_ADDR4(xrb, x, y );
GLuint i;
static void put_mono_row_8R8G8B24_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP];
const GLubyte g = color[GCOMP];
const GLubyte b = color[BCOMP];
static void put_mono_row_DITHER_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
XMesaImage *img = xrb->ximage;
int yy = YFLIP(xrb, y);
static void put_mono_row_DITHER8_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
register GLuint i;
static void put_mono_row_LOOKUP8_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
GLubyte pixel;
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
XMesaImage *img = xrb->ximage;
register GLuint i;
static void put_mono_row_HPCR_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
register GLubyte *ptr = PIXEL_ADDR1(xrb, x, y);
static void put_mono_row_GRAYSCALE8_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte p = GRAY_RGB(color[RCOMP], color[GCOMP], color[BCOMP]);
GLubyte *ptr = (GLubyte *) PIXEL_ADDR1(xrb, x, y);
GLuint i;
static void put_mono_row_DITHER_5R6G5B_ximage( PUT_MONO_ROW_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLushort *ptr = PIXEL_ADDR2(xrb, x, y );
const GLint r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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],
{
const GLuint colorIndex = *((GLuint *) value);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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 );
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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];
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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];
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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];
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
const unsigned long pixel = xmesa_color_to_pixel(ctx, color[RCOMP],
put_mono_values_ci_ximage( PUT_MONO_VALUES_ARGS )
{
const GLuint colorIndex = *((GLuint *) value);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
for (i=0;i<n;i++) {
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
const int r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
static void put_mono_values_8A8B8G8R_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLuint p = PACK_8A8B8G8R(color[RCOMP], color[GCOMP],
color[BCOMP], color[ACOMP]);
register GLuint i;
static void put_mono_values_8A8R8G8B_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLuint p = PACK_8A8R8G8B(color[RCOMP], color[GCOMP],
color[BCOMP], color[ACOMP]);
register GLuint i;
static void put_mono_values_8R8G8B_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
const GLuint p = PACK_8R8G8B(color[RCOMP], color[GCOMP], color[BCOMP]);
for (i=0;i<n;i++) {
static void put_mono_values_8R8G8B24_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
register GLuint i;
for (i=0;i<n;i++) {
static void put_mono_values_DITHER_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
XMesaImage *img = xrb->ximage;
register GLuint i;
static void put_mono_values_DITHER8_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
register GLuint i;
DITHER_SETUP;
static void put_mono_values_LOOKUP8_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
GLubyte pixel;
LOOKUP_SETUP;
{
const GLubyte *color = (const GLubyte *) value;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
XMesaImage *img = xrb->ximage;
register GLuint i;
static void put_mono_values_HPCR_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
const GLubyte r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
register GLuint i;
static void put_mono_values_GRAYSCALE8_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
register GLuint i;
register GLubyte p = GRAY_RGB(color[RCOMP], color[GCOMP], color[BCOMP]);
for (i=0;i<n;i++) {
static void put_mono_values_DITHER_5R6G5B_ximage( PUT_MONO_VALUES_ARGS )
{
const GLubyte *color = (const GLubyte *) value;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
const int r = color[RCOMP], g = color[GCOMP], b = color[BCOMP];
register GLuint i;
{
const GLuint *index = (GLuint *) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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);
static void put_row_ci_ximage( PUT_ROW_ARGS )
{
const GLuint *index = (const GLuint *) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
{
const GLuint *index = (const GLuint *) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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++) {
static void put_values_ci_ximage( PUT_VALUES_ARGS )
{
const GLuint *index = (const GLuint *) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
for (i=0;i<n;i++) {
* else return number of pixels to skip in the destination array.
*/
static int
-clip_for_xgetimage(GLcontext *ctx, GLuint *n, GLint *x, GLint *y)
+clip_for_xgetimage(GLcontext *ctx, XMesaPixmap pixmap, GLuint *n, GLint *x, GLint *y)
{
XMesaContext xmesa = XMESA_CONTEXT(ctx);
XMesaBuffer source = XMESA_BUFFER(ctx->DrawBuffer);
Window child;
GLint screenWidth = WidthOfScreen(DefaultScreenOfDisplay(xmesa->display));
GLint dx, dy;
- if (source->type == PBUFFER)
+ if (source->type == PBUFFER || source->type == PIXMAP)
return 0;
- XTranslateCoordinates(xmesa->display, source->frontxrb->pixmap, rootWin,
+ XTranslateCoordinates(xmesa->display, pixmap, rootWin,
*x, *y, &dx, &dy, &child);
if (dx >= screenWidth) {
/* totally clipped on right */
{
GLuint *index = (GLuint *) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
GLuint i;
y = YFLIP(xrb, y);
#ifndef XFree86Server
XMesaImage *span = NULL;
int error;
- int k = clip_for_xgetimage(ctx, &n, &x, &y);
+ int k = clip_for_xgetimage(ctx, xrb->pixmap, &n, &x, &y);
if (k < 0)
return;
index += k;
XMesaDestroyImage( span );
}
#else
- (*xmesa->display->GetImage)(source->buffer,
+ (*xmesa->display->GetImage)(xrb->drawable,
x, y, n, 1, ZPixmap,
~0L, (pointer)index);
#endif
{
GLubyte (*rgba)[4] = (GLubyte (*)[4]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
XMesaBuffer source = XMESA_BUFFER(ctx->DrawBuffer);
if (xrb->pixmap) {
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)(source->buffer,
+ (*xmesa->display->GetImage)(xrb->drawable,
x, YFLIP(xrb, y), n, 1, ZPixmap,
~0L, (pointer)span->data);
#else
int k;
y = YFLIP(xrb, y);
- k = clip_for_xgetimage(ctx, &n, &x, &y);
+ k = clip_for_xgetimage(ctx, xrb->pixmap, &n, &x, &y);
if (k < 0)
return;
rgba += k;
{
GLuint *indx = (GLuint *) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
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]) );
}
}
GLuint n, const GLint x[], const GLint y[], void *values)
{
GLubyte (*rgba)[4] = (GLubyte (*)[4]) values;
- struct xmesa_renderbuffer *xrb = (struct xmesa_renderbuffer *) rb;
+ GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
XMesaDisplay *dpy = xmesa->xm_visual->display;
XMesaBuffer source = XMESA_BUFFER(ctx->DrawBuffer);
register GLuint i;
if (xrb->pixmap) {
- XMesaDrawable buffer = xrb->pixmap;
+ XMesaDrawable buffer = xrb->drawable;
switch (xmesa->pixelformat) {
case PF_Truecolor:
case PF_Dither_True: