diff options
author | Brian <brian.paul@tungstengraphics.com> | 2008-03-21 13:41:00 -0600 |
---|---|---|
committer | Brian <brian.paul@tungstengraphics.com> | 2008-03-21 13:41:00 -0600 |
commit | a429a25cd55b8c16356a60452de92228bb6c71b0 (patch) | |
tree | f743a3bc4e3a9a52582e8e4bbaf8545de132fb6c /src/mesa/swrast/s_bitmap.c | |
parent | 85ea7ff25cec703a00d79246df49a4ae6192c395 (diff) | |
download | external_mesa3d-a429a25cd55b8c16356a60452de92228bb6c71b0.zip external_mesa3d-a429a25cd55b8c16356a60452de92228bb6c71b0.tar.gz external_mesa3d-a429a25cd55b8c16356a60452de92228bb6c71b0.tar.bz2 |
add a number of PBO validate/map/unmap functions
Helper functions for (some) drivers, including swrast.
Diffstat (limited to 'src/mesa/swrast/s_bitmap.c')
-rw-r--r-- | src/mesa/swrast/s_bitmap.c | 32 |
1 files changed, 7 insertions, 25 deletions
diff --git a/src/mesa/swrast/s_bitmap.c b/src/mesa/swrast/s_bitmap.c index 1e7f6c1..17f639f 100644 --- a/src/mesa/swrast/s_bitmap.c +++ b/src/mesa/swrast/s_bitmap.c @@ -1,8 +1,8 @@ /* * Mesa 3-D graphics library - * Version: 6.5.2 + * Version: 7.1 * - * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * Copyright (C) 1999-2008 Brian Paul All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -57,24 +57,10 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, ASSERT(ctx->RenderMode == GL_RENDER); - if (unpack->BufferObj->Name) { - /* unpack from PBO */ - GLubyte *buf; - if (!_mesa_validate_pbo_access(2, unpack, width, height, 1, - GL_COLOR_INDEX, GL_BITMAP, - (GLvoid *) bitmap)) { - _mesa_error(ctx, GL_INVALID_OPERATION,"glBitmap(invalid PBO access)"); - return; - } - buf = (GLubyte *) ctx->Driver.MapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT, - GL_READ_ONLY_ARB, - unpack->BufferObj); - if (!buf) { - /* buffer is already mapped - that's an error */ - _mesa_error(ctx, GL_INVALID_OPERATION, "glBitmap(PBO is mapped)"); - return; - } - bitmap = ADD_POINTERS(buf, bitmap); + bitmap = _mesa_validate_and_map_bitmap_pbo(ctx, width, height, + unpack, bitmap); + if (!bitmap) { + return NULL; } RENDER_START(swrast,ctx); @@ -150,11 +136,7 @@ _swrast_Bitmap( GLcontext *ctx, GLint px, GLint py, RENDER_FINISH(swrast,ctx); - if (unpack->BufferObj->Name) { - /* done with PBO so unmap it now */ - ctx->Driver.UnmapBuffer(ctx, GL_PIXEL_UNPACK_BUFFER_EXT, - unpack->BufferObj); - } + _mesa_unmap_bitmap_pbo(ctx, unpack); } |