On 07/23/2012 10:59 AM, Jordan Justen wrote:
Signed-off-by: Jordan Justen<jordan.l.jus...@intel.com>
---
  src/mesa/drivers/common/meta.c |   16 ++++++++++------
  1 file changed, 10 insertions(+), 6 deletions(-)

diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index cf2d053..d1fd268 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -72,6 +72,8 @@
  #include "program/program.h"
  #include "swrast/swrast.h"
  #include "drivers/common/meta.h"
+#include "main/enums.h"
+#include "main/glformats.h"


  /** Return offset in bytes of the field within a vertex struct */
@@ -3158,8 +3160,12 @@ _mesa_meta_GenerateMipmap(struct gl_context *ctx, GLenum 
target,
   * ReadPixels() and passed to Tex[Sub]Image().
   */
  static GLenum
-get_temp_image_type(struct gl_context *ctx, GLenum baseFormat)
+get_temp_image_type(struct gl_context *ctx, gl_format format)
  {
+   GLenum baseFormat, type;
+
+   baseFormat = _mesa_get_format_base_format(format);
+
     switch (baseFormat) {
     case GL_RGBA:
     case GL_RGB:
@@ -3174,7 +3180,7 @@ get_temp_image_type(struct gl_context *ctx, GLenum 
baseFormat)
        else if (ctx->DrawBuffer->Visual.redBits<= 16)
           return GL_UNSIGNED_SHORT;
        else
-         return GL_FLOAT;
+         return _mesa_get_format_datatype(format);
     case GL_DEPTH_COMPONENT:
        return GL_UNSIGNED_INT;
     case GL_DEPTH_STENCIL:
@@ -3216,12 +3222,10 @@ _mesa_meta_CopyTexSubImage(struct gl_context *ctx, 
GLuint dims,
        format = GL_RGBA;
     }

+   type = get_temp_image_type(ctx, texImage->TexFormat);
     if (_mesa_is_format_integer_color(texImage->TexFormat)) {
-      _mesa_problem(ctx, "unsupported integer color copyteximage");
-      return;
+      format = _mesa_base_format_to_integer_format(format);
     }
-
-   type = get_temp_image_type(ctx, format);
     bpp = _mesa_bytes_per_pixel(format, type);
     if (bpp<= 0) {
        _mesa_problem(ctx, "Bad bpp in _mesa_meta_CopyTexSubImage()");

Reviewed-by: Brian Paul <bri...@vmware.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to