From ed57286b75e337b29204cc998462a50a6fe47bc2 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 22 Aug 2010 18:48:28 -0600 Subject: st/mesa: clean-up pipe_get_transfer() calls --- src/mesa/state_tracker/st_cb_readpixels.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src/mesa/state_tracker/st_cb_readpixels.c') diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index b8493dab93..d5f5d42274 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.c +++ b/src/mesa/state_tracker/st_cb_readpixels.c @@ -74,10 +74,10 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y, /* Create a read transfer from the renderbuffer's texture */ - pt = pipe_get_transfer(st_context(ctx)->pipe, strb->texture, - 0, 0, 0, - PIPE_TRANSFER_READ, x, y, - width, height); + pt = pipe_get_transfer(pipe, strb->texture, + 0, 0, 0, /* face, level, zslice */ + PIPE_TRANSFER_READ, + x, y, width, height); /* map the stencil buffer */ stmap = pipe_transfer_map(pipe, pt); @@ -230,10 +230,10 @@ st_fast_readpixels(GLcontext *ctx, struct st_renderbuffer *strb, y = strb->texture->height0 - y - height; } - trans = pipe_get_transfer(st_context(ctx)->pipe, strb->texture, - 0, 0, 0, - PIPE_TRANSFER_READ, x, y, - width, height); + trans = pipe_get_transfer(pipe, strb->texture, + 0, 0, 0, /* face, level, zslice */ + PIPE_TRANSFER_READ, + x, y, width, height); if (!trans) { return GL_FALSE; } @@ -394,10 +394,10 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, } /* Create a read transfer from the renderbuffer's texture */ - trans = pipe_get_transfer(st_context(ctx)->pipe, strb->texture, - 0, 0, 0, - PIPE_TRANSFER_READ, x, y, - width, height); + trans = pipe_get_transfer(pipe, strb->texture, + 0, 0, 0, /* face, level, zslice */ + PIPE_TRANSFER_READ, + x, y, width, height); /* determine bottom-to-top vs. top-to-bottom order */ if (st_fb_orientation(ctx->ReadBuffer) == Y_0_TOP) { -- cgit v1.2.3 From 6b90d1b1acaaf42b9c8b787d0dac54ac74d4fdcc Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Sun, 22 Aug 2010 19:04:47 -0600 Subject: st/mesa: fix ReadPixels crashes when reading depth/stencil from a FBO MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This is based on a patch from Marek Olšák. NOTE: This is a candidate for the Mesa 7.8 branch. --- src/mesa/state_tracker/st_cb_readpixels.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/mesa/state_tracker/st_cb_readpixels.c') diff --git a/src/mesa/state_tracker/st_cb_readpixels.c b/src/mesa/state_tracker/st_cb_readpixels.c index d5f5d42274..6ab03ec939 100644 --- a/src/mesa/state_tracker/st_cb_readpixels.c +++ b/src/mesa/state_tracker/st_cb_readpixels.c @@ -68,6 +68,10 @@ st_read_stencil_pixels(GLcontext *ctx, GLint x, GLint y, ubyte *stmap; GLint j; + if (strb->Base.Wrapped) { + strb = st_renderbuffer(strb->Base.Wrapped); + } + if (st_fb_orientation(ctx->DrawBuffer) == Y_0_TOP) { y = ctx->DrawBuffer->Height - y - height; } @@ -359,6 +363,9 @@ st_readpixels(GLcontext *ctx, GLint x, GLint y, GLsizei width, GLsizei height, } else if (format == GL_DEPTH_COMPONENT) { strb = st_renderbuffer(ctx->ReadBuffer->_DepthBuffer); + if (strb->Base.Wrapped) { + strb = st_renderbuffer(strb->Base.Wrapped); + } } else { /* Read color buffer */ -- cgit v1.2.3