st/mesa: remove st_renderbuffer::format
authorBrian Paul <brianp@vmware.com>
Sat, 11 Feb 2012 01:34:25 +0000 (18:34 -0700)
committerBrian Paul <brianp@vmware.com>
Wed, 15 Feb 2012 21:07:43 +0000 (14:07 -0700)
We only used it in a few places that can implemented differently.

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

index 386eed2..88e57b8 100644 (file)
@@ -842,12 +842,14 @@ draw_stencil_pixels(struct gl_context *ctx, GLint x, GLint y,
       y = ctx->DrawBuffer->Height - y - height;
    }
 
-   if(format != GL_DEPTH_STENCIL && 
-      util_format_get_component_bits(strb->format,
-                                     UTIL_FORMAT_COLORSPACE_ZS, 0) != 0)
+   if (format == GL_STENCIL_INDEX && 
+       _mesa_is_format_packed_depth_stencil(strb->Base.Format)) {
+      /* writing stencil to a combined depth+stencil buffer */
       usage = PIPE_TRANSFER_READ_WRITE;
-   else
+   }
+   else {
       usage = PIPE_TRANSFER_WRITE;
+   }
 
    pt = pipe_get_transfer(pipe, strb->texture,
                           strb->rtt_level, strb->rtt_face + strb->rtt_slice,
@@ -1209,8 +1211,7 @@ copy_stencil_pixels(struct gl_context *ctx, GLint srcx, GLint srcy,
       }
    }
 
-   if (util_format_get_component_bits(rbDraw->format,
-                                     UTIL_FORMAT_COLORSPACE_ZS, 0) != 0)
+   if (_mesa_is_format_packed_depth_stencil(rbDraw->Base.Format))
       usage = PIPE_TRANSFER_READ_WRITE;
    else
       usage = PIPE_TRANSFER_WRITE;
index 1cbc0d6..85086bb 100644 (file)
@@ -97,7 +97,6 @@ st_renderbuffer_alloc_storage(struct gl_context * ctx,
    strb->Base.Height = height;
    strb->Base.Format = st_pipe_format_to_mesa_format(format);
    strb->Base._BaseFormat = _mesa_base_fbo_format(ctx, internalFormat);
-   strb->format = format;
 
    strb->defined = GL_FALSE;  /* undefined contents now */
 
@@ -106,10 +105,8 @@ st_renderbuffer_alloc_storage(struct gl_context * ctx,
       
       free(strb->data);
 
-      assert(strb->format != PIPE_FORMAT_NONE);
-      
-      strb->stride = util_format_get_stride(strb->format, width);
-      size = util_format_get_2d_size(strb->format, strb->stride, height);
+      strb->stride = util_format_get_stride(format, width);
+      size = util_format_get_2d_size(format, strb->stride, height);
       
       strb->data = malloc(size);
       
@@ -206,7 +203,6 @@ st_new_renderbuffer(struct gl_context *ctx, GLuint name)
       _mesa_init_renderbuffer(&strb->Base, name);
       strb->Base.Delete = st_renderbuffer_delete;
       strb->Base.AllocStorage = st_renderbuffer_alloc_storage;
-      strb->format = PIPE_FORMAT_NONE;
       return &strb->Base;
    }
    return NULL;
@@ -233,7 +229,6 @@ st_new_renderbuffer_fb(enum pipe_format format, int samples, boolean sw)
    strb->Base.NumSamples = samples;
    strb->Base.Format = st_pipe_format_to_mesa_format(format);
    strb->Base._BaseFormat = _mesa_get_format_base_format(strb->Base.Format);
-   strb->format = format;
    strb->software = sw;
    
    switch (format) {
@@ -401,8 +396,6 @@ st_render_texture(struct gl_context *ctx,
                                         strb->texture,
                                         &surf_tmpl);
 
-   strb->format = pt->format;
-
    strb->Base.Format = st_pipe_format_to_mesa_format(pt->format);
 
    /*
@@ -650,7 +643,7 @@ st_MapRenderbuffer(struct gl_context *ctx,
       GLubyte *map = (GLubyte *) strb->data;
       if (strb->data) {
          map += strb->stride * y;
-         map += util_format_get_blocksize(strb->format) * x;
+         map += _mesa_get_format_bytes(strb->Base.Format) * x;
          *mapOut = map;
          *rowStrideOut = strb->stride;
       }
index 1be0173..7a2d4d8 100644 (file)
@@ -48,7 +48,6 @@ struct st_renderbuffer
    struct gl_renderbuffer Base;
    struct pipe_resource *texture;
    struct pipe_surface *surface; /* temporary view into texture */
-   enum pipe_format format;  /** preferred format, or PIPE_FORMAT_NONE */
    GLboolean defined;        /**< defined contents? */
 
    struct pipe_transfer *transfer; /**< only used when mapping the resource */