Mesa (master): swrast: restructure some glReadPixels() code
Brian Paul
brianp at kemper.freedesktop.org
Fri Dec 3 22:26:47 UTC 2010
Module: Mesa
Branch: master
Commit: 40ee69b4f33288604f8d90a1d11a63dfde082952
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=40ee69b4f33288604f8d90a1d11a63dfde082952
Author: Brian Paul <brianp at vmware.com>
Date: Fri Dec 3 15:26:19 2010 -0700
swrast: restructure some glReadPixels() code
---
src/mesa/swrast/s_readpix.c | 53 ++++++++++++++++++++----------------------
1 files changed, 25 insertions(+), 28 deletions(-)
diff --git a/src/mesa/swrast/s_readpix.c b/src/mesa/swrast/s_readpix.c
index 9179678..9fe0752 100644
--- a/src/mesa/swrast/s_readpix.c
+++ b/src/mesa/swrast/s_readpix.c
@@ -476,36 +476,33 @@ _swrast_ReadPixels( struct gl_context *ctx,
_swrast_validate_derived( ctx );
/* Do all needed clipping here, so that we can forget about it later */
- if (!_mesa_clip_readpixels(ctx, &x, &y, &width, &height, &clippedPacking)) {
- /* The ReadPixels region is totally outside the window bounds */
- swrast_render_finish(ctx);
- return;
- }
-
- pixels = _mesa_map_pbo_dest(ctx, &clippedPacking, pixels);
- if (!pixels)
- return;
-
- switch (format) {
- case GL_STENCIL_INDEX:
- read_stencil_pixels(ctx, x, y, width, height, type, pixels,
+ if (_mesa_clip_readpixels(ctx, &x, &y, &width, &height, &clippedPacking)) {
+
+ pixels = _mesa_map_pbo_dest(ctx, &clippedPacking, pixels);
+
+ if (pixels) {
+ switch (format) {
+ case GL_STENCIL_INDEX:
+ read_stencil_pixels(ctx, x, y, width, height, type, pixels,
+ &clippedPacking);
+ break;
+ case GL_DEPTH_COMPONENT:
+ read_depth_pixels(ctx, x, y, width, height, type, pixels,
+ &clippedPacking);
+ break;
+ case GL_DEPTH_STENCIL_EXT:
+ read_depth_stencil_pixels(ctx, x, y, width, height, type, pixels,
+ &clippedPacking);
+ break;
+ default:
+ /* all other formats should be color formats */
+ read_rgba_pixels(ctx, x, y, width, height, format, type, pixels,
&clippedPacking);
- break;
- case GL_DEPTH_COMPONENT:
- read_depth_pixels(ctx, x, y, width, height, type, pixels,
- &clippedPacking);
- break;
- case GL_DEPTH_STENCIL_EXT:
- read_depth_stencil_pixels(ctx, x, y, width, height,
- type, pixels, &clippedPacking);
- break;
- default:
- /* all other formats should be color formats */
- read_rgba_pixels(ctx, x, y, width, height,
- format, type, pixels, &clippedPacking);
+ }
+
+ _mesa_unmap_pbo_dest(ctx, &clippedPacking);
+ }
}
swrast_render_finish(ctx);
-
- _mesa_unmap_pbo_dest(ctx, &clippedPacking);
}
More information about the mesa-commit
mailing list