added Window-isms previously in gl.h
[mesa.git] / src / mesa / main / teximage.c
index d52b051d7fa90a2a33964d5f4d899ddff0ef3160..ae50558bf26c0121a69b640b66132d380ce12729 100644 (file)
  */
 
 
+#ifdef DEBUG
+static void PrintTexture(const struct gl_texture_image *img)
+{
+  int i, j, c;
+  GLubyte *data = img->Data;
+
+  if (!data) {
+     printf("No texture data\n");
+     return;
+  }
+
+  switch (img->Format) {
+     case GL_ALPHA:
+     case GL_LUMINANCE:
+     case GL_INTENSITY:
+     case GL_COLOR_INDEX:
+        c = 1;
+        break;
+     case GL_LUMINANCE_ALPHA:
+        c = 2;
+        break;
+     case GL_RGB:
+        c = 3;
+        break;
+     case GL_RGBA:
+        c = 4;
+        break;
+     default:
+        gl_problem(NULL, "error in PrintTexture\n");
+        return;
+  }
+
+
+  for (i = 0; i < img->Height; i++) {
+    for (j = 0; j < img->Width; j++) {
+      if (c==1)
+        printf("%02x  ", data[0]);
+      else if (c==2)
+        printf("%02x%02x  ", data[0], data[1]);
+      else if (c==3)
+        printf("%02x%02x%02x  ", data[0], data[1], data[2]);
+      else if (c==4)
+        printf("%02x%02x%02x%02x  ", data[0], data[1], data[2], data[3]);
+      data += c;
+    }
+    printf("\n");
+  }
+}
+#endif
+
+
+
 /*
  * Compute log base 2 of n.
  * If n isn't an exact power of two return -1.
@@ -338,7 +390,7 @@ set_teximage_component_sizes( struct gl_texture_image *texImage )
  * Return new gl_texture_image struct with all fields initialized to zero.
  */
 struct gl_texture_image *
-gl_alloc_texture_image( void )
+_mesa_alloc_texture_image( void )
 {
    return CALLOC_STRUCT(gl_texture_image);
 }
@@ -380,7 +432,7 @@ init_texture_image( struct gl_texture_image *img,
 
 
 void
-gl_free_texture_image( struct gl_texture_image *teximage )
+_mesa_free_texture_image( struct gl_texture_image *teximage )
 {
    if (teximage->Data) {
       FREE( teximage->Data );
@@ -1033,7 +1085,7 @@ _mesa_TexImage1D( GLenum target, GLint level, GLint internalFormat,
       texImage = texObj->Image[level];
 
       if (!texImage) {
-         texImage = gl_alloc_texture_image();
+         texImage = _mesa_alloc_texture_image();
          texObj->Image[level] = texImage;
          if (!texImage) {
             gl_error(ctx, GL_OUT_OF_MEMORY, "glTexImage1D");
@@ -1141,7 +1193,7 @@ _mesa_TexImage2D( GLenum target, GLint level, GLint internalFormat,
       texImage = texObj->Image[level];
 
       if (!texImage) {
-         texImage = gl_alloc_texture_image();
+         texImage = _mesa_alloc_texture_image();
          texObj->Image[level] = texImage;
          if (!texImage) {
             gl_error(ctx, GL_OUT_OF_MEMORY, "glTexImage2D");
@@ -1263,7 +1315,7 @@ _mesa_TexImage3D( GLenum target, GLint level, GLint internalFormat,
       texImage = texObj->Image[level];
 
       if (!texImage) {
-         texImage = gl_alloc_texture_image();
+         texImage = _mesa_alloc_texture_image();
          texObj->Image[level] = texImage;
          if (!texImage) {
             gl_error(ctx, GL_OUT_OF_MEMORY, "glTexImage3D");
@@ -1364,9 +1416,9 @@ _mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalFormat,
  * Fetch a texture image from the device driver.
  * Store the results in the given texture object at the given mipmap level.
  */
-static void
-get_teximage_from_driver( GLcontext *ctx, GLenum target, GLint level,
-                          const struct gl_texture_object *texObj )
+void
+_mesa_get_teximage_from_driver( GLcontext *ctx, GLenum target, GLint level,
+                                const struct gl_texture_object *texObj )
 {
    GLvoid *image;
    GLenum imgFormat, imgType;
@@ -1377,7 +1429,7 @@ get_teximage_from_driver( GLcontext *ctx, GLenum target, GLint level,
    if (!ctx->Driver.GetTexImage)
       return;
 
-   image = (*ctx->Driver.GetTexImage)( ctx, target, level,
+   image = (*ctx->Driver.GetTexImage)( ctx, target, level, texObj,
                                        &imgFormat, &imgType, &freeImage);
    if (!image)
       return;
@@ -1503,7 +1555,7 @@ _mesa_GetTexImage( GLenum target, GLint level, GLenum format,
 
    if (!texImage->Data) {
       /* try to get the texture image from the device driver */
-      get_teximage_from_driver(ctx, target, level, texObj);
+      _mesa_get_teximage_from_driver(ctx, target, level, texObj);
       discardImage = GL_TRUE;
    }
    else {
@@ -1643,7 +1695,7 @@ _mesa_TexSubImage1D( GLenum target, GLint level,
       const GLint xoffsetb = xoffset + texImage->Border;
       GLboolean retain = GL_TRUE;
       if (!texImage->Data) {
-         get_teximage_from_driver( ctx, target, level, texObj );
+         _mesa_get_teximage_from_driver( ctx, target, level, texObj );
          if (!texImage->Data) {
             make_null_texture(texImage);
          }
@@ -1730,7 +1782,7 @@ _mesa_TexSubImage2D( GLenum target, GLint level,
       GLboolean retain = GL_TRUE;
 
       if (!texImage->Data) {
-         get_teximage_from_driver( ctx, target, level, texObj );
+         _mesa_get_teximage_from_driver( ctx, target, level, texObj );
          if (!texImage->Data) {
             make_null_texture(texImage);
          }