1cdc920a0Smrg/*
2cdc920a0Smrg * (C) Copyright IBM Corporation 2004, 2005
3cdc920a0Smrg * All Rights Reserved.
4cdc920a0Smrg *
5cdc920a0Smrg * Permission is hereby granted, free of charge, to any person obtaining a
6cdc920a0Smrg * copy of this software and associated documentation files (the "Software"),
7cdc920a0Smrg * to deal in the Software without restriction, including without limitation
8cdc920a0Smrg * the rights to use, copy, modify, merge, publish, distribute, sub license,
9cdc920a0Smrg * and/or sell copies of the Software, and to permit persons to whom the
10cdc920a0Smrg * Software is furnished to do so, subject to the following conditions:
11cdc920a0Smrg *
12cdc920a0Smrg * The above copyright notice and this permission notice (including the next
13cdc920a0Smrg * paragraph) shall be included in all copies or substantial portions of the
14cdc920a0Smrg * Software.
15cdc920a0Smrg *
16cdc920a0Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17cdc920a0Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18cdc920a0Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
19cdc920a0Smrg * IBM,
20cdc920a0Smrg * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21cdc920a0Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
22cdc920a0Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23cdc920a0Smrg * SOFTWARE.
24cdc920a0Smrg */
25cdc920a0Smrg
26cdc920a0Smrg#ifndef INDIRECT_VERTEX_ARRAY_H
27cdc920a0Smrg#define INDIRECT_VERTEX_ARRAY_H
28cdc920a0Smrg
29cdc920a0Smrgextern const GLuint __glXTypeSize_table[16];
30cdc920a0Smrg
31cdc920a0Smrg#define __glXTypeSize(e) ((((e) & ~0x0f) != 0x1400) \
32cdc920a0Smrg    ? 0 : __glXTypeSize_table[ (e) & 0x0f ])
33cdc920a0Smrg
34cdc920a0Smrgextern void __glXArrayDisableAll(__GLXattribute * state);
35cdc920a0Smrg
36cdc920a0Smrgextern GLboolean __glXSetArrayEnable(__GLXattribute * state,
37cdc920a0Smrg                                     GLenum key, unsigned index,
38cdc920a0Smrg                                     GLboolean enable);
39cdc920a0Smrg
40cdc920a0Smrgextern GLboolean __glXGetArrayEnable(const __GLXattribute * const state,
41cdc920a0Smrg                                     GLenum key, unsigned index,
42cdc920a0Smrg                                     GLintptr * dest);
43cdc920a0Smrgextern GLboolean __glXGetArraySize(const __GLXattribute * const state,
44cdc920a0Smrg                                   GLenum key, unsigned index,
45cdc920a0Smrg                                   GLintptr * dest);
46cdc920a0Smrgextern GLboolean __glXGetArrayType(const __GLXattribute * const state,
47cdc920a0Smrg                                   GLenum key, unsigned index,
48cdc920a0Smrg                                   GLintptr * dest);
49cdc920a0Smrgextern GLboolean __glXGetArrayStride(const __GLXattribute * const state,
50cdc920a0Smrg                                     GLenum key, unsigned index,
51cdc920a0Smrg                                     GLintptr * dest);
52cdc920a0Smrgextern GLboolean __glXGetArrayPointer(const __GLXattribute * const state,
53cdc920a0Smrg                                      GLenum key, unsigned index,
54cdc920a0Smrg                                      void **dest);
55cdc920a0Smrgextern GLboolean __glXGetArrayNormalized(const __GLXattribute * const state,
56cdc920a0Smrg                                         GLenum key, unsigned index,
57cdc920a0Smrg                                         GLintptr * dest);
58cdc920a0Smrg
59cdc920a0Smrgextern void __glXPushArrayState(__GLXattribute * state);
60cdc920a0Smrgextern void __glXPopArrayState(__GLXattribute * state);
61cdc920a0Smrg
62cdc920a0Smrgextern GLuint __glXGetActiveTextureUnit(const __GLXattribute * const state);
63cdc920a0Smrg
64cdc920a0Smrg#endif /* INDIRECT_VERTEX_ARRAY_H */
65