[Mesa-dev] [PATCH 07/22] swrast: rewrite _swrast_read_depth_span_float()

Brian Paul brianp at vmware.com
Sun Dec 18 19:08:12 PST 2011


Stop using the deprecated renderbuffer GetRow() function.
---
 src/mesa/swrast/s_depth.c |   29 ++++-------------------------
 1 files changed, 4 insertions(+), 25 deletions(-)

diff --git a/src/mesa/swrast/s_depth.c b/src/mesa/swrast/s_depth.c
index f441795..806e62b 100644
--- a/src/mesa/swrast/s_depth.c
+++ b/src/mesa/swrast/s_depth.c
@@ -449,19 +449,16 @@ _swrast_depth_bounds_test( struct gl_context *ctx, SWspan *span )
  * bounds.
  */
 void
-_swrast_read_depth_span_float( struct gl_context *ctx, struct gl_renderbuffer *rb,
-                               GLint n, GLint x, GLint y, GLfloat depth[] )
+_swrast_read_depth_span_float(struct gl_context *ctx,
+                              struct gl_renderbuffer *rb,
+                              GLint n, GLint x, GLint y, GLfloat depth[])
 {
-   const GLfloat scale = 1.0F / ctx->DrawBuffer->_DepthMaxF;
-
    if (!rb) {
       /* really only doing this to prevent FP exceptions later */
       memset(depth, 0, n * sizeof(GLfloat));
       return;
    }
 
-   ASSERT(rb->_BaseFormat == GL_DEPTH_COMPONENT);
-
    if (y < 0 || y >= (GLint) rb->Height ||
        x + n <= 0 || x >= (GLint) rb->Width) {
       /* span is completely outside framebuffer */
@@ -489,25 +486,7 @@ _swrast_read_depth_span_float( struct gl_context *ctx, struct gl_renderbuffer *r
       return;
    }
 
-   if (rb->DataType == GL_UNSIGNED_INT) {
-      GLuint temp[MAX_WIDTH];
-      GLint i;
-      rb->GetRow(ctx, rb, n, x, y, temp);
-      for (i = 0; i < n; i++) {
-         depth[i] = temp[i] * scale;
-      }
-   }
-   else if (rb->DataType == GL_UNSIGNED_SHORT) {
-      GLushort temp[MAX_WIDTH];
-      GLint i;
-      rb->GetRow(ctx, rb, n, x, y, temp);
-      for (i = 0; i < n; i++) {
-         depth[i] = temp[i] * scale;
-      }
-   }
-   else {
-      _mesa_problem(ctx, "Invalid depth renderbuffer data type");
-   }
+   _mesa_unpack_float_z_row(rb->Format, n, get_z_address(rb, x, y), depth);
 }
 
 
-- 
1.7.3.4



More information about the mesa-dev mailing list