1848b8605Smrg/** 2848b8605Smrg * \file teximage.h 3848b8605Smrg * Texture images manipulation functions. 4848b8605Smrg */ 5848b8605Smrg 6848b8605Smrg/* 7848b8605Smrg * Mesa 3-D graphics library 8848b8605Smrg * 9848b8605Smrg * Copyright (C) 1999-2005 Brian Paul All Rights Reserved. 10848b8605Smrg * 11848b8605Smrg * Permission is hereby granted, free of charge, to any person obtaining a 12848b8605Smrg * copy of this software and associated documentation files (the "Software"), 13848b8605Smrg * to deal in the Software without restriction, including without limitation 14848b8605Smrg * the rights to use, copy, modify, merge, publish, distribute, sublicense, 15848b8605Smrg * and/or sell copies of the Software, and to permit persons to whom the 16848b8605Smrg * Software is furnished to do so, subject to the following conditions: 17848b8605Smrg * 18848b8605Smrg * The above copyright notice and this permission notice shall be included 19848b8605Smrg * in all copies or substantial portions of the Software. 20848b8605Smrg * 21848b8605Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 22848b8605Smrg * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 23848b8605Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 24848b8605Smrg * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 25848b8605Smrg * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 26848b8605Smrg * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 27848b8605Smrg * OTHER DEALINGS IN THE SOFTWARE. 28848b8605Smrg */ 29848b8605Smrg 30848b8605Smrg 31848b8605Smrg#ifndef TEXIMAGE_H 32848b8605Smrg#define TEXIMAGE_H 33848b8605Smrg 34848b8605Smrg 35848b8605Smrg#include "mtypes.h" 36848b8605Smrg#include "formats.h" 37848b8605Smrg 38848b8605Smrg#ifdef __cplusplus 39848b8605Smrgextern "C" { 40848b8605Smrg#endif 41848b8605Smrg 42848b8605Smrg/** Is the given value one of the 6 cube faces? */ 43848b8605Smrgstatic inline GLboolean 44848b8605Smrg_mesa_is_cube_face(GLenum target) 45848b8605Smrg{ 46b8e80941Smrg return (target >= GL_TEXTURE_CUBE_MAP_POSITIVE_X && 47b8e80941Smrg target <= GL_TEXTURE_CUBE_MAP_NEGATIVE_Z); 48848b8605Smrg} 49848b8605Smrg 50b8e80941Smrg 51b8e80941Smrg/** 52b8e80941Smrg * Return number of faces for a texture target. This will be 6 for 53b8e80941Smrg * cube maps and 1 otherwise. 54b8e80941Smrg * NOTE: this function is not used for cube map arrays which operate 55b8e80941Smrg * more like 2D arrays than cube maps. 56b8e80941Smrg */ 57b8e80941Smrgstatic inline GLuint 58b8e80941Smrg_mesa_num_tex_faces(GLenum target) 59b8e80941Smrg{ 60b8e80941Smrg switch (target) { 61b8e80941Smrg case GL_TEXTURE_CUBE_MAP: 62b8e80941Smrg case GL_PROXY_TEXTURE_CUBE_MAP: 63b8e80941Smrg return 6; 64b8e80941Smrg default: 65b8e80941Smrg return 1; 66b8e80941Smrg } 67b8e80941Smrg} 68b8e80941Smrg 69b8e80941Smrg 70b8e80941Smrg/** 71b8e80941Smrg * If the target is GL_TEXTURE_CUBE_MAP, return one of the 72b8e80941Smrg * GL_TEXTURE_CUBE_MAP_POSITIVE/NEGATIVE_X/Y/Z targets corresponding to 73b8e80941Smrg * the face parameter. 74b8e80941Smrg * Else, return target as-is. 75b8e80941Smrg */ 76b8e80941Smrgstatic inline GLenum 77b8e80941Smrg_mesa_cube_face_target(GLenum target, unsigned face) 78b8e80941Smrg{ 79b8e80941Smrg if (target == GL_TEXTURE_CUBE_MAP) { 80b8e80941Smrg assert(face < 6); 81b8e80941Smrg return GL_TEXTURE_CUBE_MAP_POSITIVE_X + face; 82b8e80941Smrg } 83b8e80941Smrg else { 84b8e80941Smrg return target; 85b8e80941Smrg } 86b8e80941Smrg} 87b8e80941Smrg 88b8e80941Smrg 89b8e80941Smrg/** 90b8e80941Smrg * For cube map faces, return a face index in [0,5]. 91b8e80941Smrg * For other targets return 0; 92b8e80941Smrg */ 93b8e80941Smrgstatic inline GLuint 94b8e80941Smrg_mesa_tex_target_to_face(GLenum target) 95b8e80941Smrg{ 96b8e80941Smrg if (_mesa_is_cube_face(target)) 97b8e80941Smrg return (GLuint) target - (GLuint) GL_TEXTURE_CUBE_MAP_POSITIVE_X; 98b8e80941Smrg else 99b8e80941Smrg return 0; 100b8e80941Smrg} 101b8e80941Smrg 102b8e80941Smrg 103b8e80941Smrg/** Are any of the dimensions of given texture equal to zero? */ 104848b8605Smrgstatic inline GLboolean 105848b8605Smrg_mesa_is_zero_size_texture(const struct gl_texture_image *texImage) 106848b8605Smrg{ 107848b8605Smrg return (texImage->Width == 0 || 108848b8605Smrg texImage->Height == 0 || 109848b8605Smrg texImage->Depth == 0); 110848b8605Smrg} 111848b8605Smrg 112848b8605Smrg/** \name Internal functions */ 113848b8605Smrg/*@{*/ 114848b8605Smrg 115848b8605Smrgextern GLboolean 116848b8605Smrg_mesa_is_proxy_texture(GLenum target); 117848b8605Smrg 118b8e80941Smrgextern bool 119b8e80941Smrg_mesa_is_array_texture(GLenum target); 120848b8605Smrg 121848b8605Smrg 122848b8605Smrgextern void 123848b8605Smrg_mesa_delete_texture_image( struct gl_context *ctx, 124848b8605Smrg struct gl_texture_image *teximage ); 125848b8605Smrg 126848b8605Smrg 127848b8605Smrgextern void 128848b8605Smrg_mesa_init_teximage_fields(struct gl_context *ctx, 129848b8605Smrg struct gl_texture_image *img, 130848b8605Smrg GLsizei width, GLsizei height, GLsizei depth, 131848b8605Smrg GLint border, GLenum internalFormat, 132848b8605Smrg mesa_format format); 133b8e80941Smrgextern void 134b8e80941Smrg_mesa_init_teximage_fields_ms(struct gl_context *ctx, 135b8e80941Smrg struct gl_texture_image *img, 136b8e80941Smrg GLsizei width, GLsizei height, GLsizei depth, 137b8e80941Smrg GLint border, GLenum internalFormat, 138b8e80941Smrg mesa_format format, 139b8e80941Smrg GLuint numSamples, 140b8e80941Smrg GLboolean fixedSampleLocations); 141848b8605Smrg 142848b8605Smrg 143848b8605Smrgextern mesa_format 144848b8605Smrg_mesa_choose_texture_format(struct gl_context *ctx, 145848b8605Smrg struct gl_texture_object *texObj, 146848b8605Smrg GLenum target, GLint level, 147848b8605Smrg GLenum internalFormat, GLenum format, GLenum type); 148848b8605Smrg 149848b8605Smrgextern void 150848b8605Smrg_mesa_update_fbo_texture(struct gl_context *ctx, 151848b8605Smrg struct gl_texture_object *texObj, 152848b8605Smrg GLuint face, GLuint level); 153848b8605Smrg 154848b8605Smrgextern void 155848b8605Smrg_mesa_clear_texture_image(struct gl_context *ctx, 156848b8605Smrg struct gl_texture_image *texImage); 157848b8605Smrg 158848b8605Smrg 159848b8605Smrgextern struct gl_texture_image * 160b8e80941Smrg_mesa_select_tex_image(const struct gl_texture_object *texObj, 161848b8605Smrg GLenum target, GLint level); 162848b8605Smrg 163848b8605Smrg 164848b8605Smrgextern struct gl_texture_image * 165848b8605Smrg_mesa_get_tex_image(struct gl_context *ctx, struct gl_texture_object *texObj, 166848b8605Smrg GLenum target, GLint level); 167848b8605Smrg 168b8e80941Smrgmesa_format 169b8e80941Smrg_mesa_get_texbuffer_format(const struct gl_context *ctx, GLenum internalFormat); 170b8e80941Smrg 171b8e80941Smrg/** 172b8e80941Smrg * Return the base-level texture image for the given texture object. 173b8e80941Smrg */ 174b8e80941Smrgstatic inline const struct gl_texture_image * 175b8e80941Smrg_mesa_base_tex_image(const struct gl_texture_object *texObj) 176b8e80941Smrg{ 177b8e80941Smrg return texObj->Image[0][texObj->BaseLevel]; 178b8e80941Smrg} 179b8e80941Smrg 180848b8605Smrg 181848b8605Smrgextern GLint 182848b8605Smrg_mesa_max_texture_levels(struct gl_context *ctx, GLenum target); 183848b8605Smrg 184848b8605Smrg 185848b8605Smrgextern GLboolean 186b8e80941Smrg_mesa_test_proxy_teximage(struct gl_context *ctx, GLenum target, 187b8e80941Smrg GLuint numLevels, GLint level, 188b8e80941Smrg mesa_format format, GLuint numSamples, 189b8e80941Smrg GLint width, GLint height, GLint depth); 190848b8605Smrg 191848b8605Smrgextern GLboolean 192848b8605Smrg_mesa_target_can_be_compressed(const struct gl_context *ctx, GLenum target, 193b8e80941Smrg GLenum intFormat, GLenum *error); 194848b8605Smrg 195848b8605Smrgextern GLint 196848b8605Smrg_mesa_get_texture_dimensions(GLenum target); 197848b8605Smrg 198848b8605Smrgextern GLboolean 199848b8605Smrg_mesa_tex_target_is_layered(GLenum target); 200848b8605Smrg 201848b8605Smrgextern GLuint 202848b8605Smrg_mesa_get_texture_layers(const struct gl_texture_object *texObj, GLint level); 203848b8605Smrg 204848b8605Smrgextern GLsizei 205848b8605Smrg_mesa_get_tex_max_num_levels(GLenum target, GLsizei width, GLsizei height, 206848b8605Smrg GLsizei depth); 207848b8605Smrg 208848b8605Smrgextern GLboolean 209848b8605Smrg_mesa_legal_texture_dimensions(struct gl_context *ctx, GLenum target, 210848b8605Smrg GLint level, GLint width, GLint height, 211848b8605Smrg GLint depth, GLint border); 212848b8605Smrg 213848b8605Smrgextern mesa_format 214848b8605Smrg_mesa_validate_texbuffer_format(const struct gl_context *ctx, 215848b8605Smrg GLenum internalFormat); 216848b8605Smrg 217848b8605Smrg 218848b8605Smrgbool 219848b8605Smrg_mesa_legal_texture_base_format_for_target(struct gl_context *ctx, 220848b8605Smrg GLenum target, 221b8e80941Smrg GLenum internalFormat); 222848b8605Smrg 223b8e80941Smrgbool 224b8e80941Smrg_mesa_format_no_online_compression(GLenum format); 225848b8605Smrg 226b8e80941SmrgGLboolean 227b8e80941Smrg_mesa_is_renderable_texture_format(const struct gl_context *ctx, 228b8e80941Smrg GLenum internalformat); 229b8e80941Smrg 230b8e80941Smrgextern void 231b8e80941Smrg_mesa_texture_sub_image(struct gl_context *ctx, GLuint dims, 232b8e80941Smrg struct gl_texture_object *texObj, 233b8e80941Smrg struct gl_texture_image *texImage, 234b8e80941Smrg GLenum target, GLint level, 235b8e80941Smrg GLint xoffset, GLint yoffset, GLint zoffset, 236b8e80941Smrg GLsizei width, GLsizei height, GLsizei depth, 237b8e80941Smrg GLenum format, GLenum type, const GLvoid *pixels, 238b8e80941Smrg bool dsa); 239b8e80941Smrg 240b8e80941Smrgextern void 241b8e80941Smrg_mesa_texture_storage_ms_memory(struct gl_context *ctx, GLuint dims, 242b8e80941Smrg struct gl_texture_object *texObj, 243b8e80941Smrg struct gl_memory_object *memObj, 244b8e80941Smrg GLenum target, GLsizei samples, 245b8e80941Smrg GLenum internalFormat, GLsizei width, 246b8e80941Smrg GLsizei height, GLsizei depth, 247b8e80941Smrg GLboolean fixedSampleLocations, 248b8e80941Smrg GLuint64 offset, const char* func); 249b8e80941Smrg 250b8e80941Smrgbool 251b8e80941Smrg_mesa_is_cube_map_texture(GLenum target); 252848b8605Smrg 253848b8605Smrg/*@}*/ 254848b8605Smrg 255848b8605Smrg 256848b8605Smrg/** \name API entry point functions */ 257848b8605Smrg/*@{*/ 258848b8605Smrg 259848b8605Smrgextern void GLAPIENTRY 260848b8605Smrg_mesa_TexImage1D( GLenum target, GLint level, GLint internalformat, 261848b8605Smrg GLsizei width, GLint border, 262848b8605Smrg GLenum format, GLenum type, const GLvoid *pixels ); 263848b8605Smrg 264848b8605Smrg 265848b8605Smrgextern void GLAPIENTRY 266848b8605Smrg_mesa_TexImage2D( GLenum target, GLint level, GLint internalformat, 267848b8605Smrg GLsizei width, GLsizei height, GLint border, 268848b8605Smrg GLenum format, GLenum type, const GLvoid *pixels ); 269848b8605Smrg 270848b8605Smrg 271848b8605Smrgextern void GLAPIENTRY 272848b8605Smrg_mesa_TexImage3D( GLenum target, GLint level, GLint internalformat, 273848b8605Smrg GLsizei width, GLsizei height, GLsizei depth, GLint border, 274848b8605Smrg GLenum format, GLenum type, const GLvoid *pixels ); 275848b8605Smrg 276848b8605Smrg 277848b8605Smrgextern void GLAPIENTRY 278848b8605Smrg_mesa_TexImage3DEXT( GLenum target, GLint level, GLenum internalformat, 279848b8605Smrg GLsizei width, GLsizei height, GLsizei depth, 280848b8605Smrg GLint border, GLenum format, GLenum type, 281848b8605Smrg const GLvoid *pixels ); 282848b8605Smrg 283b8e80941Smrgextern void GLAPIENTRY 284b8e80941Smrg_mesa_TexImage1D_no_error(GLenum target, GLint level, GLint internalformat, 285b8e80941Smrg GLsizei width, GLint border, 286b8e80941Smrg GLenum format, GLenum type, const GLvoid *pixels); 287b8e80941Smrg 288b8e80941Smrgextern void GLAPIENTRY 289b8e80941Smrg_mesa_TexImage2D_no_error(GLenum target, GLint level, GLint internalformat, 290b8e80941Smrg GLsizei width, GLsizei height, GLint border, 291b8e80941Smrg GLenum format, GLenum type, const GLvoid *pixels); 292b8e80941Smrg 293b8e80941Smrgextern void GLAPIENTRY 294b8e80941Smrg_mesa_TexImage3D_no_error(GLenum target, GLint level, GLint internalformat, 295b8e80941Smrg GLsizei width, GLsizei height, GLsizei depth, 296b8e80941Smrg GLint border, GLenum format, GLenum type, 297b8e80941Smrg const GLvoid *pixels); 298b8e80941Smrg 299848b8605Smrgextern void GLAPIENTRY 300848b8605Smrg_mesa_EGLImageTargetTexture2DOES( GLenum target, GLeglImageOES image ); 301848b8605Smrg 302b8e80941Smrgvoid GLAPIENTRY 303b8e80941Smrg_mesa_TexSubImage1D_no_error(GLenum target, GLint level, GLint xoffset, 304b8e80941Smrg GLsizei width, 305b8e80941Smrg GLenum format, GLenum type, 306b8e80941Smrg const GLvoid *pixels); 307b8e80941Smrg 308848b8605Smrgextern void GLAPIENTRY 309848b8605Smrg_mesa_TexSubImage1D( GLenum target, GLint level, GLint xoffset, 310848b8605Smrg GLsizei width, 311848b8605Smrg GLenum format, GLenum type, 312848b8605Smrg const GLvoid *pixels ); 313848b8605Smrg 314b8e80941Smrgvoid GLAPIENTRY 315b8e80941Smrg_mesa_TexSubImage2D_no_error(GLenum target, GLint level, 316b8e80941Smrg GLint xoffset, GLint yoffset, 317b8e80941Smrg GLsizei width, GLsizei height, 318b8e80941Smrg GLenum format, GLenum type, 319b8e80941Smrg const GLvoid *pixels); 320848b8605Smrg 321848b8605Smrgextern void GLAPIENTRY 322848b8605Smrg_mesa_TexSubImage2D( GLenum target, GLint level, 323848b8605Smrg GLint xoffset, GLint yoffset, 324848b8605Smrg GLsizei width, GLsizei height, 325848b8605Smrg GLenum format, GLenum type, 326848b8605Smrg const GLvoid *pixels ); 327848b8605Smrg 328b8e80941Smrgvoid GLAPIENTRY 329b8e80941Smrg_mesa_TexSubImage3D_no_error(GLenum target, GLint level, 330b8e80941Smrg GLint xoffset, GLint yoffset, GLint zoffset, 331b8e80941Smrg GLsizei width, GLsizei height, GLsizei depth, 332b8e80941Smrg GLenum format, GLenum type, 333b8e80941Smrg const GLvoid *pixels); 334848b8605Smrg 335848b8605Smrgextern void GLAPIENTRY 336848b8605Smrg_mesa_TexSubImage3D( GLenum target, GLint level, 337848b8605Smrg GLint xoffset, GLint yoffset, GLint zoffset, 338848b8605Smrg GLsizei width, GLsizei height, GLsizei depth, 339848b8605Smrg GLenum format, GLenum type, 340848b8605Smrg const GLvoid *pixels ); 341848b8605Smrg 342b8e80941Smrgvoid GLAPIENTRY 343b8e80941Smrg_mesa_TextureSubImage1D_no_error(GLuint texture, GLint level, GLint xoffset, 344b8e80941Smrg GLsizei width, GLenum format, GLenum type, 345b8e80941Smrg const GLvoid *pixels); 346848b8605Smrg 347848b8605Smrgextern void GLAPIENTRY 348b8e80941Smrg_mesa_TextureSubImage1D(GLuint texture, GLint level, GLint xoffset, 349b8e80941Smrg GLsizei width, 350b8e80941Smrg GLenum format, GLenum type, 351b8e80941Smrg const GLvoid *pixels); 352b8e80941Smrg 353b8e80941Smrgvoid GLAPIENTRY 354b8e80941Smrg_mesa_TextureSubImage2D_no_error(GLuint texture, GLint level, GLint xoffset, 355b8e80941Smrg GLint yoffset, GLsizei width, GLsizei height, 356b8e80941Smrg GLenum format, GLenum type, 357b8e80941Smrg const GLvoid *pixels); 358b8e80941Smrg 359b8e80941Smrgextern void GLAPIENTRY 360b8e80941Smrg_mesa_TextureSubImage2D(GLuint texture, GLint level, 361b8e80941Smrg GLint xoffset, GLint yoffset, 362b8e80941Smrg GLsizei width, GLsizei height, 363b8e80941Smrg GLenum format, GLenum type, 364b8e80941Smrg const GLvoid *pixels); 365b8e80941Smrg 366b8e80941Smrgvoid GLAPIENTRY 367b8e80941Smrg_mesa_TextureSubImage3D_no_error(GLuint texture, GLint level, GLint xoffset, 368b8e80941Smrg GLint yoffset, GLint zoffset, GLsizei width, 369b8e80941Smrg GLsizei height, GLsizei depth, GLenum format, 370b8e80941Smrg GLenum type, const GLvoid *pixels); 371b8e80941Smrg 372b8e80941Smrgextern void GLAPIENTRY 373b8e80941Smrg_mesa_TextureSubImage3D(GLuint texture, GLint level, 374b8e80941Smrg GLint xoffset, GLint yoffset, GLint zoffset, 375b8e80941Smrg GLsizei width, GLsizei height, GLsizei depth, 376b8e80941Smrg GLenum format, GLenum type, 377b8e80941Smrg const GLvoid *pixels); 378b8e80941Smrg 379b8e80941Smrg 380b8e80941Smrgextern void GLAPIENTRY 381b8e80941Smrg_mesa_CopyTexImage1D(GLenum target, GLint level, GLenum internalformat, 382b8e80941Smrg GLint x, GLint y, GLsizei width, GLint border); 383848b8605Smrg 384848b8605Smrg 385848b8605Smrgextern void GLAPIENTRY 386848b8605Smrg_mesa_CopyTexImage2D( GLenum target, GLint level, 387848b8605Smrg GLenum internalformat, GLint x, GLint y, 388848b8605Smrg GLsizei width, GLsizei height, GLint border ); 389848b8605Smrg 390848b8605Smrg 391b8e80941Smrgextern void GLAPIENTRY 392b8e80941Smrg_mesa_CopyTexImage1D_no_error(GLenum target, GLint level, GLenum internalformat, 393b8e80941Smrg GLint x, GLint y, GLsizei width, GLint border); 394b8e80941Smrg 395b8e80941Smrg 396b8e80941Smrgextern void GLAPIENTRY 397b8e80941Smrg_mesa_CopyTexImage2D_no_error(GLenum target, GLint level, GLenum internalformat, 398b8e80941Smrg GLint x, GLint y, GLsizei width, GLsizei height, 399b8e80941Smrg GLint border ); 400b8e80941Smrg 401b8e80941Smrg 402848b8605Smrgextern void GLAPIENTRY 403848b8605Smrg_mesa_CopyTexSubImage1D( GLenum target, GLint level, GLint xoffset, 404848b8605Smrg GLint x, GLint y, GLsizei width ); 405848b8605Smrg 406848b8605Smrg 407848b8605Smrgextern void GLAPIENTRY 408848b8605Smrg_mesa_CopyTexSubImage2D( GLenum target, GLint level, 409848b8605Smrg GLint xoffset, GLint yoffset, 410848b8605Smrg GLint x, GLint y, GLsizei width, GLsizei height ); 411848b8605Smrg 412848b8605Smrg 413848b8605Smrgextern void GLAPIENTRY 414848b8605Smrg_mesa_CopyTexSubImage3D( GLenum target, GLint level, 415848b8605Smrg GLint xoffset, GLint yoffset, GLint zoffset, 416848b8605Smrg GLint x, GLint y, GLsizei width, GLsizei height ); 417848b8605Smrg 418b8e80941Smrgextern void GLAPIENTRY 419b8e80941Smrg_mesa_CopyTextureSubImage1D(GLuint texture, GLint level, 420b8e80941Smrg GLint xoffset, GLint x, GLint y, GLsizei width); 421b8e80941Smrg 422b8e80941Smrgextern void GLAPIENTRY 423b8e80941Smrg_mesa_CopyTextureSubImage2D(GLuint texture, GLint level, 424b8e80941Smrg GLint xoffset, GLint yoffset, 425b8e80941Smrg GLint x, GLint y, 426b8e80941Smrg GLsizei width, GLsizei height); 427b8e80941Smrg 428b8e80941Smrgextern void GLAPIENTRY 429b8e80941Smrg_mesa_CopyTextureSubImage3D(GLuint texture, GLint level, 430b8e80941Smrg GLint xoffset, GLint yoffset, GLint zoffset, 431b8e80941Smrg GLint x, GLint y, 432b8e80941Smrg GLsizei width, GLsizei height); 433b8e80941Smrg 434b8e80941Smrgextern void GLAPIENTRY 435b8e80941Smrg_mesa_CopyTexSubImage1D_no_error(GLenum target, GLint level, GLint xoffset, 436b8e80941Smrg GLint x, GLint y, GLsizei width ); 437b8e80941Smrg 438b8e80941Smrgextern void GLAPIENTRY 439b8e80941Smrg_mesa_CopyTexSubImage2D_no_error(GLenum target, GLint level, GLint xoffset, 440b8e80941Smrg GLint yoffset, GLint x, GLint y, GLsizei width, 441b8e80941Smrg GLsizei height); 442b8e80941Smrg 443b8e80941Smrgextern void GLAPIENTRY 444b8e80941Smrg_mesa_CopyTexSubImage3D_no_error(GLenum target, GLint level, GLint xoffset, 445b8e80941Smrg GLint yoffset, GLint zoffset, GLint x, GLint y, 446b8e80941Smrg GLsizei width, GLsizei height); 447b8e80941Smrg 448b8e80941Smrgextern void GLAPIENTRY 449b8e80941Smrg_mesa_CopyTextureSubImage1D_no_error(GLuint texture, GLint level, GLint xoffset, 450b8e80941Smrg GLint x, GLint y, GLsizei width); 451848b8605Smrg 452b8e80941Smrgextern void GLAPIENTRY 453b8e80941Smrg_mesa_CopyTextureSubImage2D_no_error(GLuint texture, GLint level, GLint xoffset, 454b8e80941Smrg GLint yoffset, GLint x, GLint y, 455b8e80941Smrg GLsizei width, GLsizei height); 456b8e80941Smrg 457b8e80941Smrgextern void GLAPIENTRY 458b8e80941Smrg_mesa_CopyTextureSubImage3D_no_error(GLuint texture, GLint level, GLint xoffset, 459b8e80941Smrg GLint yoffset, GLint zoffset, GLint x, 460b8e80941Smrg GLint y, GLsizei width, GLsizei height); 461848b8605Smrg 462848b8605Smrgextern void GLAPIENTRY 463848b8605Smrg_mesa_ClearTexSubImage( GLuint texture, GLint level, 464848b8605Smrg GLint xoffset, GLint yoffset, GLint zoffset, 465848b8605Smrg GLsizei width, GLsizei height, GLsizei depth, 466848b8605Smrg GLenum format, GLenum type, const void *data ); 467848b8605Smrg 468848b8605Smrgextern void GLAPIENTRY 469848b8605Smrg_mesa_ClearTexImage( GLuint texture, GLint level, 470848b8605Smrg GLenum format, GLenum type, const void *data ); 471848b8605Smrg 472848b8605Smrgextern void GLAPIENTRY 473848b8605Smrg_mesa_CompressedTexImage1D(GLenum target, GLint level, 474848b8605Smrg GLenum internalformat, GLsizei width, 475848b8605Smrg GLint border, GLsizei imageSize, 476848b8605Smrg const GLvoid *data); 477848b8605Smrg 478848b8605Smrgextern void GLAPIENTRY 479848b8605Smrg_mesa_CompressedTexImage2D(GLenum target, GLint level, 480848b8605Smrg GLenum internalformat, GLsizei width, 481848b8605Smrg GLsizei height, GLint border, GLsizei imageSize, 482848b8605Smrg const GLvoid *data); 483848b8605Smrg 484848b8605Smrgextern void GLAPIENTRY 485848b8605Smrg_mesa_CompressedTexImage3D(GLenum target, GLint level, 486848b8605Smrg GLenum internalformat, GLsizei width, 487848b8605Smrg GLsizei height, GLsizei depth, GLint border, 488848b8605Smrg GLsizei imageSize, const GLvoid *data); 489848b8605Smrg 490848b8605Smrgextern void GLAPIENTRY 491b8e80941Smrg_mesa_CompressedTexImage1D_no_error(GLenum target, GLint level, 492b8e80941Smrg GLenum internalformat, GLsizei width, 493b8e80941Smrg GLint border, GLsizei imageSize, 494b8e80941Smrg const GLvoid *data); 495b8e80941Smrg 496b8e80941Smrgextern void GLAPIENTRY 497b8e80941Smrg_mesa_CompressedTexImage2D_no_error(GLenum target, GLint level, 498b8e80941Smrg GLenum internalformat, GLsizei width, 499b8e80941Smrg GLsizei height, GLint border, 500b8e80941Smrg GLsizei imageSize, const GLvoid *data); 501b8e80941Smrg 502b8e80941Smrgextern void GLAPIENTRY 503b8e80941Smrg_mesa_CompressedTexImage3D_no_error(GLenum target, GLint level, 504b8e80941Smrg GLenum internalformat, GLsizei width, 505b8e80941Smrg GLsizei height, GLsizei depth, GLint border, 506b8e80941Smrg GLsizei imageSize, const GLvoid *data); 507b8e80941Smrg 508b8e80941Smrg 509b8e80941Smrgextern void GLAPIENTRY 510b8e80941Smrg_mesa_CompressedTexSubImage1D_no_error(GLenum target, GLint level, 511b8e80941Smrg GLint xoffset, GLsizei width, 512b8e80941Smrg GLenum format, GLsizei imageSize, 513b8e80941Smrg const GLvoid *data); 514b8e80941Smrgextern void GLAPIENTRY 515848b8605Smrg_mesa_CompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, 516848b8605Smrg GLsizei width, GLenum format, 517848b8605Smrg GLsizei imageSize, const GLvoid *data); 518848b8605Smrg 519848b8605Smrgextern void GLAPIENTRY 520b8e80941Smrg_mesa_CompressedTextureSubImage1D_no_error(GLuint texture, GLint level, 521b8e80941Smrg GLint xoffset, GLsizei width, 522b8e80941Smrg GLenum format, GLsizei imageSize, 523b8e80941Smrg const GLvoid *data); 524b8e80941Smrgextern void GLAPIENTRY 525b8e80941Smrg_mesa_CompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, 526b8e80941Smrg GLsizei width, GLenum format, 527b8e80941Smrg GLsizei imageSize, const GLvoid *data); 528b8e80941Smrg 529b8e80941Smrgextern void GLAPIENTRY 530b8e80941Smrg_mesa_CompressedTexSubImage2D_no_error(GLenum target, GLint level, 531b8e80941Smrg GLint xoffset, GLint yoffset, 532b8e80941Smrg GLsizei width, GLsizei height, 533b8e80941Smrg GLenum format, GLsizei imageSize, 534b8e80941Smrg const GLvoid *data); 535b8e80941Smrgextern void GLAPIENTRY 536848b8605Smrg_mesa_CompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, 537848b8605Smrg GLint yoffset, GLsizei width, GLsizei height, 538848b8605Smrg GLenum format, GLsizei imageSize, 539848b8605Smrg const GLvoid *data); 540848b8605Smrg 541848b8605Smrgextern void GLAPIENTRY 542b8e80941Smrg_mesa_CompressedTextureSubImage2D_no_error(GLuint texture, GLint level, 543b8e80941Smrg GLint xoffset, GLint yoffset, 544b8e80941Smrg GLsizei width, GLsizei height, 545b8e80941Smrg GLenum format, GLsizei imageSize, 546b8e80941Smrg const GLvoid *data); 547b8e80941Smrgextern void GLAPIENTRY 548b8e80941Smrg_mesa_CompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, 549b8e80941Smrg GLint yoffset, 550b8e80941Smrg GLsizei width, GLsizei height, 551b8e80941Smrg GLenum format, GLsizei imageSize, 552b8e80941Smrg const GLvoid *data); 553b8e80941Smrg 554b8e80941Smrgextern void GLAPIENTRY 555b8e80941Smrg_mesa_CompressedTexSubImage3D_no_error(GLenum target, GLint level, 556b8e80941Smrg GLint xoffset, GLint yoffset, 557b8e80941Smrg GLint zoffset, GLsizei width, 558b8e80941Smrg GLsizei height, GLsizei depth, 559b8e80941Smrg GLenum format, GLsizei imageSize, 560b8e80941Smrg const GLvoid *data); 561b8e80941Smrgextern void GLAPIENTRY 562848b8605Smrg_mesa_CompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, 563848b8605Smrg GLint yoffset, GLint zoffset, GLsizei width, 564848b8605Smrg GLsizei height, GLsizei depth, GLenum format, 565848b8605Smrg GLsizei imageSize, const GLvoid *data); 566848b8605Smrg 567b8e80941Smrgextern void GLAPIENTRY 568b8e80941Smrg_mesa_CompressedTextureSubImage3D_no_error(GLuint texture, GLint level, 569b8e80941Smrg GLint xoffset, GLint yoffset, 570b8e80941Smrg GLint zoffset, GLsizei width, 571b8e80941Smrg GLsizei height, GLsizei depth, 572b8e80941Smrg GLenum format, GLsizei imageSize, 573b8e80941Smrg const GLvoid *data); 574b8e80941Smrgextern void GLAPIENTRY 575b8e80941Smrg_mesa_CompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, 576b8e80941Smrg GLint yoffset, GLint zoffset, 577b8e80941Smrg GLsizei width, GLsizei height, 578b8e80941Smrg GLsizei depth, 579b8e80941Smrg GLenum format, GLsizei imageSize, 580b8e80941Smrg const GLvoid *data); 581848b8605Smrg 582848b8605Smrgextern void GLAPIENTRY 583848b8605Smrg_mesa_TexBuffer(GLenum target, GLenum internalFormat, GLuint buffer); 584848b8605Smrg 585848b8605Smrgextern void GLAPIENTRY 586848b8605Smrg_mesa_TexBufferRange(GLenum target, GLenum internalFormat, GLuint buffer, 587848b8605Smrg GLintptr offset, GLsizeiptr size); 588848b8605Smrg 589b8e80941Smrgextern void GLAPIENTRY 590b8e80941Smrg_mesa_TextureBuffer(GLuint texture, GLenum internalFormat, GLuint buffer); 591b8e80941Smrg 592b8e80941Smrgextern void GLAPIENTRY 593b8e80941Smrg_mesa_TextureBufferRange(GLuint texture, GLenum internalFormat, GLuint buffer, 594b8e80941Smrg GLintptr offset, GLsizeiptr size); 595b8e80941Smrg 596848b8605Smrg 597848b8605Smrgextern void GLAPIENTRY 598848b8605Smrg_mesa_TexImage2DMultisample(GLenum target, GLsizei samples, 599848b8605Smrg GLenum internalformat, GLsizei width, 600848b8605Smrg GLsizei height, GLboolean fixedsamplelocations); 601848b8605Smrg 602848b8605Smrgextern void GLAPIENTRY 603848b8605Smrg_mesa_TexImage3DMultisample(GLenum target, GLsizei samples, 604848b8605Smrg GLenum internalformat, GLsizei width, 605848b8605Smrg GLsizei height, GLsizei depth, 606848b8605Smrg GLboolean fixedsamplelocations); 607848b8605Smrg 608848b8605Smrgextern void GLAPIENTRY 609848b8605Smrg_mesa_TexStorage2DMultisample(GLenum target, GLsizei samples, 610848b8605Smrg GLenum internalformat, GLsizei width, 611848b8605Smrg GLsizei height, GLboolean fixedsamplelocations); 612848b8605Smrg 613848b8605Smrgextern void GLAPIENTRY 614848b8605Smrg_mesa_TexStorage3DMultisample(GLenum target, GLsizei samples, 615848b8605Smrg GLenum internalformat, GLsizei width, 616848b8605Smrg GLsizei height, GLsizei depth, 617848b8605Smrg GLboolean fixedsamplelocations); 618848b8605Smrg 619b8e80941Smrgvoid GLAPIENTRY 620b8e80941Smrg_mesa_TextureStorage2DMultisample(GLuint texture, GLsizei samples, 621b8e80941Smrg GLenum internalformat, GLsizei width, 622b8e80941Smrg GLsizei height, 623b8e80941Smrg GLboolean fixedsamplelocations); 624b8e80941Smrg 625b8e80941Smrgvoid GLAPIENTRY 626b8e80941Smrg_mesa_TextureStorage3DMultisample(GLuint texture, GLsizei samples, 627b8e80941Smrg GLenum internalformat, GLsizei width, 628b8e80941Smrg GLsizei height, GLsizei depth, 629b8e80941Smrg GLboolean fixedsamplelocations); 630848b8605Smrg/*@}*/ 631848b8605Smrg 632848b8605Smrg#ifdef __cplusplus 633848b8605Smrg} 634848b8605Smrg#endif 635848b8605Smrg 636848b8605Smrg#endif 637