mesa: remove gl_renderbuffer::PutRowRGB()

No longer used anywhere.

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Brian Paul
2011-12-24 08:54:26 -07:00
parent 6e7bc79578
commit 7a7b521ff2
14 changed files with 0 additions and 1017 deletions

View File

@@ -201,7 +201,6 @@ static void TAG(InitDepthPointers)(struct gl_renderbuffer *rb)
rb->GetRow = TAG(ReadDepthSpan);
rb->GetValues = TAG(ReadDepthPixels);
rb->PutRow = TAG(WriteDepthSpan);
rb->PutRowRGB = NULL;
rb->PutValues = TAG(WriteDepthPixels);
}

View File

@@ -475,46 +475,6 @@ static void TAG(WriteRGBASpan)( struct gl_context *ctx,
HW_WRITE_UNLOCK();
}
static void TAG(WriteRGBSpan)( struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
const void *values, const GLubyte mask[] )
{
(void) ctx;
HW_WRITE_LOCK()
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
GLint x1;
GLint n1;
LOCAL_VARS;
y = Y_FLIP(y);
HW_WRITE_CLIPLOOP()
{
GLint i = 0;
CLIPSPAN(x,y,n,x1,n1,i);
if (DBG) fprintf(stderr, "WriteRGBSpan %d..%d (x1 %d)\n",
(int)i, (int)n1, (int)x1);
if (mask)
{
for (;n1>0;i++,x1++,n1--)
if (mask[i])
WRITE_RGBA( x1, y, rgb[i][0], rgb[i][1], rgb[i][2], 255 );
}
else
{
for (;n1>0;i++,x1++,n1--)
WRITE_RGBA( x1, y, rgb[i][0], rgb[i][1], rgb[i][2], 255 );
}
}
HW_ENDCLIPLOOP();
}
HW_WRITE_UNLOCK();
}
static void TAG(WriteRGBAPixels)( struct gl_context *ctx,
struct gl_renderbuffer *rb,
@@ -763,7 +723,6 @@ static void TAG(ReadRGBAPixels)( struct gl_context *ctx,
static void TAG(InitPointers)(struct gl_renderbuffer *rb)
{
rb->PutRow = TAG(WriteRGBASpan);
rb->PutRowRGB = TAG(WriteRGBSpan);
rb->PutValues = TAG(WriteRGBAPixels);
rb->GetValues = TAG(ReadRGBAPixels);

View File

@@ -177,7 +177,6 @@ static void TAG(InitStencilPointers)(struct gl_renderbuffer *rb)
rb->GetRow = TAG(ReadStencilSpan);
rb->GetValues = TAG(ReadStencilPixels);
rb->PutRow = TAG(WriteStencilSpan);
rb->PutRowRGB = NULL;
rb->PutValues = TAG(WriteStencilPixels);
}

View File

@@ -276,28 +276,24 @@ swrast_set_span_funcs_back(struct swrast_renderbuffer *xrb,
xrb->Base.GetRow = get_row_A8R8G8B8;
xrb->Base.GetValues = get_values_A8R8G8B8;
xrb->Base.PutRow = put_row_A8R8G8B8;
xrb->Base.PutRowRGB = put_row_rgb_A8R8G8B8;
xrb->Base.PutValues = put_values_A8R8G8B8;
break;
case PF_X8R8G8B8:
xrb->Base.GetRow = get_row_X8R8G8B8;
xrb->Base.GetValues = get_values_X8R8G8B8;
xrb->Base.PutRow = put_row_X8R8G8B8;
xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8;
xrb->Base.PutValues = put_values_X8R8G8B8;
break;
case PF_R5G6B5:
xrb->Base.GetRow = get_row_R5G6B5;
xrb->Base.GetValues = get_values_R5G6B5;
xrb->Base.PutRow = put_row_R5G6B5;
xrb->Base.PutRowRGB = put_row_rgb_R5G6B5;
xrb->Base.PutValues = put_values_R5G6B5;
break;
case PF_R3G3B2:
xrb->Base.GetRow = get_row_R3G3B2;
xrb->Base.GetValues = get_values_R3G3B2;
xrb->Base.PutRow = put_row_R3G3B2;
xrb->Base.PutRowRGB = put_row_rgb_R3G3B2;
xrb->Base.PutValues = put_values_R3G3B2;
break;
default:
@@ -324,28 +320,24 @@ swrast_set_span_funcs_front(struct swrast_renderbuffer *xrb,
xrb->Base.GetRow = get_row_A8R8G8B8_front;
xrb->Base.GetValues = get_values_A8R8G8B8_front;
xrb->Base.PutRow = put_row_A8R8G8B8_front;
xrb->Base.PutRowRGB = put_row_rgb_A8R8G8B8_front;
xrb->Base.PutValues = put_values_A8R8G8B8_front;
break;
case PF_X8R8G8B8:
xrb->Base.GetRow = get_row_X8R8G8B8_front;
xrb->Base.GetValues = get_values_X8R8G8B8_front;
xrb->Base.PutRow = put_row_X8R8G8B8_front;
xrb->Base.PutRowRGB = put_row_rgb_X8R8G8B8_front;
xrb->Base.PutValues = put_values_X8R8G8B8_front;
break;
case PF_R5G6B5:
xrb->Base.GetRow = get_row_R5G6B5_front;
xrb->Base.GetValues = get_values_R5G6B5_front;
xrb->Base.PutRow = put_row_R5G6B5_front;
xrb->Base.PutRowRGB = put_row_rgb_R5G6B5_front;
xrb->Base.PutValues = put_values_R5G6B5_front;
break;
case PF_R3G3B2:
xrb->Base.GetRow = get_row_R3G3B2_front;
xrb->Base.GetValues = get_values_R3G3B2_front;
xrb->Base.PutRow = put_row_R3G3B2_front;
xrb->Base.PutRowRGB = put_row_rgb_R3G3B2_front;
xrb->Base.PutValues = put_values_R3G3B2_front;
break;
default:

View File

@@ -187,47 +187,6 @@ NAME(put_row)( struct gl_context *ctx, struct gl_renderbuffer *rb,
}
static void
NAME(put_row_rgb)( struct gl_context *ctx, struct gl_renderbuffer *rb,
GLuint count, GLint x, GLint y,
const void *values, const GLubyte mask[] )
{
#ifdef SPAN_VARS
SPAN_VARS
#endif
const RB_TYPE (*src)[3] = (const RB_TYPE (*)[3]) values;
GLuint i;
if (mask) {
for (i = 0; i < count; i++) {
if (mask[i]) {
RB_TYPE row[4];
INIT_PIXEL_PTR(pixel, x, y);
#ifdef STORE_PIXEL_RGB
STORE_PIXEL_RGB(pixel, x + i, y, src[i]);
#else
STORE_PIXEL(pixel, x + i, y, src[i]);
#endif
PUT_PIXEL(ctx, x + i, YFLIP(xrb, y), pixel);
}
}
}
else {
char *row = swrast_drawable(ctx->DrawBuffer)->row;
INIT_PIXEL_PTR(pixel, x, y);
for (i = 0; i < count; i++) {
#ifdef STORE_PIXEL_RGB
STORE_PIXEL_RGB(pixel, x + i, y, src[i]);
#else
STORE_PIXEL(pixel, x + i, y, src[i]);
#endif
INC_PIXEL_PTR(pixel);
}
PUT_ROW( ctx, x, YFLIP(xrb, y), count, row );
}
(void) rb;
}
static void
NAME(put_values)( struct gl_context *ctx, struct gl_renderbuffer *rb,
GLuint count, const GLint x[], const GLint y[],

View File

@@ -805,21 +805,18 @@ osmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
rb->GetRow = get_row_RGBA8;
rb->GetValues = get_values_RGBA8;
rb->PutRow = put_row_RGBA8;
rb->PutRowRGB = put_row_rgb_RGBA8;
rb->PutValues = put_values_RGBA8;
}
else if (rb->DataType == GL_UNSIGNED_SHORT) {
rb->GetRow = get_row_RGBA16;
rb->GetValues = get_values_RGBA16;
rb->PutRow = put_row_RGBA16;
rb->PutRowRGB = put_row_rgb_RGBA16;
rb->PutValues = put_values_RGBA16;
}
else {
rb->GetRow = get_row_RGBA32;
rb->GetValues = get_values_RGBA32;
rb->PutRow = put_row_RGBA32;
rb->PutRowRGB = put_row_rgb_RGBA32;
rb->PutValues = put_values_RGBA32;
}
}
@@ -828,21 +825,18 @@ osmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
rb->GetRow = get_row_BGRA8;
rb->GetValues = get_values_BGRA8;
rb->PutRow = put_row_BGRA8;
rb->PutRowRGB = put_row_rgb_BGRA8;
rb->PutValues = put_values_BGRA8;
}
else if (rb->DataType == GL_UNSIGNED_SHORT) {
rb->GetRow = get_row_BGRA16;
rb->GetValues = get_values_BGRA16;
rb->PutRow = put_row_BGRA16;
rb->PutRowRGB = put_row_rgb_BGRA16;
rb->PutValues = put_values_BGRA16;
}
else {
rb->GetRow = get_row_BGRA32;
rb->GetValues = get_values_BGRA32;
rb->PutRow = put_row_BGRA32;
rb->PutRowRGB = put_row_rgb_BGRA32;
rb->PutValues = put_values_BGRA32;
}
}
@@ -851,21 +845,18 @@ osmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
rb->GetRow = get_row_ARGB8;
rb->GetValues = get_values_ARGB8;
rb->PutRow = put_row_ARGB8;
rb->PutRowRGB = put_row_rgb_ARGB8;
rb->PutValues = put_values_ARGB8;
}
else if (rb->DataType == GL_UNSIGNED_SHORT) {
rb->GetRow = get_row_ARGB16;
rb->GetValues = get_values_ARGB16;
rb->PutRow = put_row_ARGB16;
rb->PutRowRGB = put_row_rgb_ARGB16;
rb->PutValues = put_values_ARGB16;
}
else {
rb->GetRow = get_row_ARGB32;
rb->GetValues = get_values_ARGB32;
rb->PutRow = put_row_ARGB32;
rb->PutRowRGB = put_row_rgb_ARGB32;
rb->PutValues = put_values_ARGB32;
}
}
@@ -874,21 +865,18 @@ osmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
rb->GetRow = get_row_RGB8;
rb->GetValues = get_values_RGB8;
rb->PutRow = put_row_RGB8;
rb->PutRowRGB = put_row_rgb_RGB8;
rb->PutValues = put_values_RGB8;
}
else if (rb->DataType == GL_UNSIGNED_SHORT) {
rb->GetRow = get_row_RGB16;
rb->GetValues = get_values_RGB16;
rb->PutRow = put_row_RGB16;
rb->PutRowRGB = put_row_rgb_RGB16;
rb->PutValues = put_values_RGB16;
}
else {
rb->GetRow = get_row_RGB32;
rb->GetValues = get_values_RGB32;
rb->PutRow = put_row_RGB32;
rb->PutRowRGB = put_row_rgb_RGB32;
rb->PutValues = put_values_RGB32;
}
}
@@ -897,21 +885,18 @@ osmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
rb->GetRow = get_row_BGR8;
rb->GetValues = get_values_BGR8;
rb->PutRow = put_row_BGR8;
rb->PutRowRGB = put_row_rgb_BGR8;
rb->PutValues = put_values_BGR8;
}
else if (rb->DataType == GL_UNSIGNED_SHORT) {
rb->GetRow = get_row_BGR16;
rb->GetValues = get_values_BGR16;
rb->PutRow = put_row_BGR16;
rb->PutRowRGB = put_row_rgb_BGR16;
rb->PutValues = put_values_BGR16;
}
else {
rb->GetRow = get_row_BGR32;
rb->GetValues = get_values_BGR32;
rb->PutRow = put_row_BGR32;
rb->PutRowRGB = put_row_rgb_BGR32;
rb->PutValues = put_values_BGR32;
}
}
@@ -920,7 +905,6 @@ osmesa_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
rb->GetRow = get_row_RGB_565;
rb->GetValues = get_values_RGB_565;
rb->PutRow = put_row_RGB_565;
rb->PutRowRGB = put_row_rgb_RGB_565;
rb->PutValues = put_values_RGB_565;
}
else {

View File

@@ -526,33 +526,6 @@ static void write_rgba_span_front(struct gl_context *ctx,
}
}
/* Write a horizontal span of RGB color pixels with a boolean mask. */
static void write_rgb_span_front(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
const void *values,
const GLubyte *mask)
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaContext pwc = wmesa_context(ctx);
GLuint i;
(void) ctx;
y=FLIP(y);
if (mask) {
for (i=0; i<n; i++)
if (mask[i])
SetPixel(pwc->hDC, x+i, y, RGB(rgb[i][RCOMP], rgb[i][GCOMP],
rgb[i][BCOMP]));
}
else {
for (i=0; i<n; i++)
SetPixel(pwc->hDC, x+i, y, RGB(rgb[i][RCOMP], rgb[i][GCOMP],
rgb[i][BCOMP]));
}
}
/* Write an array of RGBA pixels with a boolean mask. */
static void write_rgba_pixels_front(struct gl_context *ctx,
@@ -656,35 +629,6 @@ static void write_rgba_span_32(struct gl_context *ctx,
}
/* Write a horizontal span of RGB color pixels with a boolean mask. */
static void write_rgb_span_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
const void *values,
const GLubyte *mask)
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPDWORD lpdw;
(void) ctx;
y=FLIP(y);
lpdw = ((LPDWORD)(pwfb->pbPixels + pwfb->ScanWidth * y)) + x;
if (mask) {
for (i=0; i<n; i++)
if (mask[i])
lpdw[i] = BGR32(rgb[i][RCOMP], rgb[i][GCOMP],
rgb[i][BCOMP]);
}
else {
for (i=0; i<n; i++)
*lpdw++ = BGR32(rgb[i][RCOMP], rgb[i][GCOMP],
rgb[i][BCOMP]);
}
}
/* Write an array of RGBA pixels with a boolean mask. */
static void write_rgba_pixels_32(struct gl_context *ctx,
struct gl_renderbuffer *rb,
@@ -794,40 +738,6 @@ static void write_rgba_span_24(struct gl_context *ctx,
}
/* Write a horizontal span of RGB color pixels with a boolean mask. */
static void write_rgb_span_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
const void *values,
const GLubyte *mask)
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPBYTE lpb;
(void) ctx;
y=FLIP(y);
lpb = ((LPBYTE)(pwfb->pbPixels + pwfb->ScanWidth * y)) + (3 * x);
if (mask) {
for (i=0; i<n; i++)
if (mask[i]) {
lpb[3*i] = rgb[i][BCOMP];
lpb[3*i+1] = rgb[i][GCOMP];
lpb[3*i+2] = rgb[i][RCOMP];
}
}
else {
for (i=0; i<n; i++) {
*lpb++ = rgb[i][BCOMP];
*lpb++ = rgb[i][GCOMP];
*lpb++ = rgb[i][RCOMP];
}
}
}
/* Write an array of RGBA pixels with a boolean mask. */
static void write_rgba_pixels_24(struct gl_context *ctx,
struct gl_renderbuffer *rb,
@@ -929,35 +839,6 @@ static void write_rgba_span_16(struct gl_context *ctx,
}
/* Write a horizontal span of RGB color pixels with a boolean mask. */
static void write_rgb_span_16(struct gl_context *ctx,
struct gl_renderbuffer *rb,
GLuint n, GLint x, GLint y,
const void *values,
const GLubyte *mask)
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3])values;
WMesaFramebuffer pwfb = wmesa_framebuffer(ctx->DrawBuffer);
GLuint i;
LPWORD lpw;
(void) ctx;
y=FLIP(y);
lpw = ((LPWORD)(pwfb->pbPixels + pwfb->ScanWidth * y)) + x;
if (mask) {
for (i=0; i<n; i++)
if (mask[i])
lpw[i] = BGR16(rgb[i][RCOMP], rgb[i][GCOMP],
rgb[i][BCOMP]);
}
else {
for (i=0; i<n; i++)
*lpw++ = BGR16(rgb[i][RCOMP], rgb[i][GCOMP],
rgb[i][BCOMP]);
}
}
/* Write an array of RGBA pixels with a boolean mask. */
static void write_rgba_pixels_16(struct gl_context *ctx,
@@ -1073,7 +954,6 @@ wmesa_set_renderbuffer_funcs(struct gl_renderbuffer *rb, int pixelformat,
switch(pixelformat) {
case PF_5R6G5B:
rb->PutRow = write_rgba_span_16;
rb->PutRowRGB = write_rgb_span_16;
rb->PutValues = write_rgba_pixels_16;
rb->GetRow = read_rgba_span_16;
rb->GetValues = read_rgba_pixels_16;
@@ -1082,7 +962,6 @@ wmesa_set_renderbuffer_funcs(struct gl_renderbuffer *rb, int pixelformat,
if (cColorBits == 24)
{
rb->PutRow = write_rgba_span_24;
rb->PutRowRGB = write_rgb_span_24;
rb->PutValues = write_rgba_pixels_24;
rb->GetRow = read_rgba_span_24;
rb->GetValues = read_rgba_pixels_24;
@@ -1090,7 +969,6 @@ wmesa_set_renderbuffer_funcs(struct gl_renderbuffer *rb, int pixelformat,
else
{
rb->PutRow = write_rgba_span_32;
rb->PutRowRGB = write_rgb_span_32;
rb->PutValues = write_rgba_pixels_32;
rb->GetRow = read_rgba_span_32;
rb->GetValues = read_rgba_pixels_32;
@@ -1103,7 +981,6 @@ wmesa_set_renderbuffer_funcs(struct gl_renderbuffer *rb, int pixelformat,
else {
/* front buffer (actual Windows window) */
rb->PutRow = write_rgba_span_front;
rb->PutRowRGB = write_rgb_span_front;
rb->PutValues = write_rgba_pixels_front;
rb->GetRow = read_rgba_span_front;
rb->GetValues = read_rgba_pixels_front;

View File

@@ -205,41 +205,6 @@ static void put_row_TRUECOLOR_pixmap( PUT_ROW_ARGS )
}
/*
* Write a span of PF_TRUECOLOR pixels to a pixmap.
*/
static void put_row_rgb_TRUECOLOR_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
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]) {
unsigned long p;
PACK_TRUECOLOR( p, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
XMesaSetForeground( dpy, gc, p );
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
/* draw all pixels */
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
for (i=0;i<n;i++) {
unsigned long p;
PACK_TRUECOLOR( p, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
XMesaPutPixel( rowimg, i, 0, p );
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_TRUEDITHER pixels to a pixmap.
*/
@@ -275,41 +240,6 @@ static void put_row_TRUEDITHER_pixmap( PUT_ROW_ARGS )
}
/*
* Write a span of PF_TRUEDITHER pixels to a pixmap (no alpha).
*/
static void put_row_rgb_TRUEDITHER_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
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]) {
unsigned long p;
PACK_TRUEDITHER(p, x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
XMesaSetForeground( dpy, gc, p );
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
for (i=0;i<n;i++) {
unsigned long p;
PACK_TRUEDITHER(p, x+i, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
XMesaPutPixel( rowimg, i, 0, p );
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_8A8B8G8R pixels to a pixmap.
*/
@@ -344,39 +274,6 @@ static void put_row_8A8B8G8R_pixmap( PUT_ROW_ARGS )
}
/*
* Write a span of PF_8A8B8G8R pixels to a pixmap (no alpha).
*/
static void put_row_rgb_8A8B8G8R_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
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]) {
XMesaSetForeground( dpy, gc,
PACK_8B8G8R(rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]) );
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
/* draw all pixels */
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
register GLuint *ptr4 = (GLuint *) rowimg->data;
for (i=0;i<n;i++) {
*ptr4++ = PACK_8B8G8R(rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_8A8R8G8B pixels to a pixmap.
*/
@@ -411,38 +308,6 @@ static void put_row_8A8R8G8B_pixmap( PUT_ROW_ARGS )
}
/*
* Write a span of PF_8A8R8G8B pixels to a pixmap (no alpha).
*/
static void put_row_rgb_8A8R8G8B_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
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]) {
XMesaSetForeground( dpy, gc,
PACK_8R8G8B(rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]) );
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
/* draw all pixels */
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
register GLuint *ptr4 = (GLuint *) rowimg->data;
for (i=0;i<n;i++) {
*ptr4++ = PACK_8R8G8B(rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_8R8G8B pixels to a pixmap.
@@ -591,138 +456,6 @@ static void put_row_8R8G8B24_pixmap( PUT_ROW_ARGS )
}
/*
* Write a span of PF_8R8G8B pixels to a pixmap (no alpha).
*/
static void put_row_rgb_8R8G8B_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
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]) {
XMesaSetForeground( dpy, gc, PACK_8R8G8B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] ));
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
/* draw all pixels */
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
register GLuint *ptr4 = (GLuint *) rowimg->data;
for (i=0;i<n;i++) {
*ptr4++ = PACK_8R8G8B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_8R8G8B24 pixels to a pixmap (no alpha).
*/
static void put_row_rgb_8R8G8B24_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
XMesaDrawable buffer = xrb->drawable;
XMesaGC gc = XMESA_BUFFER(ctx->DrawBuffer)->gc;
y = YFLIP(xrb, y);
if (mask) {
register GLuint i;
for (i=0;i<n;i++,x++) {
if (mask[i]) {
XMesaSetForeground( dpy, gc,
PACK_8R8G8B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] ));
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
/* draw all pixels */
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
register GLuint *ptr4 = (GLuint *) rowimg->data;
register GLuint pixel;
static const GLuint shift[4] = {0, 8, 16, 24};
unsigned w = n;
register GLuint i = 0;
while (w > 3) {
pixel = 0;
pixel |= rgb[i][BCOMP]/* << shift[0]*/;
pixel |= rgb[i][GCOMP] << shift[1];
pixel |= rgb[i++][RCOMP] << shift[2];
pixel |= rgb[i][BCOMP] <<shift[3];
*ptr4++ = pixel;
pixel = 0;
pixel |= rgb[i][GCOMP]/* << shift[0]*/;
pixel |= rgb[i++][RCOMP] << shift[1];
pixel |= rgb[i][BCOMP] << shift[2];
pixel |= rgb[i][GCOMP] << shift[3];
*ptr4++ = pixel;
pixel = 0;
pixel |= rgb[i++][RCOMP]/* << shift[0]*/;
pixel |= rgb[i][BCOMP] << shift[1];
pixel |= rgb[i][GCOMP] << shift[2];
pixel |= rgb[i++][RCOMP] << shift[3];
*ptr4++ = pixel;
w -= 4;
}
switch (w) {
case 3:
pixel = 0;
pixel |= rgb[i][BCOMP]/* << shift[0]*/;
pixel |= rgb[i][GCOMP] << shift[1];
pixel |= rgb[i++][RCOMP] << shift[2];
pixel |= rgb[i][BCOMP] << shift[3];
*ptr4++ = pixel;
pixel = 0;
pixel |= rgb[i][GCOMP]/* << shift[0]*/;
pixel |= rgb[i++][RCOMP] << shift[1];
pixel |= rgb[i][BCOMP] << shift[2];
pixel |= rgb[i][GCOMP] << shift[3];
*ptr4++ = pixel;
pixel = *ptr4;
pixel &= 0xffffff00;
pixel |= rgb[i++][RCOMP]/* << shift[0]*/;
*ptr4++ = pixel;
break;
case 2:
pixel = 0;
pixel |= rgb[i][BCOMP]/* << shift[0]*/;
pixel |= rgb[i][GCOMP] << shift[1];
pixel |= rgb[i++][RCOMP] << shift[2];
pixel |= rgb[i][BCOMP] << shift[3];
*ptr4++ = pixel;
pixel = *ptr4;
pixel &= 0xffff0000;
pixel |= rgb[i][GCOMP]/* << shift[0]*/;
pixel |= rgb[i++][RCOMP] << shift[1];
*ptr4++ = pixel;
break;
case 1:
pixel = *ptr4;
pixel &= 0xff000000;
pixel |= rgb[i][BCOMP]/* << shift[0]*/;
pixel |= rgb[i][GCOMP] << shift[1];
pixel |= rgb[i++][RCOMP] << shift[2];
*ptr4++ = pixel;
break;
case 0:
break;
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_5R6G5B pixels to a pixmap.
@@ -792,74 +525,6 @@ static void put_row_DITHER_5R6G5B_pixmap( PUT_ROW_ARGS )
}
/*
* Write a span of PF_5R6G5B pixels to a pixmap (no alpha).
*/
static void put_row_rgb_5R6G5B_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
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]) {
XMesaSetForeground( dpy, gc, PACK_5R6G5B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] ));
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
/* draw all pixels */
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
register GLushort *ptr2 = (GLushort *) rowimg->data;
for (i=0;i<n;i++) {
ptr2[i] = PACK_5R6G5B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_DITHER_5R6G5B pixels to a pixmap (no alpha).
*/
static void put_row_rgb_DITHER_5R6G5B_pixmap( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaDisplay *dpy = xmesa->xm_visual->display;
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]) {
unsigned long p;
PACK_TRUEDITHER(p, x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
XMesaSetForeground( dpy, gc, p );
XMesaDrawPoint( dpy, buffer, gc, (int) x, (int) y );
}
}
}
else {
/* draw all pixels */
XMesaImage *rowimg = XMESA_BUFFER(ctx->DrawBuffer)->rowimage;
register GLushort *ptr2 = (GLushort *) rowimg->data;
for (i=0;i<n;i++) {
PACK_TRUEDITHER( ptr2[i], x+i, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
}
XMesaPutImage( dpy, buffer, gc, rowimg, 0, 0, x, y, n, 1 );
}
}
/*
* Write a span of PF_TRUECOLOR pixels to an XImage.
*/
@@ -891,37 +556,6 @@ static void put_row_TRUECOLOR_ximage( PUT_ROW_ARGS )
}
/*
* Write a span of PF_TRUECOLOR pixels to an XImage (no alpha).
*/
static void put_row_rgb_TRUECOLOR_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
if (mask) {
for (i=0;i<n;i++,x++) {
if (mask[i]) {
unsigned long p;
PACK_TRUECOLOR( p, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
XMesaPutPixel( img, x, y, p );
}
}
}
else {
/* draw all pixels */
for (i=0;i<n;i++,x++) {
unsigned long p;
PACK_TRUECOLOR( p, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
XMesaPutPixel( img, x, y, p );
}
}
}
/*
* Write a span of PF_TRUEDITHER pixels to an XImage.
*/
@@ -953,37 +587,6 @@ static void put_row_TRUEDITHER_ximage( PUT_ROW_ARGS )
}
/*
* Write a span of PF_TRUEDITHER pixels to an XImage (no alpha).
*/
static void put_row_rgb_TRUEDITHER_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
GET_XRB(xrb);
XMesaImage *img = xrb->ximage;
register GLuint i;
y = YFLIP(xrb, y);
if (mask) {
for (i=0;i<n;i++,x++) {
if (mask[i]) {
unsigned long p;
PACK_TRUEDITHER(p, x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
XMesaPutPixel( img, x, y, p );
}
}
}
else {
/* draw all pixels */
for (i=0;i<n;i++,x++) {
unsigned long p;
PACK_TRUEDITHER(p, x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
XMesaPutPixel( img, x, y, p );
}
}
}
/*
* Write a span of PF_8A8B8G8R-format pixels to an ximage.
*/
@@ -1010,30 +613,6 @@ static void put_row_8A8B8G8R_ximage( PUT_ROW_ARGS )
}
/*
* Write a span of PF_8A8B8G8R-format pixels to an ximage (no alpha).
*/
static void put_row_rgb_8A8B8G8R_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
for (i=0;i<n;i++) {
if (mask[i]) {
ptr[i] = PACK_8A8B8G8R( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP], 255 );
}
}
}
else {
/* draw all pixels */
for (i=0;i<n;i++) {
ptr[i] = PACK_8A8B8G8R( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP], 255 );
}
}
}
/*
* Write a span of PF_8A8R8G8B-format pixels to an ximage.
*/
@@ -1059,31 +638,6 @@ static void put_row_8A8R8G8B_ximage( PUT_ROW_ARGS )
}
/*
* Write a span of PF_8A8R8G8B-format pixels to an ximage (no alpha).
*/
static void put_row_rgb_8A8R8G8B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
for (i=0;i<n;i++) {
if (mask[i]) {
ptr[i] = PACK_8A8R8G8B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP], 255 );
}
}
}
else {
/* draw all pixels */
for (i=0;i<n;i++) {
ptr[i] = PACK_8A8R8G8B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP], 255 );
}
}
}
/*
* Write a span of PF_8R8G8B-format pixels to an ximage.
*/
@@ -1259,63 +813,6 @@ static void put_row_8R8G8B24_ximage( PUT_ROW_ARGS )
}
/*
* Write a span of PF_8R8G8B-format pixels to an ximage (no alpha).
*/
static void put_row_rgb_8R8G8B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
GET_XRB(xrb);
register GLuint i;
register GLuint *ptr = PIXEL_ADDR4(xrb, x, y);
if (mask) {
for (i=0;i<n;i++) {
if (mask[i]) {
ptr[i] = PACK_8R8G8B(rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
}
}
}
else {
/* draw all pixels */
for (i=0;i<n;i++) {
ptr[i] = PACK_8R8G8B(rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
}
}
}
/*
* Write a span of PF_8R8G8B24-format pixels to an ximage (no alpha).
*/
static void put_row_rgb_8R8G8B24_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
GET_XRB(xrb);
register GLuint i;
register GLubyte *ptr = (GLubyte *) PIXEL_ADDR3(xrb, x, y);
if (mask) {
for (i=0;i<n;i++) {
if (mask[i]) {
*ptr++ = rgb[i][BCOMP];
*ptr++ = rgb[i][GCOMP];
*ptr++ = rgb[i][RCOMP];
}
else {
ptr += 3;
}
}
}
else {
/* draw all pixels */
for (i=0;i<n;i++) {
*ptr++ = rgb[i][BCOMP];
*ptr++ = rgb[i][GCOMP];
*ptr++ = rgb[i][RCOMP];
}
}
}
/*
* Write a span of PF_5R6G5B-format pixels to an ximage.
*/
@@ -1398,88 +895,6 @@ static void put_row_DITHER_5R6G5B_ximage( PUT_ROW_ARGS )
}
/*
* Write a span of PF_5R6G5B-format pixels to an ximage (no alpha).
*/
static void put_row_rgb_5R6G5B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
GET_XRB(xrb);
register GLuint i;
register GLushort *ptr = PIXEL_ADDR2(xrb, x, y);
if (mask) {
for (i=0;i<n;i++) {
if (mask[i]) {
ptr[i] = PACK_5R6G5B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
}
}
}
else {
/* draw all pixels */
#if defined(__i386__) /* word stores don't have to be on 4-byte boundaries */
GLuint *ptr32 = (GLuint *) ptr;
GLuint extraPixel = (n & 1);
n -= extraPixel;
for (i = 0; i < n; i += 2) {
GLuint p0, p1;
p0 = PACK_5R6G5B(rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP]);
p1 = PACK_5R6G5B(rgb[i+1][RCOMP], rgb[i+1][GCOMP], rgb[i+1][BCOMP]);
*ptr32++ = (p1 << 16) | p0;
}
if (extraPixel) {
ptr[n] = PACK_5R6G5B(rgb[n][RCOMP], rgb[n][GCOMP], rgb[n][BCOMP]);
}
#else
for (i=0;i<n;i++) {
ptr[i] = PACK_5R6G5B( rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
}
#endif
}
}
/*
* Write a span of PF_DITHER_5R6G5B-format pixels to an ximage (no alpha).
*/
static void put_row_rgb_DITHER_5R6G5B_ximage( RGB_SPAN_ARGS )
{
const GLubyte (*rgb)[3] = (const GLubyte (*)[3]) values;
GET_XRB(xrb);
const XMesaContext xmesa = XMESA_CONTEXT(ctx);
register GLuint i;
register GLushort *ptr = PIXEL_ADDR2(xrb, x, y );
if (mask) {
for (i=0;i<n;i++,x++) {
if (mask[i]) {
PACK_TRUEDITHER( ptr[i], x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
}
}
}
else {
/* draw all pixels */
#if defined(__i386__) /* word stores don't have to be on 4-byte boundaries */
GLuint *ptr32 = (GLuint *) ptr;
GLuint extraPixel = (n & 1);
n -= extraPixel;
for (i = 0; i < n; i += 2, x += 2) {
GLuint p0, p1;
PACK_TRUEDITHER( p0, x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
PACK_TRUEDITHER( p1, x+1, y, rgb[i+1][RCOMP], rgb[i+1][GCOMP], rgb[i+1][BCOMP] );
*ptr32++ = (p1 << 16) | p0;
}
if (extraPixel) {
PACK_TRUEDITHER( ptr[n], x+n, y, rgb[n][RCOMP], rgb[n][GCOMP], rgb[n][BCOMP]);
}
#else
for (i=0;i<n;i++,x++) {
PACK_TRUEDITHER( ptr[i], x, y, rgb[i][RCOMP], rgb[i][GCOMP], rgb[i][BCOMP] );
}
#endif
}
}
/**********************************************************************/
/*** Write COLOR PIXEL functions ***/
/**********************************************************************/
@@ -2305,96 +1720,80 @@ xmesa_set_renderbuffer_funcs(struct xmesa_renderbuffer *xrb,
case PF_Truecolor:
if (pixmap) {
xrb->Base.PutRow = put_row_TRUECOLOR_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_TRUECOLOR_pixmap;
xrb->Base.PutValues = put_values_TRUECOLOR_pixmap;
}
else {
xrb->Base.PutRow = put_row_TRUECOLOR_ximage;
xrb->Base.PutRowRGB = put_row_rgb_TRUECOLOR_ximage;
xrb->Base.PutValues = put_values_TRUECOLOR_ximage;
}
break;
case PF_Dither_True:
if (pixmap) {
xrb->Base.PutRow = put_row_TRUEDITHER_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_TRUEDITHER_pixmap;
xrb->Base.PutValues = put_values_TRUEDITHER_pixmap;
}
else {
xrb->Base.PutRow = put_row_TRUEDITHER_ximage;
xrb->Base.PutRowRGB = put_row_rgb_TRUEDITHER_ximage;
xrb->Base.PutValues = put_values_TRUEDITHER_ximage;
}
break;
case PF_8A8B8G8R:
if (pixmap) {
xrb->Base.PutRow = put_row_8A8B8G8R_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_8A8B8G8R_pixmap;
xrb->Base.PutValues = put_values_8A8B8G8R_pixmap;
}
else {
xrb->Base.PutRow = put_row_8A8B8G8R_ximage;
xrb->Base.PutRowRGB = put_row_rgb_8A8B8G8R_ximage;
xrb->Base.PutValues = put_values_8A8B8G8R_ximage;
}
break;
case PF_8A8R8G8B:
if (pixmap) {
xrb->Base.PutRow = put_row_8A8R8G8B_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_8A8R8G8B_pixmap;
xrb->Base.PutValues = put_values_8A8R8G8B_pixmap;
}
else {
xrb->Base.PutRow = put_row_8A8R8G8B_ximage;
xrb->Base.PutRowRGB = put_row_rgb_8A8R8G8B_ximage;
xrb->Base.PutValues = put_values_8A8R8G8B_ximage;
}
break;
case PF_8R8G8B:
if (pixmap) {
xrb->Base.PutRow = put_row_8R8G8B_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_8R8G8B_pixmap;
xrb->Base.PutValues = put_values_8R8G8B_pixmap;
}
else {
xrb->Base.PutRow = put_row_8R8G8B_ximage;
xrb->Base.PutRowRGB = put_row_rgb_8R8G8B_ximage;
xrb->Base.PutValues = put_values_8R8G8B_ximage;
}
break;
case PF_8R8G8B24:
if (pixmap) {
xrb->Base.PutRow = put_row_8R8G8B24_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_8R8G8B24_pixmap;
xrb->Base.PutValues = put_values_8R8G8B24_pixmap;
}
else {
xrb->Base.PutRow = put_row_8R8G8B24_ximage;
xrb->Base.PutRowRGB = put_row_rgb_8R8G8B24_ximage;
xrb->Base.PutValues = put_values_8R8G8B24_ximage;
}
break;
case PF_5R6G5B:
if (pixmap) {
xrb->Base.PutRow = put_row_5R6G5B_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_5R6G5B_pixmap;
xrb->Base.PutValues = put_values_5R6G5B_pixmap;
}
else {
xrb->Base.PutRow = put_row_5R6G5B_ximage;
xrb->Base.PutRowRGB = put_row_rgb_5R6G5B_ximage;
xrb->Base.PutValues = put_values_5R6G5B_ximage;
}
break;
case PF_Dither_5R6G5B:
if (pixmap) {
xrb->Base.PutRow = put_row_DITHER_5R6G5B_pixmap;
xrb->Base.PutRowRGB = put_row_rgb_DITHER_5R6G5B_pixmap;
xrb->Base.PutValues = put_values_DITHER_5R6G5B_pixmap;
}
else {
xrb->Base.PutRow = put_row_DITHER_5R6G5B_ximage;
xrb->Base.PutRowRGB = put_row_rgb_DITHER_5R6G5B_ximage;
xrb->Base.PutValues = put_values_DITHER_5R6G5B_ximage;
}
break;

View File

@@ -2538,15 +2538,6 @@ struct gl_renderbuffer
void (*PutRow)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
GLint x, GLint y, const void *values, const GLubyte *mask);
/* Put/Write a row of RGB values. This is a special-case routine that's
* only used for RGBA renderbuffers when the source data is GL_RGB. That's
* a common case for glDrawPixels and some triangle routines.
* The values will be of format GL_RGB and type DataType.
*/
void (*PutRowRGB)(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
GLint x, GLint y, const void *values, const GLubyte *mask);
/* Put/Write values at arbitrary locations.
* The values will be of format _BaseFormat and type DataType.
*/

View File

@@ -78,7 +78,6 @@ _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name)
rb->GetRow = NULL;
rb->GetValues = NULL;
rb->PutRow = NULL;
rb->PutRowRGB = NULL;
rb->PutValues = NULL;
}

