X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fswrast%2Fs_bitmap.c;h=21488d3ba3ee826258fd6c9f39de89e49260dfdb;hb=cd6a31cd4a9ea6deef4778c2eaef2d47240c3a6e;hp=5e7822cf3231576c662aa617048cc79654e1ae43;hpb=2d5b86be25a7ccb729e746aa5e1bdd537d76df68;p=mesa.git diff --git a/src/mesa/swrast/s_bitmap.c b/src/mesa/swrast/s_bitmap.c index 5e7822cf323..21488d3ba3e 100644 --- a/src/mesa/swrast/s_bitmap.c +++ b/src/mesa/swrast/s_bitmap.c @@ -30,9 +30,9 @@ #include "main/glheader.h" #include "main/bufferobj.h" +#include "main/condrender.h" #include "main/image.h" #include "main/macros.h" -#include "main/pixel.h" #include "s_context.h" #include "s_span.h" @@ -45,7 +45,7 @@ * All parameter error checking will have been done before this is called. */ void -_swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, +_swrast_Bitmap( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ) @@ -56,7 +56,10 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, ASSERT(ctx->RenderMode == GL_RENDER); - bitmap = _mesa_map_bitmap_pbo(ctx, unpack, bitmap); + if (!_mesa_check_conditional_render(ctx)) + return; /* don't draw */ + + bitmap = (const GLubyte *) _mesa_map_pbo_source(ctx, unpack, bitmap); if (!bitmap) return; @@ -122,10 +125,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, if (count + width >= MAX_WIDTH || row + 1 == height) { /* flush the span */ span.end = count; - if (ctx->Visual.rgbMode) - _swrast_write_rgba_span(ctx, &span); - else - _swrast_write_index_span(ctx, &span); + _swrast_write_rgba_span(ctx, &span); span.end = 0; count = 0; } @@ -133,7 +133,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, swrast_render_finish(ctx); - _mesa_unmap_bitmap_pbo(ctx, unpack); + _mesa_unmap_pbo_source(ctx, unpack); } @@ -144,7 +144,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, * draw or skip. */ void -_swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, +_swrast_Bitmap( struct gl_context *ctx, GLint px, GLint py, GLsizei width, GLsizei height, const struct gl_pixelstore_attrib *unpack, const GLubyte *bitmap ) @@ -189,10 +189,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, } } - if (ctx->Visual.rgbMode) - _swrast_write_rgba_span(ctx, &span); - else - _swrast_write_index_span(ctx, &span); + _swrast_write_rgba_span(ctx, &span); /* get ready for next row */ if (mask != 1) @@ -212,10 +209,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, } } - if (ctx->Visual.rgbMode) - _swrast_write_rgba_span(ctx, &span); - else - _swrast_write_index_span(ctx, &span); + _swrast_write_rgba_span(ctx, &span); /* get ready for next row */ if (mask != 128)