1 /* $Id: teximage.h,v 1.4 1997/11/02 20:20:47 brianp Exp $ */ 2 3 /* 4 * Mesa 3-D graphics library 5 * Version: 2.5 6 * Copyright (C) 1995-1997 Brian Paul 7 * 8 * This library is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Library General Public 10 * License as published by the Free Software Foundation; either 11 * version 2 of the License, or (at your option) any later version. 12 * 13 * This library is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Library General Public License for more details. 17 * 18 * You should have received a copy of the GNU Library General Public 19 * License along with this library; if not, write to the Free 20 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 21 */ 22 23 24 /* 25 * $Log: teximage.h,v $ 26 * Revision 1.4 1997/11/02 20:20:47 brianp 27 * removed gl_unpack_texsubimage3D() 28 * 29 * Revision 1.3 1997/02/09 18:53:05 brianp 30 * added GL_EXT_texture3D support 31 * 32 * Revision 1.2 1996/11/07 04:13:24 brianp 33 * all new texture image handling, now pixel scale, bias, mapping work 34 * 35 * Revision 1.1 1996/09/13 01:38:16 brianp 36 * Initial revision 37 * 38 */ 39 40 41 #ifndef TEXIMAGE_H 42 #define TEXIMAGE_H 43 44 45 #include "types.h" 46 47 48 /*** Internal functions ***/ 49 50 51 extern struct gl_texture_image *gl_alloc_texture_image( void ); 52 53 54 extern void gl_free_texture_image( struct gl_texture_image *teximage ); 55 56 57 extern struct gl_image * 58 gl_unpack_texsubimage( GLcontext *ctx, GLint width, GLint height, 59 GLenum format, GLenum type, const GLvoid *pixels ); 60 61 62 extern struct gl_texture_image * 63 gl_unpack_texture( GLcontext *ctx, 64 GLint dimensions, 65 GLenum target, 66 GLint level, 67 GLint internalformat, 68 GLsizei width, GLsizei height, 69 GLint border, 70 GLenum format, GLenum type, 71 const GLvoid *pixels ); 72 73 extern struct gl_texture_image * 74 gl_unpack_texture3D( GLcontext *ctx, 75 GLint dimensions, 76 GLenum target, 77 GLint level, 78 GLint internalformat, 79 GLsizei width, GLsizei height, GLsizei depth, 80 GLint border, 81 GLenum format, GLenum type, 82 const GLvoid *pixels ); 83 84 85 extern void gl_tex_image_1D( GLcontext *ctx, 86 GLenum target, GLint level, GLint internalformat, 87 GLsizei width, GLint border, GLenum format, 88 GLenum type, const GLvoid *pixels ); 89 90 91 extern void gl_tex_image_2D( GLcontext *ctx, 92 GLenum target, GLint level, GLint internalformat, 93 GLsizei width, GLint height, GLint border, 94 GLenum format, GLenum type, 95 const GLvoid *pixels ); 96 97 extern void gl_tex_image_3D( GLcontext *ctx, 98 GLenum target, GLint level, GLint internalformat, 99 GLsizei width, GLint height, GLint depth, 100 GLint border, 101 GLenum format, GLenum type, 102 const GLvoid *pixels ); 103 104 105 /*** API entry points ***/ 106 107 108 extern void gl_TexImage1D( GLcontext *ctx, 109 GLenum target, GLint level, GLint internalformat, 110 GLsizei width, GLint border, GLenum format, 111 GLenum type, struct gl_image *teximage ); 112 113 114 extern void gl_TexImage2D( GLcontext *ctx, 115 GLenum target, GLint level, GLint internalformat, 116 GLsizei width, GLsizei height, GLint border, 117 GLenum format, GLenum type, 118 struct gl_image *teximage ); 119 120 extern void gl_GetTexImage( GLcontext *ctx, GLenum target, GLint level, 121 GLenum format, GLenum type, GLvoid *pixels ); 122 123 124 125 extern void gl_TexSubImage1D( GLcontext *ctx, 126 GLenum target, GLint level, GLint xoffset, 127 GLsizei width, GLenum format, GLenum type, 128 struct gl_image *image ); 129 130 131 extern void gl_TexSubImage2D( GLcontext *ctx, 132 GLenum target, GLint level, 133 GLint xoffset, GLint yoffset, 134 GLsizei width, GLsizei height, 135 GLenum format, GLenum type, 136 struct gl_image *image ); 137 138 139 extern void gl_CopyTexImage1D( GLcontext *ctx, 140 GLenum target, GLint level, 141 GLenum internalformat, 142 GLint x, GLint y, 143 GLsizei width, GLint border ); 144 145 146 extern void gl_CopyTexImage2D( GLcontext *ctx, 147 GLenum target, GLint level, 148 GLenum internalformat, GLint x, GLint y, 149 GLsizei width, GLsizei height, 150 GLint border ); 151 152 153 extern void gl_CopyTexSubImage1D( GLcontext *ctx, 154 GLenum target, GLint level, 155 GLint xoffset, GLint x, GLint y, 156 GLsizei width ); 157 158 159 extern void gl_CopyTexSubImage2D( GLcontext *ctx, 160 GLenum target, GLint level, 161 GLint xoffset, GLint yoffset, 162 GLint x, GLint y, 163 GLsizei width, GLsizei height ); 164 165 #endif 166 167