View File

@@ -303,7 +303,6 @@ new_z24_renderbuffer_wrapper(struct gl_context *ctx,
z24rb->GetRow = get_row_z24;
z24rb->GetValues = get_values_z24;
z24rb->PutRow = put_row_z24;
z24rb->PutRowRGB = NULL;
z24rb->PutValues = put_values_z24;
return z24rb;
@@ -457,7 +456,6 @@ new_z32f_renderbuffer_wrapper(struct gl_context *ctx,
z32frb->GetRow = get_row_z32f;
z32frb->GetValues = get_values_z32f;
z32frb->PutRow = put_row_z32f;
z32frb->PutRowRGB = NULL;
z32frb->PutValues = put_values_z32f;
return z32frb;
@@ -709,7 +707,6 @@ new_s8_renderbuffer_wrapper(struct gl_context *ctx, struct gl_renderbuffer *dsrb
s8rb->GetRow = get_row_s8;
s8rb->GetValues = get_values_s8;
s8rb->PutRow = put_row_s8;
s8rb->PutRowRGB = NULL;
s8rb->PutValues = put_values_s8;
return s8rb;

View File

@@ -430,26 +430,6 @@ put_row_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
}
static void
put_row_rgb_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
GLint x, GLint y, const void *values, const GLubyte *mask)
{
/* note: incoming values are RGB+A! */
const GLubyte *src = (const GLubyte *) values;
GLubyte *dst = (GLubyte *) rb->Data + 3 * (y * rb->RowStride + x);
GLuint i;
ASSERT(rb->Format == MESA_FORMAT_RGB888);
ASSERT(rb->DataType == GL_UNSIGNED_BYTE);
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
dst[i * 3 + 0] = src[i * 3 + 0];
dst[i * 3 + 1] = src[i * 3 + 1];
dst[i * 3 + 2] = src[i * 3 + 2];
}
}
}
static void
put_values_ubyte3(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
const GLint x[], const GLint y[], const void *values,
@@ -517,28 +497,6 @@ put_row_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
}
static void
put_row_rgb_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
GLint x, GLint y, const void *values, const GLubyte *mask)
{
/* Store RGB values in RGBA buffer */
const GLubyte *src = (const GLubyte *) values;
GLubyte *dst = (GLubyte *) rb->Data + 4 * (y * rb->RowStride + x);
GLuint i;
ASSERT(rb->DataType == GL_UNSIGNED_BYTE);
ASSERT(rb->Format == MESA_FORMAT_RGBA8888 ||
rb->Format == MESA_FORMAT_RGBA8888_REV);
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
dst[i * 4 + 0] = src[i * 3 + 0];
dst[i * 4 + 1] = src[i * 3 + 1];
dst[i * 4 + 2] = src[i * 3 + 2];
dst[i * 4 + 3] = 0xff;
}
}
}
static void
put_values_ubyte4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
const GLint x[], const GLint y[], const void *values,
@@ -603,31 +561,6 @@ put_row_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count
}
static void
put_row_rgb_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
GLint x, GLint y, const void *values, const GLubyte *mask)
{
/* Put RGB values in RGBA buffer */
const GLushort *src = (const GLushort *) values;
GLushort *dst = (GLushort *) rb->Data + 4 * (y * rb->RowStride + x);
ASSERT(rb->DataType == GL_UNSIGNED_SHORT || rb->DataType == GL_SHORT);
if (mask) {
GLuint i;
for (i = 0; i < count; i++) {
if (mask[i]) {
dst[i * 4 + 0] = src[i * 3 + 0];
dst[i * 4 + 1] = src[i * 3 + 1];
dst[i * 4 + 2] = src[i * 3 + 2];
dst[i * 4 + 3] = 0xffff;
}
}
}
else {
memcpy(dst, src, 4 * count * sizeof(GLushort));
}
}
static void
put_values_ushort4(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
const GLint x[], const GLint y[], const void *values,
@@ -1018,7 +951,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetRow = get_row_ubyte3;
rb->GetValues = get_values_ubyte3;
rb->PutRow = put_row_ubyte3;
rb->PutRowRGB = put_row_rgb_ubyte3;
rb->PutValues = put_values_ubyte3;
break;
@@ -1027,7 +959,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->DataType = GL_UNSIGNED_BYTE;
rb->GetValues = get_values_ubyte4;
rb->PutRow = put_row_ubyte4;
rb->PutRowRGB = put_row_rgb_ubyte4;
rb->PutValues = put_values_ubyte4;
break;
@@ -1036,7 +967,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetValues = get_values_r8;
rb->GetRow = get_row_r8;
rb->PutRow = put_row_generic;
rb->PutRowRGB = put_row_generic;
rb->PutValues = put_values_generic;
break;
@@ -1045,7 +975,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetValues = get_values_rg88;
rb->GetRow = get_row_rg88;
rb->PutRow = put_row_generic;
rb->PutRowRGB = put_row_generic;
rb->PutValues = put_values_generic;
break;
@@ -1054,7 +983,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetValues = get_values_r16;
rb->GetRow = get_row_r16;
rb->PutRow = put_row_generic;
rb->PutRowRGB = put_row_generic;
rb->PutValues = put_values_generic;
break;
@@ -1063,7 +991,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetValues = get_values_rg1616;
rb->GetRow = get_row_rg1616;
rb->PutRow = put_row_generic;
rb->PutRowRGB = put_row_generic;
rb->PutValues = put_values_generic;
break;
@@ -1071,7 +998,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->DataType = GL_SHORT;
rb->GetValues = get_values_ushort4;
rb->PutRow = put_row_ushort4;
rb->PutRowRGB = put_row_rgb_ushort4;
rb->PutValues = put_values_ushort4;
break;
@@ -1079,7 +1005,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->DataType = GL_UNSIGNED_BYTE;
rb->GetValues = get_values_ubyte;
rb->PutRow = put_row_ubyte;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_ubyte;
break;
@@ -1087,7 +1012,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->DataType = GL_UNSIGNED_SHORT;
rb->GetValues = get_values_ushort;
rb->PutRow = put_row_ushort;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_ushort;
break;
@@ -1097,7 +1021,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->DataType = GL_UNSIGNED_INT;
rb->GetValues = get_values_uint;
rb->PutRow = put_row_uint;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_uint;
break;
@@ -1106,7 +1029,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->DataType = GL_UNSIGNED_INT_24_8_EXT;
rb->GetValues = get_values_uint;
rb->PutRow = put_row_uint;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_uint;
break;
@@ -1114,7 +1036,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetRow = get_row_generic;
rb->GetValues = get_values_generic;
rb->PutRow = put_row_generic;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_generic;
break;
@@ -1122,7 +1043,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetRow = get_row_i_float32;
rb->GetValues = get_values_i_float32;
rb->PutRow = put_row_generic;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_generic;
break;
@@ -1130,7 +1050,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetRow = get_row_l_float32;
rb->GetValues = get_values_l_float32;
rb->PutRow = put_row_generic;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_generic;
break;
@@ -1138,7 +1057,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetRow = get_row_a_float32;
rb->GetValues = get_values_a_float32;
rb->PutRow = put_row_a_float32;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_a_float32;
break;
@@ -1146,7 +1064,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetRow = get_row_rg_float32;
rb->GetValues = get_values_rg_float32;
rb->PutRow = put_row_generic;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_generic;
break;
@@ -1154,7 +1071,6 @@ _swrast_set_renderbuffer_accessors(struct gl_renderbuffer *rb)
rb->GetRow = get_row_r_float32;
rb->GetValues = get_values_r_float32;
rb->PutRow = put_row_generic;
rb->PutRowRGB = NULL;
rb->PutValues = put_values_generic;
break;

View File

@@ -116,32 +116,6 @@ NAME(put_row)( struct gl_context *ctx, struct gl_renderbuffer *rb,
}
static void
NAME(put_row_rgb)( struct gl_context *ctx, struct gl_renderbuffer *rb,
GLuint count, GLint x, GLint y,
const void *values, const GLubyte mask[] )
{
#ifdef SPAN_VARS
SPAN_VARS
#endif
const RB_TYPE (*src)[3] = (const RB_TYPE (*)[3]) values;
GLuint i;
INIT_PIXEL_PTR(pixel, x, y);
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
#ifdef STORE_PIXEL_RGB
STORE_PIXEL_RGB(pixel, x + i, y, src[i]);
#else
STORE_PIXEL(pixel, x + i, y, src[i]);
#endif
}
INC_PIXEL_PTR(pixel);
}
(void) rb;
(void) ctx;
}
static void
NAME(put_values)( struct gl_context *ctx, struct gl_renderbuffer *rb,
GLuint count, const GLint x[], const GLint y[],

View File

@@ -235,67 +235,6 @@ texture_put_row(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count
}
}
/**
* Put row of RGB values into a renderbuffer that wraps a texture image.
*/
static void
texture_put_row_rgb(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
GLint x, GLint y, const void *values, const GLubyte *mask)
{
struct texture_renderbuffer *trb = texture_renderbuffer(rb);
const GLint z = trb->Zoffset;
GLuint i;
y += trb->Yoffset;
if (rb->DataType == CHAN_TYPE) {
const GLchan *rgb = (const GLchan *) values;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
trb->Store(trb->TexImage, x + i, y, z, rgb);
}
rgb += 3;
}
}
else if (rb->DataType == GL_UNSIGNED_SHORT) {
const GLushort *zValues = (const GLushort *) values;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
trb->Store(trb->TexImage, x + i, y, z, zValues + i);
}
}
}
else if (rb->DataType == GL_UNSIGNED_INT) {
const GLuint *zValues = (const GLuint *) values;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
trb->Store(trb->TexImage, x + i, y, z, zValues + i);
}
}
}
else if (rb->DataType == GL_UNSIGNED_INT_24_8_EXT) {
const GLuint *zValues = (const GLuint *) values;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
GLfloat flt = (GLfloat) ((zValues[i] >> 8) * (1.0 / 0xffffff));
trb->Store(trb->TexImage, x + i, y, z, &flt);
}
}
}
else if (rb->DataType == GL_UNSIGNED_INT_8_24_REV_MESA) {
const GLuint *zValues = (const GLuint *) values;
for (i = 0; i < count; i++) {
if (!mask || mask[i]) {
GLfloat flt = (GLfloat) ((zValues[i] & 0xffffff) * (1.0 / 0xffffff));
trb->Store(trb->TexImage, x + i, y, z, &flt);
}
}
}
else {
_mesa_problem(ctx, "invalid rb->DataType in texture_put_row");
}
}
static void
texture_put_values(struct gl_context *ctx, struct gl_renderbuffer *rb, GLuint count,
@@ -399,7 +338,6 @@ wrap_texture(struct gl_context *ctx, struct gl_renderbuffer_attachment *att)
trb->Base.GetRow = texture_get_row;
trb->Base.GetValues = texture_get_values;
trb->Base.PutRow = texture_put_row;
trb->Base.PutRowRGB = texture_put_row_rgb;
trb->Base.PutValues = texture_put_values;
/* update attachment point */