Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. /**
  2.  * \file dlist.h
  3.  * Display lists management.
  4.  */
  5.  
  6. /*
  7.  * Mesa 3-D graphics library
  8.  * Version:  6.5.1
  9.  *
  10.  * Copyright (C) 1999-2006  Brian Paul   All Rights Reserved.
  11.  *
  12.  * Permission is hereby granted, free of charge, to any person obtaining a
  13.  * copy of this software and associated documentation files (the "Software"),
  14.  * to deal in the Software without restriction, including without limitation
  15.  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  16.  * and/or sell copies of the Software, and to permit persons to whom the
  17.  * Software is furnished to do so, subject to the following conditions:
  18.  *
  19.  * The above copyright notice and this permission notice shall be included
  20.  * in all copies or substantial portions of the Software.
  21.  *
  22.  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  23.  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  24.  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
  25.  * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
  26.  * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  27.  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  28.  */
  29.  
  30.  
  31.  
  32. #ifndef DLIST_H
  33. #define DLIST_H
  34.  
  35.  
  36. #include "main/mtypes.h"
  37.  
  38.  
  39. #if FEATURE_dlist
  40.  
  41. #define _MESA_INIT_DLIST_VTXFMT(vfmt, impl)  \
  42.    do {                                      \
  43.       (vfmt)->CallList  = impl ## CallList;  \
  44.       (vfmt)->CallLists = impl ## CallLists; \
  45.    } while (0)
  46.  
  47. extern void GLAPIENTRY _mesa_CallList( GLuint list );
  48.  
  49. extern void GLAPIENTRY _mesa_CallLists( GLsizei n, GLenum type, const GLvoid *lists );
  50.  
  51.  
  52. extern void _mesa_compile_error( struct gl_context *ctx, GLenum error, const char *s );
  53.  
  54. extern void *_mesa_dlist_alloc(struct gl_context *ctx, GLuint opcode, GLuint sz);
  55.  
  56. extern GLint _mesa_dlist_alloc_opcode( struct gl_context *ctx, GLuint sz,
  57.                                        void (*execute)( struct gl_context *, void * ),
  58.                                        void (*destroy)( struct gl_context *, void * ),
  59.                                        void (*print)( struct gl_context *, void * ) );
  60.  
  61. extern void _mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist);
  62.  
  63. extern void _mesa_save_vtxfmt_init( GLvertexformat *vfmt );
  64.  
  65. extern struct _glapi_table *_mesa_create_save_table(void);
  66.  
  67. extern void _mesa_install_dlist_vtxfmt(struct _glapi_table *disp,
  68.                                        const GLvertexformat *vfmt);
  69.  
  70. extern void _mesa_init_dlist_dispatch(struct _glapi_table *disp);
  71.  
  72. #else /* FEATURE_dlist */
  73.  
  74. #include "main/compiler.h"
  75.  
  76. #define _MESA_INIT_DLIST_VTXFMT(vfmt, impl) do { } while (0)
  77.  
  78. static INLINE void
  79. _mesa_delete_list(struct gl_context *ctx, struct gl_display_list *dlist)
  80. {
  81.    /* there should be no list to delete */
  82.    ASSERT_NO_FEATURE();
  83. }
  84.  
  85. static INLINE void
  86. _mesa_install_dlist_vtxfmt(struct _glapi_table *disp,
  87.                            const GLvertexformat *vfmt)
  88. {
  89. }
  90.  
  91. static INLINE void
  92. _mesa_init_dlist_dispatch(struct _glapi_table *disp)
  93. {
  94. }
  95.  
  96. #endif /* FEATURE_dlist */
  97.  
  98. extern void _mesa_init_display_list( struct gl_context * ctx );
  99.  
  100. extern void _mesa_free_display_list_data(struct gl_context *ctx);
  101.  
  102.  
  103. #endif /* DLIST_H */
  104.