st/mesa: remove st_renderbuffer::stride
authorBrian Paul <brianp@vmware.com>
Sat, 11 Feb 2012 01:40:02 +0000 (18:40 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 15 Feb 2012 21:07:43 +0000 (14:07 -0700)
It was only used for software buffers and easily computed.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/mesa/state_tracker/st_cb_fbo.c
src/mesa/state_tracker/st_cb_fbo.h

index 85086bb..2e884a4 100644 (file)
@@ -105,8 +105,7 @@ st_renderbuffer_alloc_storage(struct gl_context * ctx,
       
       free(strb->data);
 
-      strb->stride = util_format_get_stride(format, width);
-      size = util_format_get_2d_size(format, strb->stride, height);
+      size = _mesa_format_image_size(strb->Base.Format, width, height, 1);
       
       strb->data = malloc(size);
       
@@ -640,12 +639,12 @@ st_MapRenderbuffer(struct gl_context *ctx,
 
    if (strb->software) {
       /* software-allocated renderbuffer (probably an accum buffer) */
-      GLubyte *map = (GLubyte *) strb->data;
       if (strb->data) {
-         map += strb->stride * y;
-         map += _mesa_get_format_bytes(strb->Base.Format) * x;
-         *mapOut = map;
-         *rowStrideOut = strb->stride;
+         GLint bpp = _mesa_get_format_bytes(strb->Base.Format);
+         GLint stride = _mesa_format_row_stride(strb->Base.Format,
+                                                strb->Base.Width);
+         *mapOut = (GLubyte *) strb->data + y * stride + x * bpp;
+         *rowStrideOut = stride;
       }
       else {
          *mapOut = NULL;
index 7a2d4d8..506fd06 100644 (file)
@@ -56,7 +56,6 @@ struct st_renderbuffer
     * Used only when hardware accumulation buffers are not supported.
     */
    boolean software;
-   size_t stride;
    void *data;
 
    struct st_texture_object *rtt;  /**< GL render to texture's texture */