Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / mesa / drivers / dri / tdfx / tdfx_tex.h
1 /* -*- mode: c; c-basic-offset: 3 -*-
2  *
3  * Copyright 2000 VA Linux Systems Inc., Fremont, California.
4  *
5  * All Rights Reserved.
6  *
7  * Permission is hereby granted, free of charge, to any person obtaining a
8  * copy of this software and associated documentation files (the "Software"),
9  * to deal in the Software without restriction, including without limitation
10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11  * and/or sell copies of the Software, and to permit persons to whom the
12  * Software is furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice (including the next
15  * paragraph) shall be included in all copies or substantial portions of the
16  * Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
21  * VA LINUX SYSTEMS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
22  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
23  * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24  * SOFTWARE.
25  */
26
27 /*
28  * Original rewrite:
29  *      Gareth Hughes <gareth@valinux.com>, 29 Sep - 1 Oct 2000
30  *
31  * Authors:
32  *      Gareth Hughes <gareth@valinux.com>
33  *      Brian Paul <brianp@valinux.com>
34  *
35  */
36
37 #ifndef _TDFX_TEX_H_
38 #define _TDFX_TEX_H_
39
40
41 #define tdfxDDIsCompressedFormatMacro(internalFormat) \
42     (((internalFormat) == GL_COMPRESSED_RGB_FXT1_3DFX) || \
43      ((internalFormat) == GL_COMPRESSED_RGBA_FXT1_3DFX))
44 #define tdfxDDIsCompressedGlideFormatMacro(internalFormat) \
45     ((internalFormat) == GR_TEXFMT_ARGB_CMP_FXT1)
46
47
48
49 extern void
50 tdfxTexValidate(struct gl_context * ctx, struct gl_texture_object *tObj);
51
52
53 #if 000 /* DEAD? */
54 extern void
55 fxDDTexUseGlobalPalette(struct gl_context * ctx, GLboolean state);
56 #endif
57
58 extern GLboolean
59 tdfxTestProxyTexImage(struct gl_context *ctx, GLenum target,
60                         GLint level, GLint internalFormat,
61                         GLenum format, GLenum type,
62                         GLint width, GLint height,
63                         GLint depth, GLint border);
64
65 extern GLvoid *
66 tdfxDDGetTexImage(struct gl_context * ctx, GLenum target, GLint level,
67                   const struct gl_texture_object *texObj,
68                   GLenum * formatOut, GLenum * typeOut,
69                   GLboolean * freeImageOut);
70
71 extern void
72 tdfxDDGetCompressedTexImage( struct gl_context *ctx, GLenum target,
73                              GLint lod, void *image,
74                              const struct gl_texture_object *texObj,
75                              struct gl_texture_image *texImage );
76
77 extern GLint
78 tdfxSpecificCompressedTexFormat(struct gl_context *ctx,
79                                   GLint internalFormat,
80                                   GLint numDimensions);
81
82 extern GLint
83 tdfxBaseCompressedTexFormat(struct gl_context *ctx,
84                               GLint internalFormat);
85
86 extern GLboolean
87 tdfxDDIsCompressedFormat(struct gl_context *ctx, GLint internalFormat);
88
89 extern GLsizei
90 tdfxDDCompressedImageSize(struct gl_context *ctx,
91                           GLenum intFormat,
92                           GLuint numDimensions,
93                           GLuint width,
94                           GLuint height,
95                           GLuint depth);
96
97
98 extern void
99 tdfxInitTextureFuncs( struct dd_function_table *functions );
100
101 #endif