1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * \file teximage.h
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Texture images manipulation functions.
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Mesa 3-D graphics library
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Version:  6.5
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the "Software"),
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * to deal in the Software without restriction, including without limitation
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the rights to use, copy, modify, merge, publish, distribute, sublicense,
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * and/or sell copies of the Software, and to permit persons to whom the
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Software is furnished to do so, subject to the following conditions:
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice shall be included
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * in all copies or substantial portions of the Software.
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef TEXIMAGE_H
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define TEXIMAGE_H
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "mtypes.h"
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "formats.h"
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef __cplusplus
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern "C" {
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Is the given value one of the 6 cube faces? */
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic inline GLboolean
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_is_cube_face(GLenum target)
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   return (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB &&
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org           target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB);
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Is any of the dimensions of given texture equal to zero? */
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic inline GLboolean
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_is_zero_size_texture(const struct gl_texture_image *texImage)
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   return (texImage->Width == 0 ||
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org           texImage->Height == 0 ||
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org           texImage->Depth == 0);
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** \name Internal functions */
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLint
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_base_tex_format( struct gl_context *ctx, GLint internalFormat );
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLboolean
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_is_proxy_texture(GLenum target);
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLenum
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_get_proxy_target(GLenum target);
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern struct gl_texture_image *
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_new_texture_image( struct gl_context *ctx );
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_delete_texture_image( struct gl_context *ctx,
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            struct gl_texture_image *teximage );
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_init_teximage_fields(struct gl_context *ctx,
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                           struct gl_texture_image *img,
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                           GLsizei width, GLsizei height, GLsizei depth,
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                           GLint border, GLenum internalFormat,
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                           gl_format format);
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern gl_format
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_choose_texture_format(struct gl_context *ctx,
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            struct gl_texture_object *texObj,
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            GLenum target, GLint level,
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                            GLenum internalFormat, GLenum format, GLenum type);
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void
96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_update_fbo_texture(struct gl_context *ctx,
97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         struct gl_texture_object *texObj,
98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLuint face, GLuint level);
99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void
101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_clear_texture_image(struct gl_context *ctx,
102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                          struct gl_texture_image *texImage);
103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern struct gl_texture_object *
106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_select_tex_object(struct gl_context *ctx,
107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                        const struct gl_texture_unit *texUnit,
108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                        GLenum target);
109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern struct gl_texture_object *
111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_get_current_tex_object(struct gl_context *ctx, GLenum target);
112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern struct gl_texture_image *
115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_select_tex_image(struct gl_context *ctx,
116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                       const struct gl_texture_object *texObj,
117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                       GLenum target, GLint level);
118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern struct gl_texture_image *
121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_get_tex_image(struct gl_context *ctx, struct gl_texture_object *texObj,
122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                    GLenum target, GLint level);
123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLint
126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_max_texture_levels(struct gl_context *ctx, GLenum target);
127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLboolean
130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, GLint level,
131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLint internalFormat, GLenum format, GLenum type,
132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLint width, GLint height, GLint depth, GLint border);
133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLuint
136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_tex_target_to_face(GLenum target);
137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLint
139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_get_texture_dimensions(GLenum target);
140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLsizei
142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_get_tex_max_num_levels(GLenum target, GLsizei width, GLsizei height,
143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                             GLsizei depth);
144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLenum
146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_es_error_check_format_and_type(GLenum format, GLenum type,
147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                     unsigned dimensions);
148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern GLsizei
150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_get_tex_max_num_levels(GLenum target, GLsizei width, GLsizei height,
151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                             GLsizei depth);
152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**
154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Lock a texture for updating.  See also _mesa_lock_context_textures().
155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic inline void
157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_lock_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _glthread_LOCK_MUTEX(ctx->Shared->TexMutex);
160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   ctx->Shared->TextureStateStamp++;
161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   (void) texObj;
162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstatic inline void
165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_unlock_texture(struct gl_context *ctx, struct gl_texture_object *texObj)
166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   (void) texObj;
168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   _glthread_UNLOCK_MUTEX(ctx->Shared->TexMutex);
169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/
172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** \name API entry point functions */
175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/
176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexImage1D( GLenum target, GLint level, GLint internalformat,
179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                  GLsizei width, GLint border,
180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                  GLenum format, GLenum type, const GLvoid *pixels );
181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexImage2D( GLenum target, GLint level, GLint internalformat,
185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                  GLsizei width, GLsizei height, GLint border,
186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                  GLenum format, GLenum type, const GLvoid *pixels );
187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexImage3D( GLenum target, GLint level, GLint internalformat,
191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                  GLsizei width, GLsizei height, GLsizei depth, GLint border,
192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                  GLenum format, GLenum type, const GLvoid *pixels );
193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat,
197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLsizei width, GLsizei height, GLsizei depth,
198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLint border, GLenum format, GLenum type,
199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     const GLvoid *pixels );
200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_EGLImageTargetTexture2DOES( GLenum target, GLeglImageOES image );
203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexSubImage1D( GLenum target, GLint level, GLint xoffset,
206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLsizei width,
207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLenum format, GLenum type,
208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     const GLvoid *pixels );
209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexSubImage2D( GLenum target, GLint level,
213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLint xoffset, GLint yoffset,
214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLsizei width, GLsizei height,
215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLenum format, GLenum type,
216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     const GLvoid *pixels );
217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexSubImage3D( GLenum target, GLint level,
221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLint xoffset, GLint yoffset, GLint zoffset,
222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLsizei width, GLsizei height, GLsizei depth,
223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     GLenum format, GLenum type,
224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                     const GLvoid *pixels );
225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CopyTexImage1D( GLenum target, GLint level, GLenum internalformat,
229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                      GLint x, GLint y, GLsizei width, GLint border );
230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CopyTexImage2D( GLenum target, GLint level,
234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                      GLenum internalformat, GLint x, GLint y,
235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                      GLsizei width, GLsizei height, GLint border );
236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CopyTexSubImage1D( GLenum target, GLint level, GLint xoffset,
240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLint x, GLint y, GLsizei width );
241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CopyTexSubImage2D( GLenum target, GLint level,
245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLint xoffset, GLint yoffset,
246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLint x, GLint y, GLsizei width, GLsizei height );
247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CopyTexSubImage3D( GLenum target, GLint level,
251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLint xoffset, GLint yoffset, GLint zoffset,
252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                         GLint x, GLint y, GLsizei width, GLsizei height );
253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CompressedTexImage1DARB(GLenum target, GLint level,
258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              GLenum internalformat, GLsizei width,
259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              GLint border, GLsizei imageSize,
260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              const GLvoid *data);
261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CompressedTexImage2DARB(GLenum target, GLint level,
264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              GLenum internalformat, GLsizei width,
265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              GLsizei height, GLint border, GLsizei imageSize,
266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              const GLvoid *data);
267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CompressedTexImage3DARB(GLenum target, GLint level,
270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              GLenum internalformat, GLsizei width,
271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              GLsizei height, GLsizei depth, GLint border,
272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                              GLsizei imageSize, const GLvoid *data);
273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef VMS
275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define _mesa_CompressedTexSubImage1DARB _mesa_CompressedTexSubImage1DAR
276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define _mesa_CompressedTexSubImage2DARB _mesa_CompressedTexSubImage2DAR
277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define _mesa_CompressedTexSubImage3DARB _mesa_CompressedTexSubImage3DAR
278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset,
281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 GLsizei width, GLenum format,
282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 GLsizei imageSize, const GLvoid *data);
283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset,
286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 GLint yoffset, GLsizei width, GLsizei height,
287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 GLenum format, GLsizei imageSize,
288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 const GLvoid *data);
289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_CompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset,
292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 GLint yoffset, GLint zoffset, GLsizei width,
293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 GLsizei height, GLsizei depth, GLenum format,
294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org                                 GLsizei imageSize, const GLvoid *data);
295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern void GLAPIENTRY
298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org_mesa_TexBuffer(GLenum target, GLenum internalFormat, GLuint buffer);
299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/
302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef __cplusplus
304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}
305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif
308