summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/glide/fxddspan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mesa/drivers/glide/fxddspan.c')
-rw-r--r--src/mesa/drivers/glide/fxddspan.c727
1 files changed, 370 insertions, 357 deletions
diff --git a/src/mesa/drivers/glide/fxddspan.c b/src/mesa/drivers/glide/fxddspan.c
index fceeb0e60a..e02e792dea 100644
--- a/src/mesa/drivers/glide/fxddspan.c
+++ b/src/mesa/drivers/glide/fxddspan.c
@@ -63,7 +63,7 @@
#endif
-#if !defined(FXMESA_USE_ARGB)
+#if !defined(FXMESA_USE_ARGB)
@@ -101,33 +101,28 @@
( ((unsigned int)(c[RCOMP]))<<16 ) | \
( ((unsigned int)(c[GCOMP]))<<8 ) | \
( (unsigned int)(c[BCOMP])) )
-
-inline void LFB_WRITE_SPAN_MESA(GrBuffer_t dst_buffer,
- FxU32 dst_x,
- FxU32 dst_y,
- FxU32 src_width,
- FxI32 src_stride,
- void *src_data )
+
+inline void
+LFB_WRITE_SPAN_MESA(GrBuffer_t dst_buffer,
+ FxU32 dst_x,
+ FxU32 dst_y,
+ FxU32 src_width, FxI32 src_stride, void *src_data)
{
/* Covert to ARGB */
- GLubyte (*rgba)[4] = src_data;
+ GLubyte(*rgba)[4] = src_data;
GLuint argb[MAX_WIDTH];
int i;
-
- for (i = 0; i < src_width; i++)
- {
+
+ for (i = 0; i < src_width; i++) {
argb[i] = MESACOLOR_TO_ARGB(rgba[i]);
}
- writeRegionClipped( /*fxMesa,*/ NULL, dst_buffer,
- dst_x,
- dst_y,
- GR_LFB_SRC_FMT_8888,
- src_width,
- 1,
- src_stride,
- (void*)argb);
+ writeRegionClipped( /*fxMesa, */ NULL, dst_buffer,
+ dst_x,
+ dst_y,
+ GR_LFB_SRC_FMT_8888,
+ src_width, 1, src_stride, (void *) argb);
}
-
+
#endif /* !defined(FXMESA_USE_RGBA) */
@@ -136,162 +131,178 @@ inline void LFB_WRITE_SPAN_MESA(GrBuffer_t dst_buffer,
/************************************************************************/
-static void fxDDWriteRGBASpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y,
- const GLubyte rgba[][4], const GLubyte mask[])
+static void
+fxDDWriteRGBASpan(const GLcontext * ctx,
+ GLuint n, GLint x, GLint y,
+ const GLubyte rgba[][4], const GLubyte mask[])
{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteRGBASpan(...)\n");
- }
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLuint i;
+ GLint bottom = fxMesa->height - 1;
- if (mask) {
- int span=0;
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDWriteRGBASpan(...)\n");
+ }
- for (i=0;i<n;i++) {
- if (mask[i]) {
- ++span;
- } else {
- if (span > 0) {
- LFB_WRITE_SPAN_MESA( fxMesa->currentFB, x+i-span, bottom-y,
- /* GR_LFB_SRC_FMT_8888,*/ span, /*1,*/ 0, (void *) rgba[i-span] );
- span = 0;
- }
+ if (mask) {
+ int span = 0;
+
+ for (i = 0; i < n; i++) {
+ if (mask[i]) {
+ ++span;
+ }
+ else {
+ if (span > 0) {
+ LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x + i - span,
+ bottom - y,
+ /* GR_LFB_SRC_FMT_8888, */ span, /*1, */ 0,
+ (void *) rgba[i - span]);
+ span = 0;
+ }
+ }
}
- }
-
- if (span > 0)
- LFB_WRITE_SPAN_MESA( fxMesa->currentFB, x+n-span, bottom-y,
- /* GR_LFB_SRC_FMT_8888, */ span, /*1,*/ 0, (void *) rgba[n-span] );
- } else
- LFB_WRITE_SPAN_MESA( fxMesa->currentFB, x, bottom-y,/* GR_LFB_SRC_FMT_8888,*/
- n,/* 1,*/ 0, (void *) rgba );
+
+ if (span > 0)
+ LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x + n - span, bottom - y,
+ /* GR_LFB_SRC_FMT_8888, */ span, /*1, */ 0,
+ (void *) rgba[n - span]);
+ }
+ else
+ LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x, bottom - y, /* GR_LFB_SRC_FMT_8888, */
+ n, /* 1, */ 0, (void *) rgba);
}
-static void fxDDWriteRGBSpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y,
- const GLubyte rgb[][3], const GLubyte mask[])
+static void
+fxDDWriteRGBSpan(const GLcontext * ctx,
+ GLuint n, GLint x, GLint y,
+ const GLubyte rgb[][3], const GLubyte mask[])
{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
- GLubyte rgba[MAX_WIDTH][4];
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLuint i;
+ GLint bottom = fxMesa->height - 1;
+ GLubyte rgba[MAX_WIDTH][4];
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteRGBSpan()\n");
- }
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDWriteRGBSpan()\n");
+ }
- if (mask) {
- int span=0;
+ if (mask) {
+ int span = 0;
+
+ for (i = 0; i < n; i++) {
+ if (mask[i]) {
+ rgba[span][RCOMP] = rgb[i][0];
+ rgba[span][GCOMP] = rgb[i][1];
+ rgba[span][BCOMP] = rgb[i][2];
+ rgba[span][ACOMP] = 255;
+ ++span;
+ }
+ else {
+ if (span > 0) {
+ LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x + i - span,
+ bottom - y,
+ /*GR_LFB_SRC_FMT_8888, */ span, /* 1, */ 0,
+ (void *) rgba);
+ span = 0;
+ }
+ }
+ }
- for (i=0;i<n;i++) {
- if (mask[i]) {
- rgba[span][RCOMP] = rgb[i][0];
- rgba[span][GCOMP] = rgb[i][1];
- rgba[span][BCOMP] = rgb[i][2];
- rgba[span][ACOMP] = 255;
- ++span;
- } else {
- if (span > 0) {
- LFB_WRITE_SPAN_MESA( fxMesa->currentFB, x+i-span, bottom-y,
- /*GR_LFB_SRC_FMT_8888,*/ span,/* 1,*/ 0, (void *) rgba );
- span = 0;
- }
+ if (span > 0)
+ LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x + n - span, bottom - y,
+ /*GR_LFB_SRC_FMT_8888, */ span, /* 1, */ 0,
+ (void *) rgba);
+ }
+ else {
+ for (i = 0; i < n; i++) {
+ rgba[i][RCOMP] = rgb[i][0];
+ rgba[i][GCOMP] = rgb[i][1];
+ rgba[i][BCOMP] = rgb[i][2];
+ rgba[i][ACOMP] = 255;
}
- }
-
- if (span > 0)
- LFB_WRITE_SPAN_MESA( fxMesa->currentFB, x+n-span, bottom-y,
- /*GR_LFB_SRC_FMT_8888,*/ span,/* 1,*/ 0, (void *) rgba );
- } else {
- for (i=0;i<n;i++) {
- rgba[i][RCOMP]=rgb[i][0];
- rgba[i][GCOMP]=rgb[i][1];
- rgba[i][BCOMP]=rgb[i][2];
- rgba[i][ACOMP]=255;
- }
-
- LFB_WRITE_SPAN_MESA( fxMesa->currentFB, x, bottom-y,/* GR_LFB_SRC_FMT_8888,*/
- n,/* 1,*/ 0, (void *) rgba );
- }
+
+ LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x, bottom - y, /* GR_LFB_SRC_FMT_8888, */
+ n, /* 1, */ 0, (void *) rgba);
+ }
}
-static void fxDDWriteMonoRGBASpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y,
- const GLchan color[4], const GLubyte mask[])
+static void
+fxDDWriteMonoRGBASpan(const GLcontext * ctx,
+ GLuint n, GLint x, GLint y,
+ const GLchan color[4], const GLubyte mask[])
{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
- GLuint data[MAX_WIDTH];
- GrColor_t gColor = FXCOLOR4(color);
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteMonoRGBASpan(...)\n");
- }
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLuint i;
+ GLint bottom = fxMesa->height - 1;
+ GLuint data[MAX_WIDTH];
+ GrColor_t gColor = FXCOLOR4(color);
+
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDWriteMonoRGBASpan(...)\n");
+ }
- if (mask) {
- int span=0;
+ if (mask) {
+ int span = 0;
+
+ for (i = 0; i < n; i++) {
+ if (mask[i]) {
+ data[span] = (GLuint) gColor;
+ ++span;
+ }
+ else {
+ if (span > 0) {
+ writeRegionClipped(fxMesa, fxMesa->currentFB, x + i - span,
+ bottom - y, GR_LFB_SRC_FMT_8888, span, 1, 0,
+ (void *) data);
+ span = 0;
+ }
+ }
+ }
- for (i=0;i<n;i++) {
- if (mask[i]) {
- data[span] = (GLuint) gColor;
- ++span;
- } else {
- if (span > 0) {
- writeRegionClipped(fxMesa, fxMesa->currentFB, x+i-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0,
- (void *) data );
- span = 0;
- }
+ if (span > 0)
+ writeRegionClipped(fxMesa, fxMesa->currentFB, x + n - span,
+ bottom - y, GR_LFB_SRC_FMT_8888, span, 1, 0,
+ (void *) data);
+ }
+ else {
+ for (i = 0; i < n; i++) {
+ data[i] = (GLuint) gColor;
}
- }
-
- if (span > 0)
- writeRegionClipped(fxMesa, fxMesa->currentFB, x+n-span, bottom-y,
- GR_LFB_SRC_FMT_8888, span, 1, 0,
- (void *) data );
- } else {
- for (i=0;i<n;i++) {
- data[i]=(GLuint) gColor;
- }
-
- writeRegionClipped(fxMesa, fxMesa->currentFB, x, bottom-y, GR_LFB_SRC_FMT_8888,
- n, 1, 0, (void *) data );
- }
+
+ writeRegionClipped(fxMesa, fxMesa->currentFB, x, bottom - y,
+ GR_LFB_SRC_FMT_8888, n, 1, 0, (void *) data);
+ }
}
#if 0
-static void fxDDReadRGBASpan(const GLcontext *ctx,
- GLuint n, GLint x, GLint y, GLubyte rgba[][4])
+static void
+fxDDReadRGBASpan(const GLcontext * ctx,
+ GLuint n, GLint x, GLint y, GLubyte rgba[][4])
{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLushort data[MAX_WIDTH];
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- printf("read span %d, %d, %d\n", x,y,n);
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDReadRGBASpan(...)\n");
- }
-
- assert(n < MAX_WIDTH);
-
- FX_grLfbReadRegion( fxMesa->currentFB, x, bottom-y, n, 1, 0, data);
-
- for (i=0;i<n;i++) {
- GLushort pixel = data[i];
- rgba[i][RCOMP] = FX_PixelToR[pixel];
- rgba[i][GCOMP] = FX_PixelToG[pixel];
- rgba[i][BCOMP] = FX_PixelToB[pixel];
- rgba[i][ACOMP] = 255;
- }
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLushort data[MAX_WIDTH];
+ GLuint i;
+ GLint bottom = fxMesa->height - 1;
+
+ printf("read span %d, %d, %d\n", x, y, n);
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDReadRGBASpan(...)\n");
+ }
+
+ assert(n < MAX_WIDTH);
+
+ FX_grLfbReadRegion(fxMesa->currentFB, x, bottom - y, n, 1, 0, data);
+
+ for (i = 0; i < n; i++) {
+ GLushort pixel = data[i];
+ rgba[i][RCOMP] = FX_PixelToR[pixel];
+ rgba[i][GCOMP] = FX_PixelToG[pixel];
+ rgba[i][BCOMP] = FX_PixelToB[pixel];
+ rgba[i][ACOMP] = 255;
+ }
}
#endif
@@ -300,52 +311,49 @@ static void fxDDReadRGBASpan(const GLcontext *ctx,
* Read a span of 16-bit RGB pixels. Note, we don't worry about cliprects
* since OpenGL says obscured pixels have undefined values.
*/
-static void read_R5G6B5_span(const GLcontext *ctx,
- GLuint n, GLint x, GLint y, GLubyte rgba[][4])
+static void
+read_R5G6B5_span(const GLcontext * ctx,
+ GLuint n, GLint x, GLint y, GLubyte rgba[][4])
{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GrLfbInfo_t info;
- BEGIN_BOARD_LOCK();
- if (grLfbLock(GR_LFB_READ_ONLY,
- fxMesa->currentFB,
- GR_LFBWRITEMODE_ANY,
- GR_ORIGIN_UPPER_LEFT,
- FXFALSE,
- &info)) {
- const GLint winX = 0;
- const GLint winY = fxMesa->height - 1;
- const GLint srcStride = info.strideInBytes / 2; /* stride in GLushorts */
- const GLushort *data16 = (const GLushort *) info.lfbPtr
- + (winY - y) * srcStride
- + (winX + x);
- const GLuint *data32 = (const GLuint *) data16;
- GLuint i, j;
- GLuint extraPixel = (n & 1);
- n -= extraPixel;
- for (i = j = 0; i < n; i += 2, j++) {
- GLuint pixel = data32[j];
- GLuint pixel0 = pixel & 0xffff;
- GLuint pixel1 = pixel >> 16;
- rgba[i][RCOMP] = FX_PixelToR[pixel0];
- rgba[i][GCOMP] = FX_PixelToG[pixel0];
- rgba[i][BCOMP] = FX_PixelToB[pixel0];
- rgba[i][ACOMP] = 255;
- rgba[i+1][RCOMP] = FX_PixelToR[pixel1];
- rgba[i+1][GCOMP] = FX_PixelToG[pixel1];
- rgba[i+1][BCOMP] = FX_PixelToB[pixel1];
- rgba[i+1][ACOMP] = 255;
- }
- if (extraPixel) {
- GLushort pixel = data16[n];
- rgba[n][RCOMP] = FX_PixelToR[pixel];
- rgba[n][GCOMP] = FX_PixelToG[pixel];
- rgba[n][BCOMP] = FX_PixelToB[pixel];
- rgba[n][ACOMP] = 255;
- }
-
- grLfbUnlock(GR_LFB_READ_ONLY, fxMesa->currentFB);
- }
- END_BOARD_LOCK();
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GrLfbInfo_t info;
+ BEGIN_BOARD_LOCK();
+ if (grLfbLock(GR_LFB_READ_ONLY,
+ fxMesa->currentFB,
+ GR_LFBWRITEMODE_ANY, GR_ORIGIN_UPPER_LEFT, FXFALSE, &info)) {
+ const GLint winX = 0;
+ const GLint winY = fxMesa->height - 1;
+ const GLint srcStride = info.strideInBytes / 2; /* stride in GLushorts */
+ const GLushort *data16 = (const GLushort *) info.lfbPtr
+ + (winY - y) * srcStride + (winX + x);
+ const GLuint *data32 = (const GLuint *) data16;
+ GLuint i, j;
+ GLuint extraPixel = (n & 1);
+ n -= extraPixel;
+ for (i = j = 0; i < n; i += 2, j++) {
+ GLuint pixel = data32[j];
+ GLuint pixel0 = pixel & 0xffff;
+ GLuint pixel1 = pixel >> 16;
+ rgba[i][RCOMP] = FX_PixelToR[pixel0];
+ rgba[i][GCOMP] = FX_PixelToG[pixel0];
+ rgba[i][BCOMP] = FX_PixelToB[pixel0];
+ rgba[i][ACOMP] = 255;
+ rgba[i + 1][RCOMP] = FX_PixelToR[pixel1];
+ rgba[i + 1][GCOMP] = FX_PixelToG[pixel1];
+ rgba[i + 1][BCOMP] = FX_PixelToB[pixel1];
+ rgba[i + 1][ACOMP] = 255;
+ }
+ if (extraPixel) {
+ GLushort pixel = data16[n];
+ rgba[n][RCOMP] = FX_PixelToR[pixel];
+ rgba[n][GCOMP] = FX_PixelToG[pixel];
+ rgba[n][BCOMP] = FX_PixelToB[pixel];
+ rgba[n][ACOMP] = 255;
+ }
+
+ grLfbUnlock(GR_LFB_READ_ONLY, fxMesa->currentFB);
+ }
+ END_BOARD_LOCK();
}
@@ -353,76 +361,75 @@ static void read_R5G6B5_span(const GLcontext *ctx,
/***** Pixel functions *****/
/************************************************************************/
-static void fxDDWriteRGBAPixels(const GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- CONST GLubyte rgba[][4], const GLubyte mask[])
+static void
+fxDDWriteRGBAPixels(const GLcontext * ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ CONST GLubyte rgba[][4], const GLubyte mask[])
{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteRGBAPixels(...)\n");
- }
-
- for(i=0;i<n;i++)
- if(mask[i])
- LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x[i], bottom-y[i],
- 1, 1, (void *)rgba[i]);
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLuint i;
+ GLint bottom = fxMesa->height - 1;
+
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDWriteRGBAPixels(...)\n");
+ }
+
+ for (i = 0; i < n; i++)
+ if (mask[i])
+ LFB_WRITE_SPAN_MESA(fxMesa->currentFB, x[i], bottom - y[i],
+ 1, 1, (void *) rgba[i]);
}
-static void fxDDWriteMonoRGBAPixels(const GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- const GLchan color[4], const GLubyte mask[])
+static void
+fxDDWriteMonoRGBAPixels(const GLcontext * ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ const GLchan color[4], const GLubyte mask[])
{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- GLuint i;
- GLint bottom=fxMesa->height-1;
- GrColor_t gColor = FXCOLOR4(color);
-
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
- fprintf(stderr,"fxmesa: fxDDWriteMonoRGBAPixels(...)\n");
- }
-
- for(i=0;i<n;i++)
- if(mask[i])
- writeRegionClipped(fxMesa, fxMesa->currentFB,x[i],bottom-y[i],
- GR_LFB_SRC_FMT_8888,1,1,0,(void *) &gColor);
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLuint i;
+ GLint bottom = fxMesa->height - 1;
+ GrColor_t gColor = FXCOLOR4(color);
+
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDWriteMonoRGBAPixels(...)\n");
+ }
+
+ for (i = 0; i < n; i++)
+ if (mask[i])
+ writeRegionClipped(fxMesa, fxMesa->currentFB, x[i], bottom - y[i],
+ GR_LFB_SRC_FMT_8888, 1, 1, 0, (void *) &gColor);
}
-static void read_R5G6B5_pixels(const GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- GLubyte rgba[][4], const GLubyte mask[])
+static void
+read_R5G6B5_pixels(const GLcontext * ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ GLubyte rgba[][4], const GLubyte mask[])
{
- fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
- GrLfbInfo_t info;
- BEGIN_BOARD_LOCK();
- if (grLfbLock(GR_LFB_READ_ONLY,
- fxMesa->currentFB,
- GR_LFBWRITEMODE_ANY,
- GR_ORIGIN_UPPER_LEFT,
- FXFALSE,
- &info)) {
- const GLint srcStride = info.strideInBytes / 2; /* stride in GLushorts */
- const GLint winX = 0;
- const GLint winY = fxMesa->height - 1;
- GLuint i;
- for(i=0;i<n;i++) {
- if(mask[i]) {
- const GLushort *data16 = (const GLushort *) info.lfbPtr
- + (winY - y[i]) * srcStride
- + (winX + x[i]);
- const GLushort pixel = *data16;
- rgba[i][RCOMP] = FX_PixelToR[pixel];
- rgba[i][GCOMP] = FX_PixelToG[pixel];
- rgba[i][BCOMP] = FX_PixelToB[pixel];
- rgba[i][ACOMP] = 255;
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GrLfbInfo_t info;
+ BEGIN_BOARD_LOCK();
+ if (grLfbLock(GR_LFB_READ_ONLY,
+ fxMesa->currentFB,
+ GR_LFBWRITEMODE_ANY, GR_ORIGIN_UPPER_LEFT, FXFALSE, &info)) {
+ const GLint srcStride = info.strideInBytes / 2; /* stride in GLushorts */
+ const GLint winX = 0;
+ const GLint winY = fxMesa->height - 1;
+ GLuint i;
+ for (i = 0; i < n; i++) {
+ if (mask[i]) {
+ const GLushort *data16 = (const GLushort *) info.lfbPtr
+ + (winY - y[i]) * srcStride + (winX + x[i]);
+ const GLushort pixel = *data16;
+ rgba[i][RCOMP] = FX_PixelToR[pixel];
+ rgba[i][GCOMP] = FX_PixelToG[pixel];
+ rgba[i][BCOMP] = FX_PixelToB[pixel];
+ rgba[i][ACOMP] = 255;
+ }
}
- }
- grLfbUnlock(GR_LFB_READ_ONLY, fxMesa->currentFB);
- }
- END_BOARD_LOCK();
+ grLfbUnlock(GR_LFB_READ_ONLY, fxMesa->currentFB);
+ }
+ END_BOARD_LOCK();
}
@@ -431,102 +438,106 @@ static void read_R5G6B5_pixels(const GLcontext *ctx,
/***** Depth functions *****/
/************************************************************************/
-void fxDDWriteDepthSpan(GLcontext *ctx,
- GLuint n, GLint x, GLint y, const GLdepth depth[],
- const GLubyte mask[])
+void
+fxDDWriteDepthSpan(GLcontext * ctx,
+ GLuint n, GLint x, GLint y, const GLdepth depth[],
+ const GLubyte mask[])
{
- fxMesaContext fxMesa = (fxMesaContext)ctx->DriverCtx;
- GLint bottom = fxMesa->height - 1;
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLint bottom = fxMesa->height - 1;
- if (MESA_VERBOSE & VERBOSE_DRIVER) {
- fprintf(stderr, "fxmesa: fxDDWriteDepthSpan(...)\n");
- }
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDWriteDepthSpan(...)\n");
+ }
- if (mask) {
- GLint i;
- for (i = 0; i < n; i++) {
- if (mask[i]) {
- GLshort d = depth[i];
- writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER, x + i, bottom - y,
- GR_LFB_SRC_FMT_ZA16, 1, 1, 0, (void *) &d);
+ if (mask) {
+ GLint i;
+ for (i = 0; i < n; i++) {
+ if (mask[i]) {
+ GLshort d = depth[i];
+ writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER, x + i, bottom - y,
+ GR_LFB_SRC_FMT_ZA16, 1, 1, 0, (void *) &d);
+ }
}
- }
- }
- else {
- GLushort depth16[MAX_WIDTH];
- GLint i;
- for (i = 0; i < n; i++) {
- depth16[i] = depth[i];
- }
- writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER, x, bottom - y,
- GR_LFB_SRC_FMT_ZA16, n, 1, 0, (void *) depth16);
- }
+ }
+ else {
+ GLushort depth16[MAX_WIDTH];
+ GLint i;
+ for (i = 0; i < n; i++) {
+ depth16[i] = depth[i];
+ }
+ writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER, x, bottom - y,
+ GR_LFB_SRC_FMT_ZA16, n, 1, 0, (void *) depth16);
+ }
}
-void fxDDReadDepthSpan(GLcontext *ctx,
- GLuint n, GLint x, GLint y, GLdepth depth[])
+void
+fxDDReadDepthSpan(GLcontext * ctx,
+ GLuint n, GLint x, GLint y, GLdepth depth[])
{
- fxMesaContext fxMesa = (fxMesaContext)ctx->DriverCtx;
- GLint bottom = fxMesa->height - 1;
- GLushort depth16[MAX_WIDTH];
- GLuint i;
-
- if (MESA_VERBOSE & VERBOSE_DRIVER) {
- fprintf(stderr, "fxmesa: fxDDReadDepthSpan(...)\n");
- }
-
- FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER, x, bottom - y, n, 1, 0, depth16);
- for (i = 0; i < n; i++) {
- depth[i] = depth16[i];
- }
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLint bottom = fxMesa->height - 1;
+ GLushort depth16[MAX_WIDTH];
+ GLuint i;
+
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDReadDepthSpan(...)\n");
+ }
+
+ FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER, x, bottom - y, n, 1, 0, depth16);
+ for (i = 0; i < n; i++) {
+ depth[i] = depth16[i];
+ }
}
-void fxDDWriteDepthPixels(GLcontext *ctx,
- GLuint n, const GLint x[], const GLint y[],
- const GLdepth depth[], const GLubyte mask[])
+void
+fxDDWriteDepthPixels(GLcontext * ctx,
+ GLuint n, const GLint x[], const GLint y[],
+ const GLdepth depth[], const GLubyte mask[])
{
- fxMesaContext fxMesa = (fxMesaContext)ctx->DriverCtx;
- GLint bottom = fxMesa->height - 1;
- GLuint i;
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLint bottom = fxMesa->height - 1;
+ GLuint i;
- if (MESA_VERBOSE & VERBOSE_DRIVER) {
- fprintf(stderr, "fxmesa: fxDDWriteDepthPixels(...)\n");
- }
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDWriteDepthPixels(...)\n");
+ }
- for (i = 0; i < n; i++) {
- if (mask[i]) {
- int xpos = x[i];
- int ypos = bottom - y[i];
- GLushort d = depth[i];
- writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER, xpos, ypos,
- GR_LFB_SRC_FMT_ZA16, 1, 1, 0, (void *) &d);
- }
- }
+ for (i = 0; i < n; i++) {
+ if (mask[i]) {
+ int xpos = x[i];
+ int ypos = bottom - y[i];
+ GLushort d = depth[i];
+ writeRegionClipped(fxMesa, GR_BUFFER_AUXBUFFER, xpos, ypos,
+ GR_LFB_SRC_FMT_ZA16, 1, 1, 0, (void *) &d);
+ }
+ }
}
-void fxDDReadDepthPixels(GLcontext *ctx, GLuint n,
- const GLint x[], const GLint y[], GLdepth depth[])
+void
+fxDDReadDepthPixels(GLcontext * ctx, GLuint n,
+ const GLint x[], const GLint y[], GLdepth depth[])
{
- fxMesaContext fxMesa = (fxMesaContext)ctx->DriverCtx;
- GLint bottom = fxMesa->height - 1;
- GLuint i;
-
- if (MESA_VERBOSE & VERBOSE_DRIVER) {
- fprintf(stderr, "fxmesa: fxDDReadDepthPixels(...)\n");
- }
-
- for (i = 0; i < n; i++) {
- int xpos = x[i];
- int ypos = bottom - y[i];
- GLushort d;
- FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER, xpos, ypos, 1, 1, 0, &d);
- depth[i] = d;
- }
+ fxMesaContext fxMesa = (fxMesaContext) ctx->DriverCtx;
+ GLint bottom = fxMesa->height - 1;
+ GLuint i;
+
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
+ fprintf(stderr, "fxmesa: fxDDReadDepthPixels(...)\n");
+ }
+
+ for (i = 0; i < n; i++) {
+ int xpos = x[i];
+ int ypos = bottom - y[i];
+ GLushort d;
+ FX_grLfbReadRegion(GR_BUFFER_AUXBUFFER, xpos, ypos, 1, 1, 0, &d);
+ depth[i] = d;
+ }
}
@@ -535,26 +546,27 @@ void fxDDReadDepthPixels(GLcontext *ctx, GLuint n,
/************************************************************************/
-void fxSetupDDSpanPointers(GLcontext *ctx)
+void
+fxSetupDDSpanPointers(GLcontext * ctx)
{
- ctx->Driver.WriteRGBASpan =fxDDWriteRGBASpan;
- ctx->Driver.WriteRGBSpan =fxDDWriteRGBSpan;
- ctx->Driver.WriteMonoRGBASpan =fxDDWriteMonoRGBASpan;
- ctx->Driver.WriteRGBAPixels =fxDDWriteRGBAPixels;
- ctx->Driver.WriteMonoRGBAPixels =fxDDWriteMonoRGBAPixels;
-
- ctx->Driver.WriteCI8Span =NULL;
- ctx->Driver.WriteCI32Span =NULL;
- ctx->Driver.WriteMonoCISpan =NULL;
- ctx->Driver.WriteCI32Pixels =NULL;
- ctx->Driver.WriteMonoCIPixels =NULL;
-
- /* ctx->Driver.ReadRGBASpan =fxDDReadRGBASpan;*/
- ctx->Driver.ReadRGBASpan = read_R5G6B5_span;
- ctx->Driver.ReadRGBAPixels = read_R5G6B5_pixels;
-
- ctx->Driver.ReadCI32Span =NULL;
- ctx->Driver.ReadCI32Pixels =NULL;
+ ctx->Driver.WriteRGBASpan = fxDDWriteRGBASpan;
+ ctx->Driver.WriteRGBSpan = fxDDWriteRGBSpan;
+ ctx->Driver.WriteMonoRGBASpan = fxDDWriteMonoRGBASpan;
+ ctx->Driver.WriteRGBAPixels = fxDDWriteRGBAPixels;
+ ctx->Driver.WriteMonoRGBAPixels = fxDDWriteMonoRGBAPixels;
+
+ ctx->Driver.WriteCI8Span = NULL;
+ ctx->Driver.WriteCI32Span = NULL;
+ ctx->Driver.WriteMonoCISpan = NULL;
+ ctx->Driver.WriteCI32Pixels = NULL;
+ ctx->Driver.WriteMonoCIPixels = NULL;
+
+ /* ctx->Driver.ReadRGBASpan =fxDDReadRGBASpan; */
+ ctx->Driver.ReadRGBASpan = read_R5G6B5_span;
+ ctx->Driver.ReadRGBAPixels = read_R5G6B5_pixels;
+
+ ctx->Driver.ReadCI32Span = NULL;
+ ctx->Driver.ReadCI32Pixels = NULL;
}
@@ -566,9 +578,10 @@ void fxSetupDDSpanPointers(GLcontext *ctx)
*/
extern int gl_fx_dummy_function_span(void);
-int gl_fx_dummy_function_span(void)
+int
+gl_fx_dummy_function_span(void)
{
- return 0;
+ return 0;
}
-#endif /* FX */
+#endif /* FX */