diff options
author | Brian Paul <[email protected]> | 2011-04-26 14:54:41 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2011-04-26 14:54:41 -0600 |
commit | 6b329b9274b18c50f4177eef7ee087d50ebc1525 (patch) | |
tree | bdce359cdb3ccddf55b98778849d2be0a950464b /src/mesa/main/readpix.c | |
parent | 37642518b8864ce751754957b08cdb437998f4e7 (diff) |
Squashed commit of the following:
commit 864fe253b04105b7469e5f7b064dc37637b944f8
Author: Brian Paul <[email protected]>
Date: Thu Apr 21 20:13:07 2011 -0600
mesa: s/exec/disp/ in _mesa_init_histogram_dispatch()
This function isn't normally compiled (FEATURE_histogram).
commit f4bf45e2b94b582cacd19cdca873c5be627e4250
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:58 2011 -0600
mesa: hook up GL_ARB_robustness dispatch functions
...and advertise the extension.
Signed-off-by: Brian Paul <[email protected]>
commit 2b89e38e5f572dc40cebc06381ae7c5d04386998
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:58 2011 -0600
mesa: regenerated API files for GL_ARB_robustness
Signed-off-by: Brian Paul <[email protected]>
commit 5d5ebfb7135cec9d833adef86cbf4d0f3d9beca8
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
glapi: add ARB_robustness xml
Signed-off-by: Brian Paul <[email protected]>
commit 0159d1d6d99f4bbc18381dc2081c20d3aff17ac9
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
mesa: implement GL_ARB_robustness functions
Signed-off-by: Brian Paul <[email protected]>
commit 938fd71f4c4742f274922d53492a7290ab8d9c9b
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
mesa: add context fields for GL_ARB_robustness
Signed-off-by: Brian Paul <[email protected]>
commit 72075137bc79e65be03dac7e97b6dba93c3a86a4
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
mesa: standardize more bounds-checking error messages
Signed-off-by: Brian Paul <[email protected]>
commit 32a3fc23746db49da903fbc08afa0135af3007d2
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
mesa: standardize some bounds-checking error messages
Signed-off-by: Brian Paul <[email protected]>
commit cecbf1f4d164207de373dec0cadee2e84e1f9656
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
mesa: add more bounds-checking support for client memory buffers
Signed-off-by: Brian Paul <[email protected]>
commit edc895b52383d5bd274422db56adead1d81daf5f
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
mesa: add bounds-checking support for client memory buffers
Signed-off-by: Brian Paul <[email protected]>
commit 3a96ef28a538f158a219b406cd090dee70470c85
Author: nobled <[email protected]>
Date: Thu Apr 21 07:53:57 2011 -0600
mesa: use is_bufferobj() helper function
Signed-off-by: Brian Paul <[email protected]>
Diffstat (limited to 'src/mesa/main/readpix.c')
-rw-r--r-- | src/mesa/main/readpix.c | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/src/mesa/main/readpix.c b/src/mesa/main/readpix.c index a172a0000f5..0331a8ca2fe 100644 --- a/src/mesa/main/readpix.c +++ b/src/mesa/main/readpix.c @@ -167,8 +167,9 @@ _mesa_error_check_format_type(struct gl_context *ctx, GLenum format, void GLAPIENTRY -_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, - GLenum format, GLenum type, GLvoid *pixels ) +_mesa_ReadnPixelsARB( GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, GLsizei bufSize, + GLvoid *pixels ) { GET_CURRENT_CONTEXT(ctx); ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx); @@ -224,21 +225,33 @@ _mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, if (width == 0 || height == 0) return; /* nothing to do */ - if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { - if (!_mesa_validate_pbo_access(2, &ctx->Pack, width, height, 1, - format, type, pixels)) { + if (!_mesa_validate_pbo_access(2, &ctx->Pack, width, height, 1, + format, type, bufSize, pixels)) { + if (_mesa_is_bufferobj(ctx->Pack.BufferObj)) { _mesa_error(ctx, GL_INVALID_OPERATION, - "glReadPixels(invalid PBO access)"); - return; + "glReadPixels(out of bounds PBO access)"); + } else { + _mesa_error(ctx, GL_INVALID_OPERATION, + "glReadnPixelsARB(out of bounds access:" + " bufSize (%d) is too small)", bufSize); } + return; + } - if (_mesa_bufferobj_mapped(ctx->Pack.BufferObj)) { - /* buffer is mapped - that's an error */ - _mesa_error(ctx, GL_INVALID_OPERATION, "glReadPixels(PBO is mapped)"); - return; - } + if (_mesa_is_bufferobj(ctx->Pack.BufferObj) && + _mesa_bufferobj_mapped(ctx->Pack.BufferObj)) { + /* buffer is mapped - that's an error */ + _mesa_error(ctx, GL_INVALID_OPERATION, "glReadPixels(PBO is mapped)"); + return; } ctx->Driver.ReadPixels(ctx, x, y, width, height, format, type, &ctx->Pack, pixels); } + +void GLAPIENTRY +_mesa_ReadPixels( GLint x, GLint y, GLsizei width, GLsizei height, + GLenum format, GLenum type, GLvoid *pixels ) +{ + _mesa_ReadnPixelsARB(x, y, width, height, format, type, INT_MAX, pixels); +} |