home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / mesa5.zip / mesa5src.zip / dlist.h < prev    next >
C/C++ Source or Header  |  2002-12-01  |  4KB  |  110 lines

  1. /* $Id: dlist.h,v 1.17 2001/12/14 02:50:01 brianp Exp $ */
  2.  
  3. /*
  4.  * Mesa 3-D graphics library
  5.  * Version:  4.1
  6.  *
  7.  * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
  8.  *
  9.  * Permission is hereby granted, free of charge, to any person obtaining a
  10.  * copy of this software and associated documentation files (the "Software"),
  11.  * to deal in the Software without restriction, including without limitation
  12.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  13.  * and/or sell copies of the Software, and to permit persons to whom the
  14.  * Software is furnished to do so, subject to the following conditions:
  15.  *
  16.  * The above copyright notice and this permission notice shall be included
  17.  * in all copies or substantial portions of the Software.
  18.  *
  19.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  20.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  21.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  22.  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  23.  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  24.  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  25.  */
  26.  
  27.  
  28. #ifndef DLIST_H
  29. #define DLIST_H
  30.  
  31.  
  32. #include "mtypes.h"
  33.  
  34.  
  35. #define ASSERT_OUTSIDE_SAVE_BEGIN_END_WITH_RETVAL(ctx, retval)        \
  36. {                                    \
  37.    if (ctx->Driver.CurrentSavePrimitive <= GL_POLYGON ||        \
  38.        ctx->Driver.CurrentSavePrimitive == PRIM_INSIDE_UNKNOWN_PRIM) {    \
  39.       _mesa_compile_error( ctx, GL_INVALID_OPERATION, "begin/end" );    \
  40.       return retval;                            \
  41.    }                                    \
  42. }
  43.  
  44. #define ASSERT_OUTSIDE_SAVE_BEGIN_END(ctx)                \
  45. {                                    \
  46.    if (ctx->Driver.CurrentSavePrimitive <= GL_POLYGON ||        \
  47.        ctx->Driver.CurrentSavePrimitive == PRIM_INSIDE_UNKNOWN_PRIM) {    \
  48.       _mesa_compile_error( ctx, GL_INVALID_OPERATION, "begin/end" );    \
  49.       return;                                \
  50.    }                                    \
  51. }
  52.  
  53. #define ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH(ctx)            \
  54. {                                    \
  55.    ASSERT_OUTSIDE_SAVE_BEGIN_END(ctx);                    \
  56.    FLUSH_VERTICES(ctx, 0);                        \
  57. }
  58.  
  59. #define ASSERT_OUTSIDE_SAVE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, retval)\
  60. {                                    \
  61.    ASSERT_OUTSIDE_SAVE_BEGIN_END_WITH_RETVAL(ctx, retval);        \
  62.    FLUSH_VERTICES(ctx, 0);                        \
  63. }
  64.  
  65.  
  66. extern void _mesa_init_lists( void );
  67.  
  68. extern void _mesa_destroy_list( GLcontext *ctx, GLuint list );
  69.  
  70. extern void _mesa_CallList( GLuint list );
  71.  
  72. extern void _mesa_CallLists( GLsizei n, GLenum type, const GLvoid *lists );
  73.  
  74. extern void _mesa_DeleteLists( GLuint list, GLsizei range );
  75.  
  76. extern void _mesa_EndList( void );
  77.  
  78. extern GLuint _mesa_GenLists( GLsizei range );
  79.  
  80. extern GLboolean _mesa_IsList( GLuint list );
  81.  
  82. extern void _mesa_ListBase( GLuint base );
  83.  
  84. extern void _mesa_NewList( GLuint list, GLenum mode );
  85.  
  86. extern void _mesa_init_dlist_table( struct _glapi_table *table,
  87.                                     GLuint tableSize );
  88.  
  89. extern void _mesa_save_error( GLcontext *ctx, GLenum error, const char *s );
  90.  
  91. extern void _mesa_compile_error( GLcontext *ctx, GLenum error, const char *s );
  92.  
  93.  
  94. extern void *_mesa_alloc_instruction( GLcontext *ctx, int opcode, GLint sz );
  95.  
  96. extern int _mesa_alloc_opcode( GLcontext *ctx, GLuint sz,
  97.                                void (*execute)( GLcontext *, void * ),
  98.                                void (*destroy)( GLcontext *, void * ),
  99.                                void (*print)( GLcontext *, void * ) );
  100.  
  101. extern void _mesa_save_EvalMesh2(GLenum mode, GLint i1, GLint i2,
  102.                  GLint j1, GLint j2 );
  103. extern void _mesa_save_EvalMesh1( GLenum mode, GLint i1, GLint i2 );
  104. extern void _mesa_save_CallLists( GLsizei n, GLenum type, const GLvoid *lists );
  105. extern void _mesa_save_CallList( GLuint list );
  106.  
  107.  
  108.  
  109. #endif
  110.