Overhaul of glRead/DrawBuffer() code. Now, swrast->Driver.SetBuffer()

indicates the read AND draw color buffer for all software rasterization.
Lots of related clean-ups.  See RELNOTES-4.1 for details.
This commit is contained in:
Brian Paul
2002-07-09 01:22:50 +00:00
parent b4338e5887
commit 3b4fbbc129
33 changed files with 496 additions and 607 deletions

View File

@@ -1,4 +1,4 @@
/* $Id: osmesa.c,v 1.85 2002/06/30 16:07:18 brianp Exp $ */
/* $Id: osmesa.c,v 1.86 2002/07/09 01:22:51 brianp Exp $ */
/*
* Mesa 3-D graphics library
@@ -721,14 +721,7 @@ do { \
static void set_draw_buffer( GLcontext *ctx, GLenum mode )
{
(void) ctx;
(void) mode;
}
static void set_read_buffer( GLcontext *ctx, GLframebuffer *buffer, GLenum mode )
static void set_buffer( GLcontext *ctx, GLframebuffer *buffer, GLenum mode )
{
/* separate read buffer not supported */
ASSERT(buffer == ctx->DrawBuffer);
@@ -1887,7 +1880,6 @@ static void smooth_rgba_z_triangle( GLcontext *ctx,
const SWvertex *v2 )
{
const OSMesaContext osmesa = OSMESA_CONTEXT(ctx);
#define INTERP_Z 1
#define DEPTH_TYPE DEFAULT_SOFTWARE_DEPTH_TYPE
#define INTERP_RGB 1
@@ -1903,7 +1895,7 @@ static void smooth_rgba_z_triangle( GLcontext *ctx,
FixedToChan(span->alpha)); \
zRow[i] = z; \
} \
span->red += span->redStep; \
span->red += span->redStep; \
span->green += span->greenStep; \
span->blue += span->blueStep; \
span->alpha += span->alphaStep; \
@@ -2080,7 +2072,6 @@ static void osmesa_update_state( GLcontext *ctx, GLuint new_state )
ctx->Driver.GetString = get_string;
ctx->Driver.UpdateState = osmesa_update_state;
ctx->Driver.SetDrawBuffer = set_draw_buffer;
ctx->Driver.ResizeBuffers = _swrast_alloc_buffers;
ctx->Driver.GetBufferSize = buffer_size;
@@ -2090,6 +2081,7 @@ static void osmesa_update_state( GLcontext *ctx, GLuint new_state )
ctx->Driver.CopyPixels = _swrast_CopyPixels;
ctx->Driver.DrawPixels = _swrast_DrawPixels;
ctx->Driver.ReadPixels = _swrast_ReadPixels;
ctx->Driver.DrawBuffer = _swrast_DrawBuffer;
ctx->Driver.ChooseTextureFormat = _mesa_choose_tex_format;
ctx->Driver.TexImage1D = _mesa_store_teximage1d;
@@ -2114,6 +2106,8 @@ static void osmesa_update_state( GLcontext *ctx, GLuint new_state )
ctx->Driver.CompressedTextureSize = _mesa_compressed_texture_size;
ctx->Driver.GetCompressedTexImage = _mesa_get_compressed_teximage;
swdd->SetBuffer = set_buffer;
/* RGB(A) span/pixel functions */
if (osmesa->format == OSMESA_RGB) {
swdd->WriteRGBASpan = write_rgba_span_RGB;
@@ -2171,8 +2165,6 @@ static void osmesa_update_state( GLcontext *ctx, GLuint new_state )
swdd->ReadCI32Span = read_index_span;
swdd->ReadCI32Pixels = read_index_pixels;
swdd->SetReadBuffer = set_read_buffer;
tnl->Driver.RunPipeline = _tnl_run_pipeline;
_swrast_InvalidateState( ctx, new_state );