swrast: replace GetRow() call with _mesa_unpack_ubyte_stencil_row()
authorBrian Paul <brianp@vmware.com>
Sat, 24 Dec 2011 15:54:26 +0000 (08:54 -0700)
committerBrian Paul <brianp@vmware.com>
Sat, 24 Dec 2011 15:54:26 +0000 (08:54 -0700)
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/swrast/s_stencil.c

index 5f81fe8ec73381f6cce91fcd3865320259cdb785..aa9ab1625761e8c2fa3bcf0d0d1e56332dec9661 100644 (file)
@@ -26,6 +26,7 @@
 #include "main/glheader.h"
 #include "main/context.h"
 #include "main/imports.h"
+#include "main/format_unpack.h"
 
 #include "s_context.h"
 #include "s_depth.h"
@@ -1044,6 +1045,8 @@ void
 _swrast_read_stencil_span(struct gl_context *ctx, struct gl_renderbuffer *rb,
                           GLint n, GLint x, GLint y, GLubyte stencil[])
 {
+   GLubyte *src;
+
    if (y < 0 || y >= (GLint) rb->Height ||
        x + n <= 0 || x >= (GLint) rb->Width) {
       /* span is completely outside framebuffer */
@@ -1064,7 +1067,8 @@ _swrast_read_stencil_span(struct gl_context *ctx, struct gl_renderbuffer *rb,
       return;
    }
 
-   rb->GetRow(ctx, rb, n, x, y, stencil);
+   src = (GLubyte *) rb->Data + y * rb->RowStride +x;
+   _mesa_unpack_ubyte_stencil_row(rb->Format, n, src, stencil);
 }