cosmetic changes;
[mesa.git] / src / mesa / array_cache / acache.h
1
2 /*
3 * Mesa 3-D graphics library
4 * Version: 4.1
5 *
6 * Copyright (C) 1999-2002 Brian Paul All Rights Reserved.
7 *
8 * Permission is hereby granted, free of charge, to any person obtaining a
9 * copy of this software and associated documentation files (the "Software"),
10 * to deal in the Software without restriction, including without limitation
11 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12 * and/or sell copies of the Software, and to permit persons to whom the
13 * Software is furnished to do so, subject to the following conditions:
14 *
15 * The above copyright notice and this permission notice shall be included
16 * in all copies or substantial portions of the Software.
17 *
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
21 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
22 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
23 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 *
25 * Authors:
26 * Keith Whitwell <keith@tungstengraphics.com>
27 */
28
29 #ifndef _ARRAYCACHE_H
30 #define _ARRAYCACHE_H
31
32 #include "mtypes.h"
33
34
35 extern GLboolean
36 _ac_CreateContext( GLcontext *ctx );
37
38 extern void
39 _ac_DestroyContext( GLcontext *ctx );
40
41 extern void
42 _ac_InvalidateState( GLcontext *ctx, GLuint new_state );
43
44 extern struct gl_client_array *
45 _ac_import_vertex( GLcontext *ctx,
46 GLenum type,
47 GLuint reqstride,
48 GLuint reqsize,
49 GLboolean reqwritable,
50 GLboolean *writable );
51
52 extern struct gl_client_array *
53 _ac_import_normal( GLcontext *ctx,
54 GLenum type,
55 GLuint reqstride,
56 GLboolean reqwritable,
57 GLboolean *writable );
58
59 extern struct gl_client_array *
60 _ac_import_color( GLcontext *ctx,
61 GLenum type,
62 GLuint reqstride,
63 GLuint reqsize,
64 GLboolean reqwritable,
65 GLboolean *writable );
66
67 extern struct gl_client_array *
68 _ac_import_index( GLcontext *ctx,
69 GLenum type,
70 GLuint reqstride,
71 GLboolean reqwritable,
72 GLboolean *writable );
73
74 extern struct gl_client_array *
75 _ac_import_secondarycolor( GLcontext *ctx,
76 GLenum type,
77 GLuint reqstride,
78 GLuint reqsize,
79 GLboolean reqwritable,
80 GLboolean *writable );
81
82 extern struct gl_client_array *
83 _ac_import_fogcoord( GLcontext *ctx,
84 GLenum type,
85 GLuint reqstride,
86 GLboolean reqwritable,
87 GLboolean *writable );
88
89 extern struct gl_client_array *
90 _ac_import_edgeflag( GLcontext *ctx,
91 GLenum type,
92 GLuint reqstride,
93 GLboolean reqwritable,
94 GLboolean *writable );
95
96 extern struct gl_client_array *
97 _ac_import_texcoord( GLcontext *ctx,
98 GLuint unit,
99 GLenum type,
100 GLuint reqstride,
101 GLuint reqsize,
102 GLboolean reqwritable,
103 GLboolean *writable );
104
105 extern struct gl_client_array *
106 _ac_import_attrib( GLcontext *ctx,
107 GLuint index,
108 GLenum type,
109 GLuint reqstride,
110 GLuint reqsize,
111 GLboolean reqwritable,
112 GLboolean *writable );
113
114
115 /* Clients must call this function to validate state and set bounds
116 * before importing any data:
117 */
118 extern void
119 _ac_import_range( GLcontext *ctx, GLuint start, GLuint count );
120
121
122 /* Additional convenience function:
123 */
124 extern CONST void *
125 _ac_import_elements( GLcontext *ctx,
126 GLenum new_type,
127 GLuint count,
128 GLenum old_type,
129 CONST void *indices );
130
131
132 #endif