Removed Driver.Color() and Driver.Index() functions.
Pass color or color index directly to WriteMono*() span functions. Updated current s/w drivers accordingly. Clean-up of X gc handling in XMesa driver.
This commit is contained in:
@@ -981,8 +981,10 @@ void fxSetupDDPointers(GLcontext *ctx)
|
||||
ctx->Driver.ClearColor=fxDDClearColor;
|
||||
ctx->Driver.Clear=fxDDClear;
|
||||
|
||||
#if 0
|
||||
ctx->Driver.Index=NULL;
|
||||
ctx->Driver.Color=fxDDSetColor;
|
||||
#endif
|
||||
|
||||
ctx->Driver.SetDrawBuffer=fxDDSetDrawBuffer;
|
||||
ctx->Driver.SetReadBuffer=fxDDSetReadBuffer;
|
||||
|
@@ -223,12 +223,13 @@ static void fxDDWriteRGBSpan(const GLcontext *ctx,
|
||||
|
||||
static void fxDDWriteMonoRGBASpan(const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[])
|
||||
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");
|
||||
@@ -239,7 +240,7 @@ static void fxDDWriteMonoRGBASpan(const GLcontext *ctx,
|
||||
|
||||
for (i=0;i<n;i++) {
|
||||
if (mask[i]) {
|
||||
data[span] = (GLuint) fxMesa->color;
|
||||
data[span] = (GLuint) gColor;
|
||||
++span;
|
||||
} else {
|
||||
if (span > 0) {
|
||||
@@ -257,7 +258,7 @@ static void fxDDWriteMonoRGBASpan(const GLcontext *ctx,
|
||||
(void *) data );
|
||||
} else {
|
||||
for (i=0;i<n;i++) {
|
||||
data[i]=(GLuint) fxMesa->color;
|
||||
data[i]=(GLuint) gColor;
|
||||
}
|
||||
|
||||
writeRegionClipped(fxMesa, fxMesa->currentFB, x, bottom-y, GR_LFB_SRC_FMT_8888,
|
||||
@@ -372,11 +373,12 @@ static void fxDDWriteRGBAPixels(const GLcontext *ctx,
|
||||
|
||||
static void fxDDWriteMonoRGBAPixels(const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
const GLubyte mask[])
|
||||
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");
|
||||
@@ -385,7 +387,7 @@ static void fxDDWriteMonoRGBAPixels(const GLcontext *ctx,
|
||||
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 *) &fxMesa->color);
|
||||
GR_LFB_SRC_FMT_8888,1,1,0,(void *) &gColor);
|
||||
}
|
||||
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: osmesa.c,v 1.28 2000/11/06 17:28:51 brianp Exp $ */
|
||||
/* $Id: osmesa.c,v 1.29 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -92,6 +92,10 @@ static void osmesa_register_swrast_functions( GLcontext *ctx );
|
||||
|
||||
|
||||
|
||||
#define OSMESA_CONTEXT(ctx) ((OSMesaContext) (ctx->DriverCtx))
|
||||
|
||||
|
||||
|
||||
/**********************************************************************/
|
||||
/***** Public Functions *****/
|
||||
/**********************************************************************/
|
||||
@@ -637,7 +641,7 @@ static void set_read_buffer( GLcontext *ctx, GLframebuffer *buffer, GLenum mode
|
||||
|
||||
static void clear_index( GLcontext *ctx, GLuint index )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
osmesa->clearpixel = index;
|
||||
}
|
||||
|
||||
@@ -646,7 +650,7 @@ static void clear_index( GLcontext *ctx, GLuint index )
|
||||
static void clear_color( GLcontext *ctx,
|
||||
GLchan r, GLchan g, GLchan b, GLchan a )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
osmesa->clearpixel = PACK_RGBA( r, g, b, a );
|
||||
}
|
||||
|
||||
@@ -655,7 +659,7 @@ static void clear_color( GLcontext *ctx,
|
||||
static GLbitfield clear( GLcontext *ctx, GLbitfield mask, GLboolean all,
|
||||
GLint x, GLint y, GLint width, GLint height )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
const GLuint *colorMask = (GLuint *) &ctx->Color.ColorMask;
|
||||
|
||||
/* we can't handle color or index masking */
|
||||
@@ -751,7 +755,7 @@ static GLbitfield clear( GLcontext *ctx, GLbitfield mask, GLboolean all,
|
||||
|
||||
static void set_index( GLcontext *ctx, GLuint index )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
osmesa->pixel = index;
|
||||
}
|
||||
|
||||
@@ -760,7 +764,7 @@ static void set_index( GLcontext *ctx, GLuint index )
|
||||
static void set_color( GLcontext *ctx,
|
||||
GLchan r, GLchan g, GLchan b, GLchan a )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
osmesa->pixel = PACK_RGBA( r, g, b, a );
|
||||
}
|
||||
|
||||
@@ -768,7 +772,7 @@ static void set_color( GLcontext *ctx,
|
||||
|
||||
static void buffer_size( GLcontext *ctx, GLuint *width, GLuint *height )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
*width = osmesa->width;
|
||||
*height = osmesa->height;
|
||||
}
|
||||
@@ -783,7 +787,7 @@ static void write_rgba_span( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
CONST GLchan rgba[][4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint *ptr4 = PIXELADDR4( x, y );
|
||||
GLuint i;
|
||||
GLint rshift = osmesa->rshift;
|
||||
@@ -811,7 +815,7 @@ static void write_rgba_span_rgba( const GLcontext *ctx,
|
||||
CONST GLchan rgba[][4],
|
||||
const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint *ptr4 = PIXELADDR4( x, y );
|
||||
const GLuint *rgba4 = (const GLuint *) rgba;
|
||||
GLuint i;
|
||||
@@ -833,7 +837,7 @@ static void write_rgb_span( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
CONST GLchan rgb[][3], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint *ptr4 = PIXELADDR4( x, y );
|
||||
GLuint i;
|
||||
GLint rshift = osmesa->rshift;
|
||||
@@ -858,14 +862,16 @@ static void write_rgb_span( const GLcontext *ctx,
|
||||
|
||||
static void write_monocolor_span( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[] )
|
||||
const GLchan color[4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
const GLuint pixel = PACK_RGBA(color[RCOMP], color[GCOMP],
|
||||
color[BCOMP], color[ACOMP]);
|
||||
GLuint *ptr4 = PIXELADDR4(x,y);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++,ptr4++) {
|
||||
if (mask[i]) {
|
||||
*ptr4 = osmesa->pixel;
|
||||
*ptr4 = pixel;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -876,7 +882,7 @@ static void write_rgba_pixels( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
CONST GLchan rgba[][4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
GLint rshift = osmesa->rshift;
|
||||
GLint gshift = osmesa->gshift;
|
||||
@@ -894,14 +900,17 @@ static void write_rgba_pixels( const GLcontext *ctx,
|
||||
|
||||
static void write_monocolor_pixels( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
const GLchan color[4],
|
||||
const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
const GLuint pixel = PACK_RGBA(color[RCOMP], color[GCOMP],
|
||||
color[BCOMP], color[ACOMP]);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
if (mask[i]) {
|
||||
GLuint *ptr4 = PIXELADDR4(x[i],y[i]);
|
||||
*ptr4 = osmesa->pixel;
|
||||
*ptr4 = pixel;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -910,7 +919,7 @@ static void write_monocolor_pixels( const GLcontext *ctx,
|
||||
static void read_rgba_span( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
GLchan rgba[][4] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
GLuint *ptr4 = PIXELADDR4(x,y);
|
||||
for (i=0;i<n;i++) {
|
||||
@@ -928,7 +937,7 @@ static void read_rgba_span_rgba( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
GLchan rgba[][4] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint *ptr4 = PIXELADDR4(x,y);
|
||||
MEMCPY( rgba, ptr4, n * 4 * sizeof(GLchan) );
|
||||
}
|
||||
@@ -938,7 +947,7 @@ static void read_rgba_pixels( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
GLchan rgba[][4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
if (mask[i]) {
|
||||
@@ -961,7 +970,7 @@ static void write_rgba_span3( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
CONST GLchan rgba[][4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLubyte *ptr3 = PIXELADDR3( x, y);
|
||||
GLuint i;
|
||||
GLint rind = osmesa->rind;
|
||||
@@ -990,12 +999,12 @@ static void write_rgb_span3( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
CONST GLchan rgb[][3], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
const GLint rind = osmesa->rind;
|
||||
const GLint gind = osmesa->gind;
|
||||
const GLint bind = osmesa->bind;
|
||||
GLubyte *ptr3 = PIXELADDR3( x, y);
|
||||
GLuint i;
|
||||
GLint rind = osmesa->rind;
|
||||
GLint gind = osmesa->gind;
|
||||
GLint bind = osmesa->bind;
|
||||
if (mask) {
|
||||
for (i=0;i<n;i++,ptr3+=3) {
|
||||
if (mask[i]) {
|
||||
@@ -1016,17 +1025,16 @@ static void write_rgb_span3( const GLcontext *ctx,
|
||||
|
||||
|
||||
static void write_monocolor_span3( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[] )
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLchan color[4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
|
||||
GLubyte rval = UNPACK_RED(osmesa->pixel);
|
||||
GLubyte gval = UNPACK_GREEN(osmesa->pixel);
|
||||
GLubyte bval = UNPACK_BLUE(osmesa->pixel);
|
||||
GLint rind = osmesa->rind;
|
||||
GLint gind = osmesa->gind;
|
||||
GLint bind = osmesa->bind;
|
||||
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
const GLubyte rval = color[RCOMP];
|
||||
const GLubyte gval = color[GCOMP];
|
||||
const GLubyte bval = color[BCOMP];
|
||||
const GLint rind = osmesa->rind;
|
||||
const GLint gind = osmesa->gind;
|
||||
const GLint bind = osmesa->bind;
|
||||
GLubyte *ptr3 = PIXELADDR3( x, y);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++,ptr3+=3) {
|
||||
@@ -1042,7 +1050,7 @@ static void write_rgba_pixels3( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
CONST GLchan rgba[][4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
const OSMesaContext osmesa = (const OSMesaContext) ctx;
|
||||
GLuint i;
|
||||
GLint rind = osmesa->rind;
|
||||
GLint gind = osmesa->gind;
|
||||
@@ -1058,17 +1066,19 @@ static void write_rgba_pixels3( const GLcontext *ctx,
|
||||
}
|
||||
|
||||
static void write_monocolor_pixels3( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
GLuint n, const GLint x[],
|
||||
const GLint y[],
|
||||
const GLchan color[4],
|
||||
const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
const GLint rind = osmesa->rind;
|
||||
const GLint gind = osmesa->gind;
|
||||
const GLint bind = osmesa->bind;
|
||||
const GLubyte rval = color[RCOMP];
|
||||
const GLubyte gval = color[GCOMP];
|
||||
const GLubyte bval = color[BCOMP];
|
||||
GLuint i;
|
||||
GLint rind = osmesa->rind;
|
||||
GLint gind = osmesa->gind;
|
||||
GLint bind = osmesa->bind;
|
||||
GLubyte rval = UNPACK_RED(osmesa->pixel);
|
||||
GLubyte gval = UNPACK_GREEN(osmesa->pixel);
|
||||
GLubyte bval = UNPACK_BLUE(osmesa->pixel);
|
||||
for (i=0;i<n;i++) {
|
||||
if (mask[i]) {
|
||||
GLubyte *ptr3 = PIXELADDR3(x[i],y[i]);
|
||||
@@ -1083,7 +1093,7 @@ static void read_rgba_span3( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
GLchan rgba[][4] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
GLint rind = osmesa->rind;
|
||||
GLint gind = osmesa->gind;
|
||||
@@ -1101,7 +1111,7 @@ static void read_rgba_pixels3( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
GLchan rgba[][4], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
GLint rind = osmesa->rind;
|
||||
GLint gind = osmesa->gind;
|
||||
@@ -1127,7 +1137,7 @@ static void write_index32_span( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLuint index[], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLubyte *ptr1 = PIXELADDR1(x,y);
|
||||
GLuint i;
|
||||
if (mask) {
|
||||
@@ -1150,7 +1160,7 @@ static void write_index8_span( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte index[], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLubyte *ptr1 = PIXELADDR1(x,y);
|
||||
GLuint i;
|
||||
if (mask) {
|
||||
@@ -1168,14 +1178,14 @@ static void write_index8_span( const GLcontext *ctx,
|
||||
|
||||
static void write_monoindex_span( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[] )
|
||||
GLuint colorIndex, const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLubyte *ptr1 = PIXELADDR1(x,y);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++,ptr1++) {
|
||||
if (mask[i]) {
|
||||
*ptr1 = (GLubyte) osmesa->pixel;
|
||||
*ptr1 = (GLubyte) colorIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1185,7 +1195,7 @@ static void write_index_pixels( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
const GLuint index[], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
if (mask[i]) {
|
||||
@@ -1198,14 +1208,14 @@ static void write_index_pixels( const GLcontext *ctx,
|
||||
|
||||
static void write_monoindex_pixels( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
GLuint colorIndex, const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
if (mask[i]) {
|
||||
GLubyte *ptr1 = PIXELADDR1(x[i],y[i]);
|
||||
*ptr1 = (GLubyte) osmesa->pixel;
|
||||
*ptr1 = (GLubyte) colorIndex;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1214,7 +1224,7 @@ static void write_monoindex_pixels( const GLcontext *ctx,
|
||||
static void read_index_span( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y, GLuint index[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
const GLubyte *ptr1 = PIXELADDR1(x,y);
|
||||
for (i=0;i<n;i++,ptr1++) {
|
||||
@@ -1227,7 +1237,7 @@ static void read_index_pixels( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
GLuint index[], const GLubyte mask[] )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLuint i;
|
||||
for (i=0;i<n;i++) {
|
||||
if (mask[i] ) {
|
||||
@@ -1250,7 +1260,7 @@ static void read_index_pixels( const GLcontext *ctx,
|
||||
static void flat_rgba_line( GLcontext *ctx,
|
||||
SWvertex *vert0, SWvertex *vert1 )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLubyte *color = vert0->color;
|
||||
unsigned long pixel = PACK_RGBA( color[0], color[1], color[2], color[3] );
|
||||
|
||||
@@ -1272,7 +1282,7 @@ static void flat_rgba_line( GLcontext *ctx,
|
||||
static void flat_rgba_z_line( GLcontext *ctx,
|
||||
SWvertex *vert0, SWvertex *vert1 )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLubyte *color = vert0->color;
|
||||
unsigned long pixel = PACK_RGBA( color[0], color[1], color[2], color[3] );
|
||||
|
||||
@@ -1301,7 +1311,7 @@ static void flat_rgba_z_line( GLcontext *ctx,
|
||||
static void flat_blend_rgba_line( GLcontext *ctx,
|
||||
SWvertex *vert0, SWvertex *vert1 )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLint rshift = osmesa->rshift;
|
||||
GLint gshift = osmesa->gshift;
|
||||
GLint bshift = osmesa->bshift;
|
||||
@@ -1336,7 +1346,7 @@ static void flat_blend_rgba_line( GLcontext *ctx,
|
||||
static void flat_blend_rgba_z_line( GLcontext *ctx,
|
||||
SWvertex *vert0, SWvertex *vert1 )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLint rshift = osmesa->rshift;
|
||||
GLint gshift = osmesa->gshift;
|
||||
GLint bshift = osmesa->bshift;
|
||||
@@ -1374,7 +1384,7 @@ static void flat_blend_rgba_z_line( GLcontext *ctx,
|
||||
static void flat_blend_rgba_z_line_write( GLcontext *ctx,
|
||||
SWvertex *vert0, SWvertex *vert1 )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLint rshift = osmesa->rshift;
|
||||
GLint gshift = osmesa->gshift;
|
||||
GLint bshift = osmesa->bshift;
|
||||
@@ -1414,7 +1424,7 @@ static void flat_blend_rgba_z_line_write( GLcontext *ctx,
|
||||
static swrast_line_func
|
||||
osmesa_choose_line_function( GLcontext *ctx )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
SWcontext *swrast = SWRAST_CONTEXT(ctx);
|
||||
|
||||
if (ctx->RenderMode != GL_RENDER) return NULL;
|
||||
@@ -1520,7 +1530,7 @@ osmesa_choose_line_function( GLcontext *ctx )
|
||||
static void smooth_rgba_z_triangle( GLcontext *ctx,
|
||||
SWvertex *v0, SWvertex *v1, SWvertex *v2 )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
GLint rshift = osmesa->rshift;
|
||||
GLint gshift = osmesa->gshift;
|
||||
GLint bshift = osmesa->bshift;
|
||||
@@ -1562,7 +1572,7 @@ static void smooth_rgba_z_triangle( GLcontext *ctx,
|
||||
static void flat_rgba_z_triangle( GLcontext *ctx,
|
||||
SWvertex *v0, SWvertex *v1, SWvertex *v2 )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
#define INTERP_Z 1
|
||||
#define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
|
||||
#define SETUP_CODE \
|
||||
@@ -1601,7 +1611,7 @@ static void flat_rgba_z_triangle( GLcontext *ctx,
|
||||
static swrast_tri_func
|
||||
osmesa_choose_triangle_function( GLcontext *ctx )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
SWcontext *swrast = SWRAST_CONTEXT(ctx);
|
||||
|
||||
if ((osmesa->format==OSMESA_RGB)||(osmesa->format==OSMESA_BGR))
|
||||
@@ -1694,7 +1704,7 @@ static const GLubyte *get_string( GLcontext *ctx, GLenum name )
|
||||
|
||||
static void osmesa_update_state( GLcontext *ctx )
|
||||
{
|
||||
OSMesaContext osmesa = (OSMesaContext) ctx;
|
||||
OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
|
||||
|
||||
ASSERT((void *) osmesa == (void *) ctx->DriverCtx);
|
||||
|
||||
@@ -1704,8 +1714,10 @@ static void osmesa_update_state( GLcontext *ctx )
|
||||
|
||||
ctx->Driver.SetDrawBuffer = set_draw_buffer;
|
||||
ctx->Driver.SetReadBuffer = set_read_buffer;
|
||||
#if 000
|
||||
ctx->Driver.Color = set_color;
|
||||
ctx->Driver.Index = set_index;
|
||||
#endif
|
||||
ctx->Driver.ClearIndex = clear_index;
|
||||
ctx->Driver.ClearColor = clear_color;
|
||||
ctx->Driver.Clear = clear;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa.c,v 1.6 2000/09/26 20:54:12 brianp Exp $ */
|
||||
/* $Id: svgamesa.c,v 1.7 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -291,7 +291,6 @@ static void svgamesa_update_state( GLcontext *ctx )
|
||||
switch (SVGABuffer.Depth) {
|
||||
case 8: ctx->Driver.ClearIndex = __clear_index8;
|
||||
ctx->Driver.Clear = __clear8;
|
||||
ctx->Driver.Index = __set_index8;
|
||||
|
||||
ctx->Driver.ReadCI32Span = __read_ci32_span8;
|
||||
ctx->Driver.ReadCI32Pixels = __read_ci32_pixels8;
|
||||
@@ -307,7 +306,6 @@ static void svgamesa_update_state( GLcontext *ctx )
|
||||
break;
|
||||
case 15: ctx->Driver.ClearColor = __clear_color15;
|
||||
ctx->Driver.Clear = __clear15;
|
||||
ctx->Driver.Color = __set_color15;
|
||||
|
||||
ctx->Driver.ReadRGBASpan = __read_rgba_span15;
|
||||
ctx->Driver.ReadRGBAPixels = __read_rgba_pixels15;
|
||||
@@ -321,7 +319,6 @@ static void svgamesa_update_state( GLcontext *ctx )
|
||||
break;
|
||||
case 16: ctx->Driver.ClearColor = __clear_color16;
|
||||
ctx->Driver.Clear = __clear16;
|
||||
ctx->Driver.Color = __set_color16;
|
||||
|
||||
ctx->Driver.ReadRGBASpan = __read_rgba_span16;
|
||||
ctx->Driver.ReadRGBAPixels = __read_rgba_pixels16;
|
||||
@@ -335,7 +332,6 @@ static void svgamesa_update_state( GLcontext *ctx )
|
||||
#endif
|
||||
case 24: ctx->Driver.ClearColor = __clear_color24;
|
||||
ctx->Driver.Clear = __clear24;
|
||||
ctx->Driver.Color = __set_color24;
|
||||
|
||||
ctx->Driver.ReadRGBASpan = __read_rgba_span24;
|
||||
ctx->Driver.ReadRGBAPixels = __read_rgba_pixels24;
|
||||
@@ -349,7 +345,6 @@ static void svgamesa_update_state( GLcontext *ctx )
|
||||
#endif
|
||||
case 32: ctx->Driver.ClearColor = __clear_color32;
|
||||
ctx->Driver.Clear = __clear32;
|
||||
ctx->Driver.Color = __set_color32;
|
||||
|
||||
ctx->Driver.ReadRGBASpan = __read_rgba_span32;
|
||||
ctx->Driver.ReadRGBAPixels = __read_rgba_pixels32;
|
||||
@@ -429,9 +424,6 @@ SVGAMesaContext SVGAMesaCreateContext( GLboolean doubleBuffer )
|
||||
ctx->gl_vis->AccumRedBits > 0,
|
||||
ctx->gl_vis->AlphaBits > 0 );
|
||||
|
||||
ctx->index = 1;
|
||||
ctx->red = ctx->green = ctx->blue = 255;
|
||||
|
||||
ctx->width = ctx->height = 0; /* temporary until first "make-current" */
|
||||
#endif
|
||||
return ctx;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa15.c,v 1.6 2000/06/14 21:59:07 brianp Exp $ */
|
||||
/* $Id: svgamesa15.c,v 1.7 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -54,14 +54,6 @@ static unsigned long __svga_getpixel15(int x, int y)
|
||||
return shortBuffer[offset];
|
||||
}
|
||||
|
||||
void __set_color15( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
{
|
||||
SVGAMesa->hicolor=(red>>3)<<10 | (green>>3)<<5 | (blue>>3);
|
||||
/* SVGAMesa->hicolor=(red)<<10 | (green)<<5 | (blue); */
|
||||
}
|
||||
|
||||
void __clear_color15( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
@@ -134,12 +126,15 @@ void __write_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
|
||||
void __write_mono_rgba_span15( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[])
|
||||
const GLchan color[4], const GLubyte mask[])
|
||||
{
|
||||
GLushort hicolor = (color[RCOMP] >> 3) << 10 |
|
||||
(color[GCOMP] >> 3) << 5 |
|
||||
(color[BCOMP] >> 3);
|
||||
int i;
|
||||
for (i=0; i<n; i++, x++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel15( x, y, SVGAMesa->hicolor);
|
||||
__svga_drawpixel15( x, y, hicolor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -174,13 +169,16 @@ void __write_rgba_pixels15( const GLcontext *ctx,
|
||||
void __write_mono_rgba_pixels15( const GLcontext *ctx,
|
||||
GLuint n,
|
||||
const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
const GLchan color[4], const GLubyte mask[] )
|
||||
{
|
||||
GLushort hicolor = (color[RCOMP] >> 3) << 10 |
|
||||
(color[GCOMP] >> 3) << 5 |
|
||||
(color[BCOMP] >> 3);
|
||||
int i;
|
||||
/* use current rgb color */
|
||||
for (i=0; i<n; i++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel15( x[i], y[i], SVGAMesa->hicolor );
|
||||
__svga_drawpixel15( x[i], y[i], hicolor );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa15.h,v 1.3 2000/01/25 00:03:02 brianp Exp $ */
|
||||
/* $Id: svgamesa15.h,v 1.4 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -31,14 +31,13 @@
|
||||
#ifndef SVGA_MESA_15_H
|
||||
#define SVGA_MESA_15_H
|
||||
|
||||
extern void __set_color15( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern void __clear_color15( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern GLbitfield __clear15( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height );
|
||||
extern void __write_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]);
|
||||
extern void __write_mono_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]);
|
||||
extern void __read_rgba_span15( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] );
|
||||
extern void __write_rgba_pixels15( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels15( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels15( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[] );
|
||||
extern void __read_rgba_pixels15( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] );
|
||||
|
||||
#endif /* SVGA_MESA_15_H */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa16.c,v 1.6 2000/06/14 21:59:07 brianp Exp $ */
|
||||
/* $Id: svgamesa16.c,v 1.7 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -56,14 +56,6 @@ static unsigned long __svga_getpixel16(int x, int y)
|
||||
return shortBuffer[offset];
|
||||
}
|
||||
|
||||
void __set_color16( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
{
|
||||
SVGAMesa->hicolor=(red>>3)<<11 | (green>>2)<<5 | (blue>>3);
|
||||
/* SVGAMesa->hicolor=(red)<<11 | (green)<<5 | (blue); */
|
||||
}
|
||||
|
||||
void __clear_color16( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
@@ -136,12 +128,13 @@ void __write_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
|
||||
void __write_mono_rgba_span16( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[])
|
||||
const GLchan color[4], const GLubyte mask[])
|
||||
{
|
||||
GLushort hicolor=(color[RCOMP]>>3)<<11 | (color[GCOMP]>>2)<<5 | (color[BCOMP]>>3);
|
||||
int i;
|
||||
for (i=0; i<n; i++, x++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel16( x, y, SVGAMesa->hicolor);
|
||||
__svga_drawpixel16( x, y, hicolor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -176,13 +169,13 @@ void __write_rgba_pixels16( const GLcontext *ctx,
|
||||
void __write_mono_rgba_pixels16( const GLcontext *ctx,
|
||||
GLuint n,
|
||||
const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
const GLchan color[4], const GLubyte mask[] )
|
||||
{
|
||||
GLushort hicolor=(color[RCOMP]>>3)<<11 | (color[GCOMP]>>2)<<5 | (color[BCOMP]>>3);
|
||||
int i;
|
||||
/* use current rgb color */
|
||||
for (i=0; i<n; i++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel16( x[i], y[i], SVGAMesa->hicolor );
|
||||
__svga_drawpixel16( x[i], y[i], hicolor );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa16.h,v 1.2 2000/01/22 20:08:36 brianp Exp $ */
|
||||
/* $Id: svgamesa16.h,v 1.3 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -31,14 +31,13 @@
|
||||
#ifndef SVGA_MESA_16_H
|
||||
#define SVGA_MESA_16_H
|
||||
|
||||
extern void __set_color16( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern void __clear_color16( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern GLbitfield __clear16( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height );
|
||||
extern void __write_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]);
|
||||
extern void __write_mono_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]);
|
||||
extern void __read_rgba_span16( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] );
|
||||
extern void __write_rgba_pixels16( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels16( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels16( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[] );
|
||||
extern void __read_rgba_pixels16( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] );
|
||||
|
||||
#endif /* SVGA_MESA_16_H */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa24.c,v 1.7 2000/06/14 21:59:07 brianp Exp $ */
|
||||
/* $Id: svgamesa24.c,v 1.8 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -78,16 +78,6 @@ static unsigned long __svga_getpixel24(int x, int y)
|
||||
return rgbBuffer[offset].r<<16 | rgbBuffer[offset].g<<8 | rgbBuffer[offset].b;
|
||||
}
|
||||
|
||||
void __set_color24( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
{
|
||||
SVGAMesa->red = red;
|
||||
SVGAMesa->green = green;
|
||||
SVGAMesa->blue = blue;
|
||||
/* SVGAMesa->truecolor = red<<16 | green<<8 | blue; */
|
||||
}
|
||||
|
||||
void __clear_color24( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
@@ -172,14 +162,12 @@ void __write_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
|
||||
void __write_mono_rgba_span24( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[])
|
||||
const GLchan color[4], const GLubyte mask[])
|
||||
{
|
||||
int i;
|
||||
for (i=0; i<n; i++, x++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel24( x, y, SVGAMesa->red,
|
||||
SVGAMesa->green,
|
||||
SVGAMesa->blue);
|
||||
__svga_drawpixel24( x, y, color[RCOMP], color[GCOMP], color[BCOMP]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -210,15 +198,13 @@ void __write_rgba_pixels24( const GLcontext *ctx,
|
||||
void __write_mono_rgba_pixels24( const GLcontext *ctx,
|
||||
GLuint n,
|
||||
const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
const GLchan color[4], const GLubyte mask[] )
|
||||
{
|
||||
int i;
|
||||
/* use current rgb color */
|
||||
for (i=0; i<n; i++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel24( x[i], y[i], SVGAMesa->red,
|
||||
SVGAMesa->green,
|
||||
SVGAMesa->blue);
|
||||
__svga_drawpixel24( x[i], y[i],
|
||||
color[RCOMP], color[GCOMP], color[BCOMP] );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa24.h,v 1.2 2000/01/22 20:08:36 brianp Exp $ */
|
||||
/* $Id: svgamesa24.h,v 1.3 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -31,14 +31,13 @@
|
||||
#ifndef SVGA_MESA_24_H
|
||||
#define SVGA_MESA_24_H
|
||||
|
||||
extern void __set_color24( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern void __clear_color24( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern GLbitfield __clear24( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height );
|
||||
extern void __write_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]);
|
||||
extern void __write_mono_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]);
|
||||
extern void __read_rgba_span24( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] );
|
||||
extern void __write_rgba_pixels24( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels24( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels24( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[] );
|
||||
extern void __read_rgba_pixels24( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] );
|
||||
|
||||
#endif /* SVGA_MESA_24_H */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa32.c,v 1.7 2000/06/14 21:59:07 brianp Exp $ */
|
||||
/* $Id: svgamesa32.c,v 1.8 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -74,16 +74,6 @@ static unsigned long __svga_getpixel32(int x, int y)
|
||||
return intBuffer[offset];
|
||||
}
|
||||
|
||||
void __set_color32( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
{
|
||||
SVGAMesa->red = red;
|
||||
SVGAMesa->green = green;
|
||||
SVGAMesa->blue = blue;
|
||||
SVGAMesa->truecolor = red<<16 | green<<8 | blue;
|
||||
}
|
||||
|
||||
void __clear_color32( GLcontext *ctx,
|
||||
GLubyte red, GLubyte green,
|
||||
GLubyte blue, GLubyte alpha )
|
||||
@@ -151,12 +141,13 @@ void __write_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
|
||||
void __write_mono_rgba_span32( const GLcontext *ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[])
|
||||
const GLchan color[4], const GLubyte mask[])
|
||||
{
|
||||
int i;
|
||||
GLuint truecolor = color[RCOMP]<<16 | color[GCOMP]<<8 | color[BCOMP];
|
||||
for (i=0; i<n; i++, x++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel32( x, y, SVGAMesa->truecolor);
|
||||
__svga_drawpixel32( x, y, truecolor);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -185,13 +176,13 @@ void __write_rgba_pixels32( const GLcontext *ctx,
|
||||
void __write_mono_rgba_pixels32( const GLcontext *ctx,
|
||||
GLuint n,
|
||||
const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
const GLchan color[4], const GLubyte mask[] )
|
||||
{
|
||||
GLuint truecolor = color[RCOMP]<<16 | color[GCOMP]<<8 | color[BCOMP];
|
||||
int i;
|
||||
/* use current rgb color */
|
||||
for (i=0; i<n; i++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel32( x[i], y[i], SVGAMesa->truecolor );
|
||||
__svga_drawpixel32( x[i], y[i], truecolor );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa32.h,v 1.2 2000/01/22 20:08:36 brianp Exp $ */
|
||||
/* $Id: svgamesa32.h,v 1.3 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -31,14 +31,13 @@
|
||||
#ifndef SVGA_MESA_32_H
|
||||
#define SVGA_MESA_32_H
|
||||
|
||||
extern void __set_color32( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern void __clear_color32( GLcontext *ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
|
||||
extern GLbitfield __clear32( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height );
|
||||
extern void __write_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[]);
|
||||
extern void __write_mono_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLchan color[4], const GLubyte mask[]);
|
||||
extern void __read_rgba_span32( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLubyte rgba[][4] );
|
||||
extern void __write_rgba_pixels32( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte rgba[][4], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels32( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] );
|
||||
extern void __write_mono_rgba_pixels32( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLchan color[4], const GLubyte mask[] );
|
||||
extern void __read_rgba_pixels32( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLubyte rgba[][4], const GLubyte mask[] );
|
||||
|
||||
#endif /* SVGA_MESA_32_H */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa8.c,v 1.6 2000/06/14 21:59:07 brianp Exp $ */
|
||||
/* $Id: svgamesa8.c,v 1.7 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -53,11 +53,6 @@ static unsigned long __svga_getpixel8(int x, int y)
|
||||
return SVGABuffer.ReadBuffer[offset];
|
||||
}
|
||||
|
||||
void __set_index8( GLcontext *ctx, GLuint index )
|
||||
{
|
||||
SVGAMesa->index = index;
|
||||
}
|
||||
|
||||
void __clear_index8( GLcontext *ctx, GLuint index )
|
||||
{
|
||||
SVGAMesa->clear_index = index;
|
||||
@@ -121,12 +116,13 @@ void __write_ci8_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
}
|
||||
|
||||
void __write_mono_ci_span8( const GLcontext *ctx, GLuint n,
|
||||
GLint x, GLint y, const GLubyte mask[] )
|
||||
GLint x, GLint y,
|
||||
GLuint colorIndex, const GLubyte mask[] )
|
||||
{
|
||||
int i;
|
||||
for (i=0;i<n;i++,x++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel8( x, y, SVGAMesa->index);
|
||||
__svga_drawpixel8( x, y, colorIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -155,12 +151,12 @@ void __write_ci32_pixels8( const GLcontext *ctx,
|
||||
|
||||
void __write_mono_ci_pixels8( const GLcontext *ctx, GLuint n,
|
||||
const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
GLuint colorIndex, const GLubyte mask[] )
|
||||
{
|
||||
int i;
|
||||
for (i=0; i<n; i++) {
|
||||
if (mask[i]) {
|
||||
__svga_drawpixel8( x[i], y[i], SVGAMesa->index);
|
||||
__svga_drawpixel8( x[i], y[i], colorIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: svgamesa8.h,v 1.2 2000/01/22 20:08:36 brianp Exp $ */
|
||||
/* $Id: svgamesa8.h,v 1.3 2000/11/14 17:40:14 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -31,15 +31,14 @@
|
||||
#ifndef SVGA_MESA_8_H
|
||||
#define SVGA_MESA_8_H
|
||||
|
||||
extern void __set_index8( GLcontext *ctx, GLuint index );
|
||||
extern void __clear_index8( GLcontext *ctx, GLuint index );
|
||||
extern GLbitfield __clear8( GLcontext *ctx, GLbitfield mask, GLboolean all, GLint x, GLint y, GLint width, GLint height );
|
||||
extern void __write_ci32_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLuint index[], const GLubyte mask[] );
|
||||
extern void __write_ci8_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte index[], const GLubyte mask[] );
|
||||
extern void __write_mono_ci_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, const GLubyte mask[] );
|
||||
extern void __write_mono_ci_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLuint colorIndex, const GLubyte mask[] );
|
||||
extern void __read_ci32_span8( const GLcontext *ctx, GLuint n, GLint x, GLint y, GLuint index[]);
|
||||
extern void __write_ci32_pixels8( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLuint index[], const GLubyte mask[] );
|
||||
extern void __write_mono_ci_pixels8( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], const GLubyte mask[] );
|
||||
extern void __write_mono_ci_pixels8( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLuint colorIndex, const GLubyte mask[] );
|
||||
extern void __read_ci32_pixels8( const GLcontext *ctx, GLuint n, const GLint x[], const GLint y[], GLuint index[], const GLubyte mask[] );
|
||||
|
||||
#endif /* SVGA_MESA_15_H */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: wmesa.c,v 1.10 2000/11/05 18:41:00 keithw Exp $ */
|
||||
/* $Id: wmesa.c,v 1.11 2000/11/14 17:40:15 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Windows (Win32) device driver for Mesa 3.4
|
||||
@@ -488,25 +488,6 @@ static GLbitfield clear(GLcontext* ctx, GLbitfield mask,
|
||||
|
||||
|
||||
|
||||
/* Set the current color index. */
|
||||
static void set_index(GLcontext* ctx, GLuint index)
|
||||
{
|
||||
STARTPROFILE
|
||||
Current->pixel=index;
|
||||
ENDPROFILE(set_index)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Set the current RGBA color. */
|
||||
static void set_color( GLcontext* ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a )
|
||||
{
|
||||
STARTPROFILE
|
||||
Current->pixel = RGB( r, g, b );
|
||||
ENDPROFILE(set_color)
|
||||
}
|
||||
|
||||
|
||||
static void enable( GLcontext* ctx, GLenum pname, GLboolean enable )
|
||||
{
|
||||
if (!Current)
|
||||
@@ -766,7 +747,7 @@ static void write_ci8_span( const GLcontext* ctx,
|
||||
*/
|
||||
static void write_mono_ci_span(const GLcontext* ctx,
|
||||
GLuint n,GLint x,GLint y,
|
||||
const GLubyte mask[])
|
||||
GLuint colorIndex, const GLubyte mask[])
|
||||
{
|
||||
STARTPROFILE
|
||||
GLuint i;
|
||||
@@ -774,7 +755,7 @@ static void write_mono_ci_span(const GLcontext* ctx,
|
||||
assert(Current->rgb_flag==GL_FALSE);
|
||||
for (i=0; i<n; i++)
|
||||
if (mask[i])
|
||||
Mem[i]=Current->pixel;
|
||||
Mem[i]=colorIndex;
|
||||
ENDPROFILE(write_mono_ci_span)
|
||||
}
|
||||
|
||||
@@ -874,8 +855,9 @@ static void write_rgb_span( const GLcontext* ctx,
|
||||
*/
|
||||
static void write_mono_rgba_span( const GLcontext* ctx,
|
||||
GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[])
|
||||
const GLchan color[4], const GLubyte mask[])
|
||||
{
|
||||
ULONG pixel = RGB( color[RCOMP], color[GCOMP], color[BCOMP] );
|
||||
STARTPROFILE
|
||||
GLuint i;
|
||||
HDC DC=DD_GETDC;
|
||||
@@ -886,12 +868,12 @@ static void write_mono_rgba_span( const GLcontext* ctx,
|
||||
for (i=0; i<n; i++)
|
||||
if (mask[i])
|
||||
// Trying
|
||||
wmSetPixel(pwc,y,x+i,GetRValue(Current->pixel), GetGValue(Current->pixel), GetBValue(Current->pixel));
|
||||
wmSetPixel(pwc,y,x+i,color[RCOMP], color[GCOMP], color[BCOMP]);
|
||||
}
|
||||
else {
|
||||
for (i=0; i<n; i++)
|
||||
if (mask[i])
|
||||
SetPixel(DC, y, x+i, Current->pixel);
|
||||
SetPixel(DC, y, x+i, pixel);
|
||||
}
|
||||
DD_RELEASEDC;
|
||||
ENDPROFILE(write_mono_rgba_span)
|
||||
@@ -930,7 +912,7 @@ static void write_ci32_pixels( const GLcontext* ctx,
|
||||
static void write_mono_ci_pixels( const GLcontext* ctx,
|
||||
GLuint n,
|
||||
const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] )
|
||||
GLuint colorIndex, const GLubyte mask[] )
|
||||
{
|
||||
STARTPROFILE
|
||||
GLuint i;
|
||||
@@ -938,7 +920,7 @@ static void write_mono_ci_pixels( const GLcontext* ctx,
|
||||
for (i=0; i<n; i++) {
|
||||
if (mask[i]) {
|
||||
BYTE *Mem=Current->ScreenMem+FLIP(y[i])*Current->ScanWidth+x[i];
|
||||
*Mem = Current->pixel;
|
||||
*Mem = colorIndex;
|
||||
}
|
||||
}
|
||||
ENDPROFILE(write_mono_ci_pixels)
|
||||
@@ -958,7 +940,8 @@ static void write_rgba_pixels( const GLcontext* ctx,
|
||||
assert(Current->rgb_flag==GL_TRUE);
|
||||
for (i=0; i<n; i++)
|
||||
if (mask[i])
|
||||
wmSetPixel(pwc, FLIP(y[i]),x[i],rgba[i][RCOMP],rgba[i][GCOMP],rgba[i][BCOMP]);
|
||||
wmSetPixel(pwc, FLIP(y[i]), x[i],
|
||||
rgba[i][RCOMP], rgba[i][GCOMP], rgba[i][BCOMP]);
|
||||
DD_RELEASEDC;
|
||||
ENDPROFILE(write_rgba_pixels)
|
||||
}
|
||||
@@ -972,6 +955,7 @@ static void write_rgba_pixels( const GLcontext* ctx,
|
||||
static void write_mono_rgba_pixels( const GLcontext* ctx,
|
||||
GLuint n,
|
||||
const GLint x[], const GLint y[],
|
||||
const GLchan color[4],
|
||||
const GLubyte mask[] )
|
||||
{
|
||||
STARTPROFILE
|
||||
@@ -981,8 +965,8 @@ static void write_mono_rgba_pixels( const GLcontext* ctx,
|
||||
assert(Current->rgb_flag==GL_TRUE);
|
||||
for (i=0; i<n; i++)
|
||||
if (mask[i])
|
||||
wmSetPixel(pwc, FLIP(y[i]),x[i],GetRValue(Current->pixel),
|
||||
GetGValue(Current->pixel), GetBValue(Current->pixel));
|
||||
wmSetPixel(pwc, FLIP(y[i]),x[i],color[RCOMP],
|
||||
color[GCOMP], color[BCOMP]);
|
||||
DD_RELEASEDC;
|
||||
ENDPROFILE(write_mono_rgba_pixels)
|
||||
}
|
||||
@@ -1109,9 +1093,6 @@ void setup_DD_pointers( GLcontext* ctx )
|
||||
ctx->Driver.ClearColor = clear_color;
|
||||
ctx->Driver.Clear = clear;
|
||||
|
||||
ctx->Driver.Index = set_index;
|
||||
ctx->Driver.Color = set_color;
|
||||
|
||||
ctx->Driver.Enable = enable;
|
||||
|
||||
ctx->Driver.SetDrawBuffer = set_draw_buffer;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: xm_api.c,v 1.6 2000/11/05 18:26:12 keithw Exp $ */
|
||||
/* $Id: xm_api.c,v 1.7 2000/11/14 17:40:15 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -1295,14 +1295,11 @@ static GLboolean initialize_visual_and_buffer( int client,
|
||||
|
||||
/* X11 graphics contexts */
|
||||
#ifdef XFree86Server
|
||||
b->gc1 = CreateScratchGC(v->display, window->depth);
|
||||
b->gc2 = CreateScratchGC(v->display, window->depth);
|
||||
b->gc = CreateScratchGC(v->display, window->depth);
|
||||
#else
|
||||
b->gc1 = XCreateGC( v->display, window, 0, NULL );
|
||||
b->gc2 = XCreateGC( v->display, window, 0, NULL );
|
||||
b->gc = XCreateGC( v->display, window, 0, NULL );
|
||||
#endif
|
||||
XMesaSetFunction( v->display, b->gc1, GXcopy );
|
||||
XMesaSetFunction( v->display, b->gc2, GXcopy );
|
||||
XMesaSetFunction( v->display, b->gc, GXcopy );
|
||||
|
||||
/*
|
||||
* Don't generate Graphics Expose/NoExpose events in swapbuffers().
|
||||
@@ -1993,8 +1990,7 @@ void XMesaDestroyBuffer( XMesaBuffer b )
|
||||
client = CLIENT_ID(b->frontbuffer->id);
|
||||
#endif
|
||||
|
||||
if (b->gc1) XMesaFreeGC( b->xm_visual->display, b->gc1 );
|
||||
if (b->gc2) XMesaFreeGC( b->xm_visual->display, b->gc2 );
|
||||
if (b->gc) XMesaFreeGC( b->xm_visual->display, b->gc );
|
||||
if (b->cleargc) XMesaFreeGC( b->xm_visual->display, b->cleargc );
|
||||
|
||||
if (b->backimage) {
|
||||
@@ -2099,9 +2095,6 @@ GLboolean XMesaMakeCurrent2( XMesaContext c, XMesaBuffer drawBuffer,
|
||||
* Must recompute and set these pixel values because colormap
|
||||
* can be different for different windows.
|
||||
*/
|
||||
c->pixel = xmesa_color_to_pixel( c, c->red, c->green,
|
||||
c->blue, c->alpha, c->pixelformat );
|
||||
XMesaSetForeground( c->display, c->xm_buffer->gc1, c->pixel );
|
||||
c->clearpixel = xmesa_color_to_pixel( c,
|
||||
c->clearcolor[0],
|
||||
c->clearcolor[1],
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: xm_dd.c,v 1.4 2000/11/13 20:02:57 keithw Exp $ */
|
||||
/* $Id: xm_dd.c,v 1.5 2000/11/14 17:40:15 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -245,33 +245,6 @@ clear_color( GLcontext *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a )
|
||||
|
||||
|
||||
|
||||
/* Set current color index */
|
||||
static void
|
||||
set_index( GLcontext *ctx, GLuint index )
|
||||
{
|
||||
const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
|
||||
unsigned long p = (unsigned long) index;
|
||||
xmesa->pixel = p;
|
||||
XMesaSetForeground( xmesa->display, xmesa->xm_buffer->gc1, p );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Set current drawing color */
|
||||
static void
|
||||
set_color( GLcontext *ctx, GLubyte r, GLubyte g, GLubyte b, GLubyte a )
|
||||
{
|
||||
const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
|
||||
xmesa->red = r;
|
||||
xmesa->green = g;
|
||||
xmesa->blue = b;
|
||||
xmesa->alpha = a;
|
||||
xmesa->pixel = xmesa_color_to_pixel( xmesa, r, g, b, a, xmesa->pixelformat );;
|
||||
XMesaSetForeground( xmesa->display, xmesa->xm_buffer->gc1, xmesa->pixel );
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Set index mask ala glIndexMask */
|
||||
static void
|
||||
index_mask( GLcontext *ctx, GLuint mask )
|
||||
@@ -807,7 +780,7 @@ drawpixels_8R8G8B( GLcontext *ctx,
|
||||
const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xmesa->xm_buffer->buffer;
|
||||
XMesaGC gc = xmesa->xm_buffer->gc1;
|
||||
XMesaGC gc = xmesa->xm_buffer->gc;
|
||||
assert(dpy);
|
||||
assert(buffer);
|
||||
assert(gc);
|
||||
@@ -952,8 +925,6 @@ void xmesa_init_pointers( GLcontext *ctx )
|
||||
ctx->Driver.SetDrawBuffer = set_draw_buffer;
|
||||
ctx->Driver.SetReadBuffer = set_read_buffer;
|
||||
|
||||
ctx->Driver.Index = set_index;
|
||||
ctx->Driver.Color = set_color;
|
||||
ctx->Driver.ClearIndex = clear_index;
|
||||
ctx->Driver.ClearColor = clear_color;
|
||||
ctx->Driver.Clear = clear_buffers;
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: xm_line.c,v 1.8 2000/11/06 17:28:20 brianp Exp $ */
|
||||
/* $Id: xm_line.c,v 1.9 2000/11/14 17:40:15 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -60,7 +60,7 @@ static void draw_points_ANY_pixmap( GLcontext *ctx, SWvertex *vert )
|
||||
XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
|
||||
XMesaDisplay *dpy = xmesa->xm_visual->display;
|
||||
XMesaDrawable buffer = xmesa->xm_buffer->buffer;
|
||||
XMesaGC gc = xmesa->xm_buffer->gc2;
|
||||
XMesaGC gc = xmesa->xm_buffer->gc;
|
||||
|
||||
if (xmesa->xm_visual->gl_visual->RGBAflag) {
|
||||
register int x, y;
|
||||
@@ -114,38 +114,6 @@ void xmesa_choose_point( GLcontext *ctx )
|
||||
/**********************************************************************/
|
||||
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Render a line into a pixmap, any pixel format.
|
||||
*/
|
||||
static void flat_pixmap_line( GLcontext *ctx,
|
||||
SWvertex *vert0, SWvertex *vert1 )
|
||||
{
|
||||
XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
|
||||
register int x0, y0, x1, y1;
|
||||
XMesaGC gc;
|
||||
unsigned long pixel;
|
||||
if (xmesa->xm_visual->gl_visual->RGBAflag) {
|
||||
const GLubyte *color = vert0->color;
|
||||
pixel = xmesa_color_to_pixel( xmesa, color[0], color[1], color[2], color[3],
|
||||
xmesa->pixelformat );
|
||||
}
|
||||
else {
|
||||
pixel = vert0->index;
|
||||
}
|
||||
gc = xmesa->xm_buffer->gc2;
|
||||
XMesaSetForeground( xmesa->display, gc, pixel );
|
||||
|
||||
x0 = (GLint) vert0->win[0];
|
||||
y0 = FLIP( xmesa->xm_buffer, (GLint) vert0->win[1] );
|
||||
x1 = (GLint) vert1->win[0];
|
||||
y1 = FLIP( xmesa->xm_buffer, (GLint) vert1->win[1] );
|
||||
XMesaDrawLine( xmesa->display, xmesa->xm_buffer->buffer, gc,
|
||||
x0, y0, x1, y1 );
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Draw a flat-shaded, PF_TRUECOLOR line into an XImage.
|
||||
*/
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
/* $Id: xm_tri.c,v 1.8 2000/11/06 17:28:20 brianp Exp $ */
|
||||
/* $Id: xm_tri.c,v 1.9 2000/11/14 17:40:15 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -53,46 +53,6 @@
|
||||
/**********************************************************************/
|
||||
|
||||
|
||||
#if 0
|
||||
/*
|
||||
* Render a triangle into a pixmap, any pixel format, flat shaded and
|
||||
* no raster ops.
|
||||
*/
|
||||
static void flat_pixmap_triangle( GLcontext *ctx,
|
||||
SWvertex *v0,
|
||||
SWvertex *v1,
|
||||
SWvertex *v2 )
|
||||
{
|
||||
XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
|
||||
XMesaPoint p[3];
|
||||
XMesaGC gc;
|
||||
|
||||
{
|
||||
unsigned long pixel;
|
||||
if (xmesa->xm_visual->gl_visual->RGBAflag) {
|
||||
pixel = xmesa_color_to_pixel( xmesa,
|
||||
v0->color[0], v0->color[1],
|
||||
v0->color[2], v0->color[3],
|
||||
xmesa->pixelformat );
|
||||
}
|
||||
else {
|
||||
pixel = v0->index;
|
||||
}
|
||||
gc = xmesa->xm_buffer->gc2;
|
||||
XMesaSetForeground( xmesa->display, gc, pixel );
|
||||
}
|
||||
p[0].x = (GLint) (v0->win[0] + 0.5f);
|
||||
p[0].y = FLIP( xmesa->xm_buffer, (GLint) (v0->win[1] - 0.5f) );
|
||||
p[1].x = (GLint) (v1->win[0] + 0.5f);
|
||||
p[1].y = FLIP( xmesa->xm_buffer, (GLint) (v1->win[1] - 0.5f) );
|
||||
p[2].x = (GLint) (v2->win[0] + 0.5f);
|
||||
p[2].y = FLIP( xmesa->xm_buffer, (GLint) (v2->win[1] - 0.5f) );
|
||||
XMesaFillPolygon( xmesa->display, xmesa->xm_buffer->buffer, gc,
|
||||
p, 3, Convex, CoordModeOrigin );
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* XImage, smooth, depth-buffered, PF_TRUECOLOR triangle.
|
||||
*/
|
||||
@@ -563,7 +523,7 @@ static void flat_8R8G8B_z_triangle( GLcontext *ctx,
|
||||
#define INNER_LOOP( LEFT, RIGHT, Y ) \
|
||||
{ \
|
||||
GLint i, len = RIGHT-LEFT; \
|
||||
(void) fffog; \
|
||||
(void) fffog; \
|
||||
for (i=0;i<len;i++) { \
|
||||
GLdepth z = FixedToDepth(ffz); \
|
||||
if (z < zRow[i]) { \
|
||||
@@ -595,7 +555,7 @@ static void flat_8R8G8B24_z_triangle( GLcontext *ctx,
|
||||
#define INNER_LOOP( LEFT, RIGHT, Y ) \
|
||||
{ \
|
||||
GLint i, len = RIGHT-LEFT; \
|
||||
(void) fffog; \
|
||||
(void) fffog; \
|
||||
for (i=0;i<len;i++) { \
|
||||
GLdepth z = FixedToDepth(ffz); \
|
||||
if (z < zRow[i]) { \
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: xmesaP.h,v 1.14 2000/11/05 18:26:12 keithw Exp $ */
|
||||
/* $Id: xmesaP.h,v 1.15 2000/11/14 17:40:15 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -142,9 +142,6 @@ struct xmesa_context {
|
||||
|
||||
GLuint pixelformat; /* Current pixel format */
|
||||
|
||||
GLubyte red, green, blue, alpha; /* current drawing color */
|
||||
unsigned long pixel; /* current drawing pixel value */
|
||||
|
||||
GLubyte clearcolor[4]; /* current clearing color */
|
||||
unsigned long clearpixel; /* current clearing pixel value */
|
||||
|
||||
@@ -209,8 +206,7 @@ struct xmesa_buffer {
|
||||
XMesaPixmap stipple_pixmap; /* For polygon stippling */
|
||||
XMesaGC stipple_gc; /* For polygon stippling */
|
||||
|
||||
XMesaGC gc1; /* GC for infrequent color changes */
|
||||
XMesaGC gc2; /* GC for frequent color changes */
|
||||
XMesaGC gc; /* scratch GC for span, line, tri drawing */
|
||||
XMesaGC cleargc; /* GC for clearing the color buffer */
|
||||
|
||||
/* The following are here instead of in the XMesaVisual
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: dd.h,v 1.40 2000/11/13 20:02:56 keithw Exp $ */
|
||||
/* $Id: dd.h,v 1.41 2000/11/14 17:40:13 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -177,19 +177,6 @@ struct dd_function_table {
|
||||
* settings! Software Mesa can do masked clears if the device driver can't.
|
||||
*/
|
||||
|
||||
void (*Index)( GLcontext *ctx, GLuint index );
|
||||
/*
|
||||
* Sets current color index for drawing flat-shaded primitives.
|
||||
* This index should also be used in the "mono" drawing functions.
|
||||
*/
|
||||
|
||||
void (*Color)( GLcontext *ctx,
|
||||
GLchan red, GLchan green, GLchan glue, GLchan alpha );
|
||||
/*
|
||||
* Sets current color for drawing flat-shaded primitives.
|
||||
* This color should also be used in the "mono" drawing functions.
|
||||
*/
|
||||
|
||||
GLboolean (*SetDrawBuffer)( GLcontext *ctx, GLenum buffer );
|
||||
/*
|
||||
* Specifies the current buffer for writing.
|
||||
@@ -243,9 +230,8 @@ struct dd_function_table {
|
||||
*/
|
||||
|
||||
void (*WriteMonoRGBASpan)( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[] );
|
||||
/* Write a horizontal run of RGBA pixels all with the color last
|
||||
* specified by the Color function.
|
||||
const GLchan color[4], const GLubyte mask[] );
|
||||
/* Write a horizontal run of RGBA pixels all with the same color.
|
||||
*/
|
||||
|
||||
void (*WriteRGBAPixels)( const GLcontext *ctx,
|
||||
@@ -256,7 +242,7 @@ struct dd_function_table {
|
||||
|
||||
void (*WriteMonoRGBAPixels)( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] );
|
||||
const GLchan color[4], const GLubyte mask[] );
|
||||
/* Write an array of mono-RGBA pixels at random locations.
|
||||
*/
|
||||
|
||||
@@ -270,7 +256,7 @@ struct dd_function_table {
|
||||
*/
|
||||
|
||||
void (*WriteMonoCISpan)( const GLcontext *ctx, GLuint n, GLint x, GLint y,
|
||||
const GLubyte mask[] );
|
||||
GLuint colorIndex, const GLubyte mask[] );
|
||||
/* Write a horizontal run of color index pixels using the color index
|
||||
* last specified by the Index() function.
|
||||
*/
|
||||
@@ -284,7 +270,7 @@ struct dd_function_table {
|
||||
|
||||
void (*WriteMonoCIPixels)( const GLcontext *ctx,
|
||||
GLuint n, const GLint x[], const GLint y[],
|
||||
const GLubyte mask[] );
|
||||
GLuint colorIndex, const GLubyte mask[] );
|
||||
/* Write a random array of color index pixels using the color index
|
||||
* last specified by the Index() function.
|
||||
*/
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: s_span.c,v 1.3 2000/11/13 20:02:57 keithw Exp $ */
|
||||
/* $Id: s_span.c,v 1.4 2000/11/14 17:40:16 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -364,7 +364,7 @@ void gl_write_monoindex_span( GLcontext *ctx,
|
||||
}
|
||||
else {
|
||||
/* normal situation: draw to exactly one buffer */
|
||||
(*ctx->Driver.WriteMonoCISpan)( ctx, n, x, y, mask );
|
||||
(*ctx->Driver.WriteMonoCISpan)( ctx, n, x, y, index, mask );
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -713,7 +713,7 @@ void gl_write_monocolor_span( GLcontext *ctx,
|
||||
(const GLchan (*)[4]) rgba, mask );
|
||||
}
|
||||
else {
|
||||
(*ctx->Driver.WriteMonoRGBASpan)( ctx, n, x, y, mask );
|
||||
(*ctx->Driver.WriteMonoRGBASpan)( ctx, n, x, y, color, mask );
|
||||
if (swrast->_RasterMask & ALPHABUF_BIT) {
|
||||
_mesa_write_mono_alpha_span( ctx, n, x, y, (GLchan) color[ACOMP],
|
||||
write_all ? Null : mask );
|
||||
|
@@ -1,4 +1,4 @@
|
||||
/* $Id: s_triangle.c,v 1.3 2000/11/13 20:02:57 keithw Exp $ */
|
||||
/* $Id: s_triangle.c,v 1.4 2000/11/14 17:40:16 brianp Exp $ */
|
||||
|
||||
/*
|
||||
* Mesa 3-D graphics library
|
||||
@@ -74,12 +74,7 @@ static void flat_ci_triangle( GLcontext *ctx,
|
||||
SWvertex *v2 )
|
||||
{
|
||||
#define INTERP_Z 1
|
||||
#define SETUP_CODE \
|
||||
GLuint index = v0->index; \
|
||||
if (1) { \
|
||||
/* set the color index */ \
|
||||
(*ctx->Driver.Index)( ctx, index ); \
|
||||
}
|
||||
#define SETUP_CODE
|
||||
|
||||
#define INNER_LOOP( LEFT, RIGHT, Y ) \
|
||||
{ \
|
||||
@@ -95,7 +90,7 @@ static void flat_ci_triangle( GLcontext *ctx,
|
||||
fffog += fdfogdx; \
|
||||
} \
|
||||
gl_write_monoindex_span( ctx, n, LEFT, Y, zspan, \
|
||||
fogspan, index, GL_POLYGON ); \
|
||||
fogspan, v0->index, GL_POLYGON ); \
|
||||
} \
|
||||
}
|
||||
|
||||
@@ -152,15 +147,7 @@ static void flat_rgba_triangle( GLcontext *ctx,
|
||||
#define INTERP_Z 1
|
||||
#define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
|
||||
|
||||
#define SETUP_CODE \
|
||||
if (1) { \
|
||||
/* set the color */ \
|
||||
GLchan r = v0->color[0]; \
|
||||
GLchan g = v0->color[1]; \
|
||||
GLchan b = v0->color[2]; \
|
||||
GLchan a = v0->color[3]; \
|
||||
(*ctx->Driver.Color)( ctx, r, g, b, a ); \
|
||||
}
|
||||
#define SETUP_CODE
|
||||
|
||||
#define INNER_LOOP( LEFT, RIGHT, Y ) \
|
||||
{ \
|
||||
@@ -176,8 +163,7 @@ static void flat_rgba_triangle( GLcontext *ctx,
|
||||
fffog += fdfogdx; \
|
||||
} \
|
||||
gl_write_monocolor_span( ctx, n, LEFT, Y, zspan, \
|
||||
fogspan, \
|
||||
v0->color, \
|
||||
fogspan, v0->color, \
|
||||
GL_POLYGON ); \
|
||||
} \
|
||||
}
|
||||
|
Reference in New Issue
Block a user