mesa: Use PIPE_TEXTURE_USAGE_DEPTH_STENCIL for any depth or stencil format.
authorJosé Fonseca <jfonseca@vmware.com>
Thu, 11 Jun 2009 17:52:17 +0000 (18:52 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Thu, 11 Jun 2009 18:02:59 +0000 (19:02 +0100)
src/mesa/state_tracker/st_format.c
src/mesa/state_tracker/st_format.h

index d507e3e58dd5b46a0e0f91d501347fed8af31e47..b243c249e378bb88981b4d886abc69d07905f8ac 100644 (file)
@@ -392,7 +392,7 @@ default_depth_format(struct pipe_screen *screen,
  *                   or PIPE_TEXTURE_USAGE_SAMPLER
  */
 enum pipe_format
-st_choose_format(struct pipe_context *pipe, GLint internalFormat,
+st_choose_format(struct pipe_context *pipe, GLenum internalFormat,
                  enum pipe_texture_target target, unsigned tex_usage)
 {
    struct pipe_screen *screen = pipe->screen;
@@ -594,9 +594,13 @@ st_choose_format(struct pipe_context *pipe, GLint internalFormat,
 
 
 static GLboolean
-is_stencil_format(GLenum format)
+is_depth_or_stencil_format(GLenum internalFormat)
 {
-   switch (format) {
+   switch (internalFormat) {
+   case GL_DEPTH_COMPONENT:
+   case GL_DEPTH_COMPONENT16:
+   case GL_DEPTH_COMPONENT24:
+   case GL_DEPTH_COMPONENT32:
    case GL_STENCIL_INDEX:
    case GL_STENCIL_INDEX1_EXT:
    case GL_STENCIL_INDEX4_EXT:
@@ -614,10 +618,10 @@ is_stencil_format(GLenum format)
  * Called by FBO code to choose a PIPE_FORMAT_ for drawing surfaces.
  */
 enum pipe_format
-st_choose_renderbuffer_format(struct pipe_context *pipe, GLint internalFormat)
+st_choose_renderbuffer_format(struct pipe_context *pipe, GLenum internalFormat)
 {
    uint usage;
-   if (is_stencil_format(internalFormat))
+   if (is_depth_or_stencil_format(internalFormat))
       usage = PIPE_TEXTURE_USAGE_DEPTH_STENCIL;
    else
       usage = PIPE_TEXTURE_USAGE_RENDER_TARGET;
index 7bbbe2d57044ae34a7dcf723a95535645debc06c..9d9e02fe9b62bb32b69ef247d628ce8c593111a2 100644 (file)
@@ -64,11 +64,11 @@ st_mesa_format_to_pipe_format(GLuint mesaFormat);
 
 
 extern enum pipe_format
-st_choose_format(struct pipe_context *pipe, GLint internalFormat,
+st_choose_format(struct pipe_context *pipe, GLenum internalFormat,
                  enum pipe_texture_target target, unsigned tex_usage);
 
 extern enum pipe_format
-st_choose_renderbuffer_format(struct pipe_context *pipe, GLint internalFormat);
+st_choose_renderbuffer_format(struct pipe_context *pipe, GLenum internalFormat);
 
 
 extern const struct gl_texture_format *