1 /* $Id: dlist.h,v 1.15 1997/12/06 18:06:50 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: dlist.h,v $ 26 * Revision 1.15 1997/12/06 18:06:50 brianp 27 * moved several static display list vars into GLcontext 28 * 29 * Revision 1.14 1997/10/29 01:29:09 brianp 30 * added GL_EXT_point_parameters extension from Daniel Barrero 31 * 32 * Revision 1.13 1997/09/27 00:13:44 brianp 33 * added GL_EXT_paletted_texture extension 34 * 35 * Revision 1.12 1997/06/20 01:57:57 brianp 36 * added gl_save_Color4ubv() 37 * 38 * Revision 1.11 1997/06/06 02:59:12 brianp 39 * added gl_destroy_list() 40 * 41 * Revision 1.10 1997/04/24 01:50:53 brianp 42 * optimized glColor3f, glColor3fv, glColor4fv 43 * 44 * Revision 1.9 1997/04/21 01:21:33 brianp 45 * added gl_save_Rectf() 46 * 47 * Revision 1.8 1997/04/20 16:18:15 brianp 48 * added glOrtho and glFrustum API pointers 49 * 50 * Revision 1.7 1997/04/16 23:55:33 brianp 51 * added optimized glTexCoord2f code 52 * 53 * Revision 1.6 1997/04/14 22:18:23 brianp 54 * added optimized glVertex3fv code 55 * 56 * Revision 1.5 1997/04/07 02:58:49 brianp 57 * added gl_save_Vertex[23]f() and related code 58 * 59 * Revision 1.4 1997/04/01 04:26:02 brianp 60 * added code for glLoadIdentity(), changed #include's 61 * 62 * Revision 1.3 1997/02/09 18:50:18 brianp 63 * added GL_EXT_texture3D support 64 * 65 * Revision 1.2 1996/11/07 04:12:45 brianp 66 * texture images are now gl_image structs, not gl_texture_image structs 67 * 68 * Revision 1.1 1996/09/13 01:38:16 brianp 69 * Initial revision 70 * 71 */ 72 73 74 #ifndef DLIST_H 75 #define DLIST_H 76 77 78 #include "types.h" 79 80 81 82 extern void gl_init_lists( void ); 83 84 extern void gl_destroy_list( GLcontext *ctx, GLuint list ); 85 86 87 88 extern void gl_CallList( GLcontext *ctx, GLuint list ); 89 90 extern void gl_CallLists( GLcontext *ctx, 91 GLsizei n, GLenum type, const GLvoid *lists ); 92 93 extern void gl_DeleteLists( GLcontext *ctx, GLuint list, GLsizei range ); 94 95 extern void gl_EndList( GLcontext *ctx ); 96 97 extern GLuint gl_GenLists( GLcontext *ctx, GLsizei range ); 98 99 extern GLboolean gl_IsList( GLcontext *ctx, GLuint list ); 100 101 extern void gl_ListBase( GLcontext *ctx, GLuint base ); 102 103 extern void gl_NewList( GLcontext *ctx, GLuint list, GLenum mode ); 104 105 106 107 108 extern void gl_save_Accum( GLcontext *ctx, GLenum op, GLfloat value ); 109 110 extern void gl_save_AlphaFunc( GLcontext *ctx, GLenum func, GLclampf ref ); 111 112 extern void gl_save_BlendFunc( GLcontext *ctx, 113 GLenum sfactor, GLenum dfactor ); 114 115 extern void gl_save_Begin( GLcontext *ctx, GLenum mode ); 116 117 extern void gl_save_BindTexture( GLcontext *ctx, 118 GLenum target, GLuint texture ); 119 120 extern void gl_save_Bitmap( GLcontext *ctx, GLsizei width, GLsizei height, 121 GLfloat xorig, GLfloat yorig, 122 GLfloat xmove, GLfloat ymove, 123 const struct gl_image *bitmap ); 124 125 extern void gl_save_CallList( GLcontext *ctx, GLuint list ); 126 127 extern void gl_save_CallLists( GLcontext *ctx, 128 GLsizei n, GLenum type, const GLvoid *lists ); 129 130 extern void gl_save_Clear( GLcontext *ctx, GLbitfield mask ); 131 132 extern void gl_save_ClearAccum( GLcontext *ctx, GLfloat red, GLfloat green, 133 GLfloat blue, GLfloat alpha ); 134 135 extern void gl_save_ClearColor( GLcontext *ctx, GLclampf red, GLclampf green, 136 GLclampf blue, GLclampf alpha ); 137 138 extern void gl_save_ClearDepth( GLcontext *ctx, GLclampd depth ); 139 140 extern void gl_save_ClearIndex( GLcontext *ctx, GLfloat c ); 141 142 extern void gl_save_ClearStencil( GLcontext *ctx, GLint s ); 143 144 extern void gl_save_ClipPlane( GLcontext *ctx, 145 GLenum plane, const GLfloat *equ ); 146 147 extern void gl_save_Color3f( GLcontext *ctx, GLfloat r, GLfloat g, GLfloat b ); 148 149 extern void gl_save_Color3fv( GLcontext *ctx, const GLfloat *c ); 150 151 extern void gl_save_Color4f( GLcontext *ctx, GLfloat r, GLfloat g, 152 GLfloat b, GLfloat a ); 153 154 extern void gl_save_Color4fv( GLcontext *ctx, const GLfloat *c ); 155 156 extern void gl_save_Color4ub( GLcontext *ctx, GLubyte r, GLubyte g, 157 GLubyte b, GLubyte a ); 158 159 extern void gl_save_Color4ubv( GLcontext *ctx, const GLubyte *c ); 160 161 extern void gl_save_ColorMask( GLcontext *ctx, GLboolean red, GLboolean green, 162 GLboolean blue, GLboolean alpha ); 163 164 extern void gl_save_ColorMaterial( GLcontext *ctx, GLenum face, GLenum mode ); 165 166 extern void gl_save_ColorTable( GLcontext *ctx, GLenum target, 167 GLenum internalFormat, 168 struct gl_image *table ); 169 170 extern void gl_save_ColorSubTable( GLcontext *ctx, GLenum target, 171 GLsizei start, struct gl_image *data ); 172 173 extern void gl_save_CopyPixels( GLcontext *ctx, GLint x, GLint y, 174 GLsizei width, GLsizei height, GLenum type ); 175 176 extern void gl_save_CopyTexImage1D( GLcontext *ctx, 177 GLenum target, GLint level, 178 GLenum internalformat, 179 GLint x, GLint y, GLsizei width, 180 GLint border ); 181 182 extern void gl_save_CopyTexImage2D( GLcontext *ctx, 183 GLenum target, GLint level, 184 GLenum internalformat, 185 GLint x, GLint y, GLsizei width, 186 GLsizei height, GLint border ); 187 188 extern void gl_save_CopyTexSubImage1D( GLcontext *ctx, 189 GLenum target, GLint level, 190 GLint xoffset, GLint x, GLint y, 191 GLsizei width ); 192 193 extern void gl_save_CopyTexSubImage2D( GLcontext *ctx, 194 GLenum target, GLint level, 195 GLint xoffset, GLint yoffset, 196 GLint x, GLint y, 197 GLsizei width, GLint height ); 198 199 extern void gl_save_CullFace( GLcontext *ctx, GLenum mode ); 200 201 extern void gl_save_DepthFunc( GLcontext *ctx, GLenum func ); 202 203 extern void gl_save_DepthMask( GLcontext *ctx, GLboolean mask ); 204 205 extern void gl_save_DepthRange( GLcontext *ctx, 206 GLclampd nearval, GLclampd farval ); 207 208 extern void gl_save_Disable( GLcontext *ctx, GLenum cap ); 209 210 extern void gl_save_DrawBuffer( GLcontext *ctx, GLenum mode ); 211 212 extern void gl_save_DrawPixels( GLcontext *ctx, 213 GLsizei width, GLsizei height, GLenum format, 214 GLenum type, const GLvoid *pixels ); 215 216 extern void gl_save_EdgeFlag( GLcontext *ctx, GLboolean flag ); 217 218 extern void gl_save_Enable( GLcontext *ctx, GLenum cap ); 219 220 extern void gl_save_End( GLcontext *ctx ); 221 222 extern void gl_save_EvalCoord1f( GLcontext *ctx, GLfloat u ); 223 224 extern void gl_save_EvalCoord2f( GLcontext *ctx, GLfloat u, GLfloat v ); 225 226 extern void gl_save_EvalMesh1( GLcontext *ctx, 227 GLenum mode, GLint i1, GLint i2 ); 228 229 extern void gl_save_EvalMesh2( GLcontext *ctx, GLenum mode, GLint i1, GLint i2, 230 GLint j1, GLint j2 ); 231 232 extern void gl_save_EvalPoint1( GLcontext *ctx, GLint i ); 233 234 extern void gl_save_EvalPoint2( GLcontext *ctx, GLint i, GLint j ); 235 236 extern void gl_save_Fogfv( GLcontext *ctx, 237 GLenum pname, const GLfloat *params ); 238 239 extern void gl_save_FrontFace( GLcontext *ctx, GLenum mode ); 240 241 extern void gl_save_Frustum( GLcontext *ctx, GLdouble left, GLdouble right, 242 GLdouble bottom, GLdouble top, 243 GLdouble nearval, GLdouble farval ); 244 245 extern void gl_save_Hint( GLcontext *ctx, GLenum target, GLenum mode ); 246 247 extern void gl_save_Indexf( GLcontext *ctx, GLfloat index ); 248 249 extern void gl_save_Indexi( GLcontext *ctx, GLint index ); 250 251 extern void gl_save_IndexMask( GLcontext *ctx, GLuint mask ); 252 253 extern void gl_save_InitNames( GLcontext *ctx ); 254 255 extern void gl_save_Lightfv( GLcontext *ctx, GLenum light, GLenum pname, 256 const GLfloat *params, GLint numparams ); 257 258 extern void gl_save_LightModelfv( GLcontext *ctx, GLenum pname, 259 const GLfloat *params ); 260 261 extern void gl_save_LineWidth( GLcontext *ctx, GLfloat width ); 262 263 extern void gl_save_LineStipple( GLcontext *ctx, GLint factor, 264 GLushort pattern ); 265 266 extern void gl_save_ListBase( GLcontext *ctx, GLuint base ); 267 268 extern void gl_save_LoadIdentity( GLcontext *ctx ); 269 270 extern void gl_save_LoadMatrixf( GLcontext *ctx, const GLfloat *m ); 271 272 extern void gl_save_LoadName( GLcontext *ctx, GLuint name ); 273 274 extern void gl_save_LogicOp( GLcontext *ctx, GLenum opcode ); 275 276 extern void gl_save_Map1f( GLcontext *ctx, GLenum target, 277 GLfloat u1, GLfloat u2, GLint stride, 278 GLint order, const GLfloat *points, 279 GLboolean retain ); 280 281 extern void gl_save_Map2f( GLcontext *ctx, GLenum target, 282 GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, 283 GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, 284 const GLfloat *points, 285 GLboolean retain ); 286 287 extern void gl_save_MapGrid1f( GLcontext *ctx, GLint un, 288 GLfloat u1, GLfloat u2 ); 289 290 extern void gl_save_MapGrid2f( GLcontext *ctx, 291 GLint un, GLfloat u1, GLfloat u2, 292 GLint vn, GLfloat v1, GLfloat v2 ); 293 294 extern void gl_save_Materialfv( GLcontext *ctx, GLenum face, GLenum pname, 295 const GLfloat *params ); 296 297 extern void gl_save_MatrixMode( GLcontext *ctx, GLenum mode ); 298 299 extern void gl_save_MultMatrixf( GLcontext *ctx, const GLfloat *m ); 300 301 extern void gl_save_NewList( GLcontext *ctx, GLuint list, GLenum mode ); 302 303 extern void gl_save_Normal3fv( GLcontext *ctx, const GLfloat n[3] ); 304 305 extern void gl_save_Normal3f( GLcontext *ctx, 306 GLfloat nx, GLfloat ny, GLfloat nz ); 307 308 extern void gl_save_Ortho( GLcontext *ctx, GLdouble left, GLdouble right, 309 GLdouble bottom, GLdouble top, 310 GLdouble nearval, GLdouble farval ); 311 312 extern void gl_save_PassThrough( GLcontext *ctx, GLfloat token ); 313 314 extern void gl_save_PixelMapfv( GLcontext *ctx, GLenum map, GLint mapsize, 315 const GLfloat *values ); 316 317 extern void gl_save_PixelTransferf( GLcontext *ctx, 318 GLenum pname, GLfloat param ); 319 320 extern void gl_save_PixelZoom( GLcontext *ctx, 321 GLfloat xfactor, GLfloat yfactor ); 322 323 extern void gl_save_PointSize( GLcontext *ctx, GLfloat size ); 324 325 extern void gl_save_PolygonMode( GLcontext *ctx, GLenum face, GLenum mode ); 326 327 extern void gl_save_PolygonStipple( GLcontext *ctx, const GLubyte *mask ); 328 329 extern void gl_save_PolygonOffset( GLcontext *ctx, 330 GLfloat factor, GLfloat units ); 331 332 extern void gl_save_PopAttrib( GLcontext *ctx ); 333 334 extern void gl_save_PopMatrix( GLcontext *ctx ); 335 336 extern void gl_save_PopName( GLcontext *ctx ); 337 338 extern void gl_save_PrioritizeTextures( GLcontext *ctx, 339 GLsizei n, const GLuint *textures, 340 const GLclampf *priorities ); 341 342 extern void gl_save_PushAttrib( GLcontext *ctx, GLbitfield mask ); 343 344 extern void gl_save_PushMatrix( GLcontext *ctx ); 345 346 extern void gl_save_PushName( GLcontext *ctx, GLuint name ); 347 348 extern void gl_save_RasterPos4f( GLcontext *ctx, 349 GLfloat x, GLfloat y, GLfloat z, GLfloat w ); 350 351 extern void gl_save_ReadBuffer( GLcontext *ctx, GLenum mode ); 352 353 extern void gl_save_Rectf( GLcontext *ctx, 354 GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 ); 355 356 extern void gl_save_Rotatef( GLcontext *ctx, GLfloat angle, 357 GLfloat x, GLfloat y, GLfloat z ); 358 359 extern void gl_save_Scalef( GLcontext *ctx, GLfloat x, GLfloat y, GLfloat z ); 360 361 extern void gl_save_Scissor( GLcontext *ctx, 362 GLint x, GLint y, GLsizei width, GLsizei height ); 363 364 extern void gl_save_ShadeModel( GLcontext *ctx, GLenum mode ); 365 366 extern void gl_save_StencilFunc( GLcontext *ctx, 367 GLenum func, GLint ref, GLuint mask ); 368 369 extern void gl_save_StencilMask( GLcontext *ctx, GLuint mask ); 370 371 extern void gl_save_StencilOp( GLcontext *ctx, 372 GLenum fail, GLenum zfail, GLenum zpass ); 373 374 extern void gl_save_TexCoord2f( GLcontext *ctx, GLfloat s, GLfloat t ); 375 376 extern void gl_save_TexCoord4f( GLcontext *ctx, GLfloat s, GLfloat t, 377 GLfloat r, GLfloat q ); 378 379 extern void gl_save_TexEnvfv( GLcontext *ctx, GLenum target, GLenum pname, 380 const GLfloat *params ); 381 382 extern void gl_save_TexParameterfv( GLcontext *ctx, GLenum target, 383 GLenum pname, const GLfloat *params ); 384 385 extern void gl_save_TexGenfv( GLcontext *ctx, GLenum coord, GLenum pname, 386 const GLfloat *params ); 387 388 extern void gl_save_TexImage1D( GLcontext *ctx, GLenum target, 389 GLint level, GLint components, 390 GLsizei width, GLint border, 391 GLenum format, GLenum type, 392 struct gl_image *teximage ); 393 394 extern void gl_save_TexImage2D( GLcontext *ctx, GLenum target, 395 GLint level, GLint components, 396 GLsizei width, GLsizei height, GLint border, 397 GLenum format, GLenum type, 398 struct gl_image *teximage ); 399 400 extern void gl_save_TexSubImage1D( GLcontext *ctx, 401 GLenum target, GLint level, 402 GLint xoffset, GLsizei width, 403 GLenum format, GLenum type, 404 struct gl_image *image ); 405 406 407 extern void gl_save_TexSubImage2D( GLcontext *ctx, 408 GLenum target, GLint level, 409 GLint xoffset, GLint yoffset, 410 GLsizei width, GLsizei height, 411 GLenum format, GLenum type, 412 struct gl_image *image ); 413 414 extern void gl_save_Translatef( GLcontext *ctx, 415 GLfloat x, GLfloat y, GLfloat z ); 416 417 extern void gl_save_Vertex2f( GLcontext *ctx, 418 GLfloat x, GLfloat y ); 419 420 extern void gl_save_Vertex3f( GLcontext *ctx, 421 GLfloat x, GLfloat y, GLfloat z ); 422 423 extern void gl_save_Vertex4f( GLcontext *ctx, 424 GLfloat x, GLfloat y, GLfloat z, GLfloat w ); 425 426 extern void gl_save_Vertex3fv( GLcontext *ctx, const GLfloat *v ); 427 428 extern void gl_save_Viewport( GLcontext *ctx, GLint x, GLint y, 429 GLsizei width, GLsizei height ); 430 431 432 #endif 433