OSDN Git Service

swrast: remove a few extra _mesa_get_format_bytes() calls
authorBrian Paul <brianp@vmware.com>
Mon, 16 Jan 2012 20:05:41 +0000 (13:05 -0700)
committerBrian Paul <brianp@vmware.com>
Tue, 24 Jan 2012 21:12:34 +0000 (14:12 -0700)
src/mesa/swrast/s_renderbuffer.c

index f0dbb01..378e3a7 100644 (file)
@@ -58,6 +58,7 @@ soft_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
                           GLuint width, GLuint height)
 {
    struct swrast_renderbuffer *srb = swrast_renderbuffer(rb);
+   GLuint bpp;
 
    switch (internalFormat) {
    case GL_RGB:
@@ -115,25 +116,26 @@ soft_renderbuffer_storage(struct gl_context *ctx, struct gl_renderbuffer *rb,
       return GL_FALSE;
    }
 
+   bpp = _mesa_get_format_bytes(rb->Format);
+
    /* free old buffer storage */
    if (srb->Buffer) {
       free(srb->Buffer);
       srb->Buffer = NULL;
    }
 
-   srb->RowStride = width * _mesa_get_format_bytes(rb->Format);
+   srb->RowStride = width * bpp;
 
    if (width > 0 && height > 0) {
       /* allocate new buffer storage */
-      srb->Buffer = malloc(width * height
-                           * _mesa_get_format_bytes(rb->Format));
+      srb->Buffer = malloc(srb->RowStride * height);
 
       if (srb->Buffer == NULL) {
          rb->Width = 0;
          rb->Height = 0;
          _mesa_error(ctx, GL_OUT_OF_MEMORY,
                      "software renderbuffer allocation (%d x %d x %d)",
-                     width, height, _mesa_get_format_bytes(rb->Format));
+                     width, height, bpp);
          return GL_FALSE;
       }
    }