Imported the Savage DRI driver from the savage-2-0-0-branch of DRI CVS
[mesa.git] / src / mesa / main / texutil.h
index 0e180af2b77469f40a149e6a649682081b4ba891..97e629cfb483321676251bd93c9026ab252bf13c 100644 (file)
@@ -1,70 +1,72 @@
-/* $Id: texutil.h,v 1.2 2000/03/27 18:56:26 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  3.3
- * 
- * Copyright (C) 1999-2000  Brian Paul   All Rights Reserved.
- * 
+ * Version:  3.5
+ *
+ * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  * to deal in the Software without restriction, including without limitation
  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  * and/or sell copies of the Software, and to permit persons to whom the
  * Software is furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included
  * in all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Gareth Hughes
  */
 
 
 #ifndef TEXUTIL_H
 #define TEXUTIL_H
 
-
-#include "types.h"
-
-
-
-                           /* msb <------ TEXEL BITS -----------> lsb */
-typedef enum {             /* ---- ---- ---- ---- ---- ---- ---- ---- */
-   MESA_I8,                /*                               IIII IIII */
-   MESA_L8,                /*                               LLLL LLLL */
-   MESA_A8,                /*                               AAAA AAAA */
-   MESA_C8,                /*                               CCCC CCCC */
-   MESA_L8_A8,             /*                     LLLL LLLL AAAA AAAA */
-   MESA_R5_G6_B5,          /*                     RRRR RGGG GGGB BBBB */
-   MESA_A4_R4_G4_B4,       /*                     AAAA RRRR GGGG BBBB */
-   MESA_A1_R5_G5_B5,       /*                     ARRR RRGG GGGB BBBB */
-   MESA_A8_R8_G8_B8        /* AAAA AAAA RRRR RRRR GGGG GGGG BBBB BBBB */
-} MesaIntTexFormat;
-
-
-
+#include "mtypes.h"
+#include "texformat.h"
 
 extern GLboolean
-_mesa_convert_teximage(MesaIntTexFormat dstFormat,
-                       GLint dstWidth, GLint dstHeight, GLvoid *dstImage,
-                       GLsizei srcWidth, GLsizei srcHeight,
-                       GLenum srcFormat, GLenum srcType,
-                       const GLvoid *srcImage,
-                       const struct gl_pixelstore_attrib *packing);
+_mesa_convert_texsubimage1d( GLint mesaFormat,
+                            GLint xoffset,
+                            GLint width,
+                            GLenum format, GLenum type,
+                            const struct gl_pixelstore_attrib *packing,
+                            const GLvoid *srcImage, GLvoid *dstImage );
 
+extern GLboolean
+_mesa_convert_texsubimage2d( GLint mesaFormat,
+                            GLint xoffset, GLint yoffset,
+                            GLint width, GLint height,
+                            GLint imageWidth,
+                            GLenum format, GLenum type,
+                            const struct gl_pixelstore_attrib *packing,
+                            const GLvoid *srcImage, GLvoid *dstImage );
 
+extern GLboolean
+_mesa_convert_texsubimage3d( GLint mesaFormat,
+                            GLint xoffset, GLint yoffset, GLint zoffset,
+                            GLint width, GLint height, GLint depth,
+                            GLint imageWidth, GLint imageHeight,
+                            GLenum format, GLenum type,
+                            const struct gl_pixelstore_attrib *packing,
+                            const GLvoid *srcImage, GLvoid *dstImage );
+
+/* Nearest filtering only (for broken hardware that can't support
+ * all aspect ratios).  FIXME: Make this a subimage update as well...
+ */
 extern void
-_mesa_unconvert_teximage(MesaIntTexFormat srcFormat,
-                         GLint srcWidth, GLint srcHeight,
-                         const GLvoid *srcImage,
-                         GLsizei dstWidth, GLsizei dstHeight,
-                         GLenum dstFormat, GLubyte *dstImage);
+_mesa_rescale_teximage2d( GLuint bytesPerPixel, GLuint dstRowStride,
+                         GLint srcWidth, GLint srcHeight,
+                         GLint dstWidth, GLint dstHeight,
+                         const GLvoid *srcImage, GLvoid *dstImage );
 
 
 #endif
-