14b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell
24b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell/*
34b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * Mesa 3-D graphics library
44b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * Version:  3.5
54b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell *
64b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
74b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell *
84b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * Permission is hereby granted, free of charge, to any person obtaining a
94b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * copy of this software and associated documentation files (the "Software"),
104b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * to deal in the Software without restriction, including without limitation
114b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * the rights to use, copy, modify, merge, publish, distribute, sublicense,
124b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * and/or sell copies of the Software, and to permit persons to whom the
134b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * Software is furnished to do so, subject to the following conditions:
144b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell *
154b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * The above copyright notice and this permission notice shall be included
164b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * in all copies or substantial portions of the Software.
174b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell *
184b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
194b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
204b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
214b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
224b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
234b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
244b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell */
254b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell
264b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell
274b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell#ifndef API_ARRAYELT_H
284b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell#define API_ARRAYELT_H
294b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell
3080630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
31db61b9ce39bccc43140357652ceb78baaf2aea44Vinson Lee#include "main/mfeatures.h"
3280630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu#include "main/mtypes.h"
3380630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
3480630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu#if FEATURE_arrayelt
3580630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
3680630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu#define _MESA_INIT_ARRAYELT_VTXFMT(vfmt, impl)     \
3780630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu   do {                                            \
3880630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu      (vfmt)->ArrayElement = impl ## ArrayElement; \
3980630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu   } while (0)
404b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell
41f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergextern GLboolean _ae_create_context( struct gl_context *ctx );
42f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergextern void _ae_destroy_context( struct gl_context *ctx );
43f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergextern void _ae_invalidate_state( struct gl_context *ctx, GLuint new_state );
4480630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wuextern void GLAPIENTRY _ae_ArrayElement( GLint elt );
454b7d6f216bf768482e07e4d7feb8ca3e1be92d53Keith Whitwell
46b97947972193b6b004a0ee49da31146230d43dd8Keith Whitwell/* May optionally be called before a batch of element calls:
47b97947972193b6b004a0ee49da31146230d43dd8Keith Whitwell */
48f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergextern void _ae_map_vbos( struct gl_context *ctx );
49f9995b30756140724f41daf963fa06167912be7fKristian Høgsbergextern void _ae_unmap_vbos( struct gl_context *ctx );
50b97947972193b6b004a0ee49da31146230d43dd8Keith Whitwell
5180630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wuextern void
5280630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu_mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp,
5380630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu                              const GLvertexformat *vfmt);
5480630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
5580630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu#else /* FEATURE_arrayelt */
5680630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
5780630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu#define _MESA_INIT_ARRAYELT_VTXFMT(vfmt, impl) do { } while (0)
5880630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
599520f483b8f1e45fa474674b415554988de5d8d3Brian Paulstatic inline GLboolean
60f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_ae_create_context( struct gl_context *ctx )
6180630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu{
6280630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu   return GL_TRUE;
6380630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu}
6480630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
659520f483b8f1e45fa474674b415554988de5d8d3Brian Paulstatic inline void
66f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_ae_destroy_context( struct gl_context *ctx )
6780630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu{
6880630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu}
6980630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
709520f483b8f1e45fa474674b415554988de5d8d3Brian Paulstatic inline void
71f9995b30756140724f41daf963fa06167912be7fKristian Høgsberg_ae_invalidate_state( struct gl_context *ctx, GLuint new_state )
7280630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu{
7380630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu}
7480630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
759520f483b8f1e45fa474674b415554988de5d8d3Brian Paulstatic inline void
7680630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu_mesa_install_arrayelt_vtxfmt(struct _glapi_table *disp,
7780630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu                              const GLvertexformat *vfmt)
7880630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu{
7980630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu}
8080630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
8180630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu#endif /* FEATURE_arrayelt */
8280630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
8380630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu
8480630d1fed6cd32e75f5e97e2cd27509be21d093Chia-I Wu#endif /* API_ARRAYELT_H */
85