diff options
author | marha <marha@users.sourceforge.net> | 2012-04-30 11:11:16 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2012-04-30 11:11:16 +0200 |
commit | 0f0386d4e90cb0769eddc04b18742d5a9a72ea05 (patch) | |
tree | a8a5fb11e78c4afe6637c5adfa0d2224208f7314 /mesalib/src/mesa/state_tracker/st_cb_drawpixels.c | |
parent | cd27f58626705bcb561115b8e5b0d1430df83fa6 (diff) | |
parent | 762b7fde3d57d3a151f98535fd31516b7e823bc0 (diff) | |
download | vcxsrv-0f0386d4e90cb0769eddc04b18742d5a9a72ea05.tar.gz vcxsrv-0f0386d4e90cb0769eddc04b18742d5a9a72ea05.tar.bz2 vcxsrv-0f0386d4e90cb0769eddc04b18742d5a9a72ea05.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
pixman/pixman/pixman-mmx.c
xorg-server/glx/glapi_gentable.c
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_cb_drawpixels.c')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_cb_drawpixels.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c index 5e078a85e..9a3f22465 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c +++ b/mesalib/src/mesa/state_tracker/st_cb_drawpixels.c @@ -1509,7 +1509,15 @@ st_CopyPixels(struct gl_context *ctx, GLint srcx, GLint srcy, readY = srcy; readW = width; readH = height; - _mesa_clip_readpixels(ctx, &readX, &readY, &readW, &readH, &pack); + if (!_mesa_clip_readpixels(ctx, &readX, &readY, &readW, &readH, &pack)) { + /* The source region is completely out of bounds. Do nothing. + * The GL spec says "Results of copies from outside the window, + * or from regions of the window that are not exposed, are + * hardware dependent and undefined." + */ + return; + } + readW = MAX2(0, readW); readH = MAX2(0, readH); |