X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fswrast%2Fs_bitmap.c;h=324daea3681d701491a2617fe0dc6d3474cba422;hb=a1e9b72102f21426b6c4e6b47ac1742eb79d904f;hp=2308acae1cd826371c3f530104f80ab3ff6c939b;hpb=9e445d3e6374c2a9b163f1262ea5a1047e596cae;p=mesa.git diff --git a/src/mesa/swrast/s_bitmap.c b/src/mesa/swrast/s_bitmap.c index 2308acae1cd..324daea3681 100644 --- a/src/mesa/swrast/s_bitmap.c +++ b/src/mesa/swrast/s_bitmap.c @@ -1,6 +1,5 @@ /* * Mesa 3-D graphics library - * Version: 7.1 * * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * @@ -17,9 +16,10 @@ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL - * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN - * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN - * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR + * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, + * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR + * OTHER DEALINGS IN THE SOFTWARE. */ /** @@ -29,10 +29,11 @@ */ #include "main/glheader.h" -#include "bufferobj.h" -#include "image.h" +#include "main/bufferobj.h" +#include "main/condrender.h" +#include "main/image.h" #include "main/macros.h" -#include "pixel.h" +#include "main/pbo.h" #include "s_context.h" #include "s_span.h" @@ -45,23 +46,25 @@ * 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 ) { - SWcontext *swrast = SWRAST_CONTEXT(ctx); GLint row, col; GLuint count = 0; SWspan span; - ASSERT(ctx->RenderMode == GL_RENDER); + assert(ctx->RenderMode == GL_RENDER); + + if (!_mesa_check_conditional_render(ctx)) + return; /* don't draw */ - bitmap = _mesa_map_bitmap_pbo(ctx, unpack, bitmap); + bitmap = (const GLubyte *) _mesa_map_pbo_source(ctx, unpack, bitmap); if (!bitmap) return; - RENDER_START(swrast,ctx); + swrast_render_start(ctx); if (SWRAST_CONTEXT(ctx)->NewState) _swrast_validate_derived( ctx ); @@ -120,21 +123,18 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, src++; } - if (count + width >= MAX_WIDTH || row + 1 == height) { + if (count + width >= SWRAST_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; } } - RENDER_FINISH(swrast,ctx); + swrast_render_finish(ctx); - _mesa_unmap_bitmap_pbo(ctx, unpack); + _mesa_unmap_pbo_source(ctx, unpack); } @@ -145,7 +145,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 ) @@ -154,10 +154,10 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, GLint row, col; SWspan span; - ASSERT(ctx->RenderMode == GL_RENDER); - ASSERT(bitmap); + assert(ctx->RenderMode == GL_RENDER); + assert(bitmap); - RENDER_START(swrast,ctx); + swrast_render_start(ctx); if (SWRAST_CONTEXT(ctx)->NewState) _swrast_validate_derived( ctx ); @@ -190,10 +190,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) @@ -213,10 +210,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) @@ -224,6 +218,6 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, } } - RENDER_FINISH(swrast,ctx); + swrast_render_finish(ctx); } #endif