swrast: use _swrast_pixel_address() helper function
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:59:50 +0000 (08:59 -0700)
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/swrast/s_context.h
src/mesa/swrast/s_depth.c
src/mesa/swrast/s_stencil.c

index 446b990d990fcc785d81a3f89cdaae38ae83a8cd..af9e49ecbb6e42b0c5772a9aacd2a0df391a4ae5 100644 (file)
@@ -422,5 +422,17 @@ _swrast_unmap_renderbuffers(struct gl_context *ctx);
 #define ATTRIB_LOOP_END } }
 
 
+/**
+ * Return the address of a pixel value in a mapped renderbuffer.
+ */
+static inline GLubyte *
+_swrast_pixel_address(struct gl_renderbuffer *rb, GLint x, GLint y)
+{
+   const GLint bpp = _mesa_get_format_bytes(rb->Format);
+   const GLint rowStride = rb->RowStride * bpp;
+   return (GLubyte *) rb->Data + y * rowStride + x * bpp;
+}
+
+
 
 #endif
index 806e62b5ea0cf9287012933b27c8f322c5c1471a..f87adaa84895d3e540369c2d60a601bc632c34ca 100644 (file)
@@ -31,6 +31,7 @@
 #include "main/macros.h"
 #include "main/imports.h"
 
+#include "s_context.h"
 #include "s_depth.h"
 #include "s_span.h"
 
@@ -266,18 +267,6 @@ put_z32_values(struct gl_context *ctx, struct gl_renderbuffer *rb,
 }
 
 
-/**
- * Return the address of a Z value in a renderbuffer.
- */
-static INLINE void *
-get_z_address(struct gl_renderbuffer *rb, GLint x, GLint y)
-{
-   const GLint bpp = _mesa_get_format_bytes(rb->Format);
-   const GLint rowStride = rb->RowStride * bpp;
-   return (GLubyte *) rb->Data + y * rowStride + x * bpp;
-}
-
-
 /**
  * Apply depth (Z) buffer testing to the span.
  * \return approx number of pixels that passed (only zero is reliable)
@@ -288,7 +277,7 @@ _swrast_depth_test_span(struct gl_context *ctx, SWspan *span)
    struct gl_framebuffer *fb = ctx->DrawBuffer;
    struct gl_renderbuffer *rb = fb->Attachment[BUFFER_DEPTH].Renderbuffer;
    const GLint bpp = _mesa_get_format_bytes(rb->Format);
-   void *zStart = get_z_address(rb, span->x, span->y);
+   void *zStart = _swrast_pixel_address(rb, span->x, span->y);
    const GLuint count = span->end;
    const GLuint *fragZ = span->array->z;
    GLubyte *mask = span->array->mask;
@@ -486,7 +475,8 @@ _swrast_read_depth_span_float(struct gl_context *ctx,
       return;
    }
 
-   _mesa_unpack_float_z_row(rb->Format, n, get_z_address(rb, x, y), depth);
+   _mesa_unpack_float_z_row(rb->Format, n, _swrast_pixel_address(rb, x, y),
+                            depth);
 }
 
 
index 18f44966ca29eaefe1d23b1c80e8075bf765fb29..dbcbd2be069d3f6e5e6935473f6e1b5c7d68e2ad 100644 (file)
@@ -52,18 +52,6 @@ ENDIF
 */
 
 
-/**
- * Return the address of a stencil value in a renderbuffer.
- */
-static inline GLubyte *
-get_stencil_address(struct gl_renderbuffer *rb, GLint x, GLint y)
-{
-   const GLint bpp = _mesa_get_format_bytes(rb->Format);
-   const GLint rowStride = rb->RowStride * bpp;
-   assert(rb->Data);
-   return (GLubyte *) rb->Data + y * rowStride + x * bpp;
-}
-
 
 /**
  * Compute/return the offset of the stencil value in a pixel.
@@ -342,7 +330,7 @@ put_s8_values(struct gl_context *ctx, struct gl_renderbuffer *rb,
 
    for (i = 0; i < count; i++) {
       if (x[i] >= 0 && y[i] >= 0 && x[i] < w && y[i] < h) {
-         GLubyte *dst = get_stencil_address(rb, x[i], y[i]);
+         GLubyte *dst = _swrast_pixel_address(rb, x[i], y[i]);
          _mesa_pack_ubyte_stencil_row(rb->Format, 1, &stencil[i], dst);
       }
    }
@@ -377,7 +365,7 @@ _swrast_stencil_and_ztest_span(struct gl_context *ctx, SWspan *span)
        * 8 bits for all MESA_FORMATs, we just need to use the right offset
        * and stride to access them.
        */
-      stencilBuf = get_stencil_address(rb, span->x, span->y) + stencilOffset;
+      stencilBuf = _swrast_pixel_address(rb, span->x, span->y) + stencilOffset;
    }
 
    /*
@@ -458,8 +446,6 @@ _swrast_read_stencil_span(struct gl_context *ctx, struct gl_renderbuffer *rb,
                           GLint n, GLint x, GLint y, GLubyte stencil[])
 {
    GLubyte *src;
-   const GLuint bpp = _mesa_get_format_bytes(rb->Format);
-   const GLuint rowStride = rb->RowStride * bpp;
 
    if (y < 0 || y >= (GLint) rb->Height ||
        x + n <= 0 || x >= (GLint) rb->Width) {
@@ -481,7 +467,7 @@ _swrast_read_stencil_span(struct gl_context *ctx, struct gl_renderbuffer *rb,
       return;
    }
 
-   src = get_stencil_address(rb, x, y);
+   src = _swrast_pixel_address(rb, x, y);
    _mesa_unpack_ubyte_stencil_row(rb->Format, n, src, stencil);
 }
 
@@ -524,7 +510,7 @@ _swrast_write_stencil_span(struct gl_context *ctx, GLint n, GLint x, GLint y,
       return;
    }
 
-   stencilBuf = get_stencil_address(rb, x, y);
+   stencilBuf = _swrast_pixel_address(rb, x, y);
 
    if ((stencilMask & stencilMax) != stencilMax) {
       /* need to apply writemask */