2 * Mesa 3-D graphics library
5 * Copyright (C) 1999-2001 Brian Paul All Rights Reserved.
7 * Permission is hereby granted, free of charge, to any person obtaining a
8 * copy of this software and associated documentation files (the "Software"),
9 * to deal in the Software without restriction, including without limitation
10 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
11 * and/or sell copies of the Software, and to permit persons to whom the
12 * Software is furnished to do so, subject to the following conditions:
14 * The above copyright notice and this permission notice shall be included
15 * in all copies or substantial portions of the Software.
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
21 * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 #ifndef API_LOOPBACK_H
28 #define API_LOOPBACK_H
30 #include "main/compiler.h"
31 #include "main/mfeatures.h"
32 #include "main/glheader.h" // ?
33 #include "main/macros.h" // ?
34 #include "main/mtypes.h" // ?
35 #include "glapi/glapi.h" // ?
36 #include "glapi/glthread.h" // ?
37 #include "main/dispatch.h" // ?
38 #include "main/mfeatures.h" // ?
39 #include "main/context.h" // ?
45 _mesa_loopback_init_api_table(const struct gl_context
*ctx
,
46 struct _glapi_table
*dest
);
48 loopback_Color3b_f( GLbyte red
, GLbyte green
, GLbyte blue
);
50 loopback_Color3d_f( GLdouble red
, GLdouble green
, GLdouble blue
);
52 loopback_Color3i_f( GLint red
, GLint green
, GLint blue
);
54 loopback_Color3s_f( GLshort red
, GLshort green
, GLshort blue
);
56 loopback_Color3ui_f( GLuint red
, GLuint green
, GLuint blue
);
58 loopback_Color3us_f( GLushort red
, GLushort green
, GLushort blue
);
60 loopback_Color3ub_f( GLubyte red
, GLubyte green
, GLubyte blue
);
62 loopback_Color3bv_f( const GLbyte
*v
);
64 loopback_Color3dv_f( const GLdouble
*v
);
66 loopback_Color3iv_f( const GLint
*v
);
68 loopback_Color3sv_f( const GLshort
*v
);
70 loopback_Color3uiv_f( const GLuint
*v
);
72 loopback_Color3usv_f( const GLushort
*v
);
74 loopback_Color3ubv_f( const GLubyte
*v
);
76 loopback_Color4b_f( GLbyte red
, GLbyte green
, GLbyte blue
,
79 loopback_Color4d_f( GLdouble red
, GLdouble green
, GLdouble blue
,
82 loopback_Color4i_f( GLint red
, GLint green
, GLint blue
, GLint alpha
);
84 loopback_Color4s_f( GLshort red
, GLshort green
, GLshort blue
,
87 loopback_Color4ui_f( GLuint red
, GLuint green
, GLuint blue
, GLuint alpha
);
89 loopback_Color4us_f( GLushort red
, GLushort green
, GLushort blue
,
92 loopback_Color4ub_f( GLubyte red
, GLubyte green
, GLubyte blue
, GLubyte alpha
);
94 loopback_Color4iv_f( const GLint
*v
);
96 loopback_Color4bv_f( const GLbyte
*v
);
98 loopback_Color4dv_f( const GLdouble
*v
);
100 loopback_Color4sv_f( const GLshort
*v
);
102 loopback_Color4uiv_f( const GLuint
*v
);
104 loopback_Color4usv_f( const GLushort
*v
);
106 loopback_Color4ubv_f( const GLubyte
*v
);
108 loopback_FogCoorddEXT( GLdouble d
);
110 loopback_FogCoorddvEXT( const GLdouble
*v
);
112 loopback_Indexd( GLdouble c
);
114 loopback_Indexi( GLint c
);
116 loopback_Indexs( GLshort c
);
118 loopback_Indexub( GLubyte c
);
120 loopback_Indexdv( const GLdouble
*c
);
122 loopback_Indexiv( const GLint
*c
);
124 loopback_Indexsv( const GLshort
*c
);
126 loopback_Indexubv( const GLubyte
*c
);
128 loopback_EdgeFlagv(const GLboolean
*flag
);
130 loopback_Normal3b( GLbyte nx
, GLbyte ny
, GLbyte nz
);
132 loopback_Normal3d( GLdouble nx
, GLdouble ny
, GLdouble nz
);
134 loopback_Normal3i( GLint nx
, GLint ny
, GLint nz
);
136 loopback_Normal3s( GLshort nx
, GLshort ny
, GLshort nz
);
138 loopback_Normal3bv( const GLbyte
*v
);
140 loopback_Normal3dv( const GLdouble
*v
);
142 loopback_Normal3iv( const GLint
*v
);
144 loopback_Normal3sv( const GLshort
*v
);
146 loopback_TexCoord1d( GLdouble s
);
148 loopback_TexCoord1i( GLint s
);
150 loopback_TexCoord1s( GLshort s
);
152 loopback_TexCoord2d( GLdouble s
, GLdouble t
);
154 loopback_TexCoord2s( GLshort s
, GLshort t
);
156 loopback_TexCoord2i( GLint s
, GLint t
);
158 loopback_TexCoord3d( GLdouble s
, GLdouble t
, GLdouble r
);
160 loopback_TexCoord3i( GLint s
, GLint t
, GLint r
);
162 loopback_TexCoord3s( GLshort s
, GLshort t
, GLshort r
);
164 loopback_TexCoord4d( GLdouble s
, GLdouble t
, GLdouble r
, GLdouble q
);
166 loopback_TexCoord4i( GLint s
, GLint t
, GLint r
, GLint q
);
168 loopback_TexCoord4s( GLshort s
, GLshort t
, GLshort r
, GLshort q
);
170 loopback_TexCoord1dv( const GLdouble
*v
);
172 loopback_TexCoord1iv( const GLint
*v
);
174 loopback_TexCoord1sv( const GLshort
*v
);
176 loopback_TexCoord2dv( const GLdouble
*v
);
178 loopback_TexCoord2iv( const GLint
*v
);
180 loopback_TexCoord2sv( const GLshort
*v
);
182 loopback_TexCoord3dv( const GLdouble
*v
);
184 loopback_TexCoord3iv( const GLint
*v
);
186 loopback_TexCoord3sv( const GLshort
*v
);
188 loopback_TexCoord4dv( const GLdouble
*v
);
190 loopback_TexCoord4iv( const GLint
*v
);
192 loopback_TexCoord4sv( const GLshort
*v
);
194 loopback_Vertex2d( GLdouble x
, GLdouble y
);
196 loopback_Vertex2i( GLint x
, GLint y
);
198 loopback_Vertex2s( GLshort x
, GLshort y
);
200 loopback_Vertex3d( GLdouble x
, GLdouble y
, GLdouble z
);
202 loopback_Vertex3i( GLint x
, GLint y
, GLint z
);
204 loopback_Vertex3s( GLshort x
, GLshort y
, GLshort z
);
206 loopback_Vertex4d( GLdouble x
, GLdouble y
, GLdouble z
, GLdouble w
);
208 loopback_Vertex4i( GLint x
, GLint y
, GLint z
, GLint w
);
210 loopback_Vertex4s( GLshort x
, GLshort y
, GLshort z
, GLshort w
);
212 loopback_Vertex2dv( const GLdouble
*v
);
214 loopback_Vertex2iv( const GLint
*v
);
216 loopback_Vertex2sv( const GLshort
*v
);
218 loopback_Vertex3dv( const GLdouble
*v
);
220 loopback_Vertex3iv( const GLint
*v
);
222 loopback_Vertex3sv( const GLshort
*v
);
224 loopback_Vertex4dv( const GLdouble
*v
);
226 loopback_Vertex4iv( const GLint
*v
);
228 loopback_Vertex4sv( const GLshort
*v
);
230 loopback_MultiTexCoord1dARB(GLenum target
, GLdouble s
);
232 loopback_MultiTexCoord1dvARB(GLenum target
, const GLdouble
*v
);
234 loopback_MultiTexCoord1iARB(GLenum target
, GLint s
);
236 loopback_MultiTexCoord1ivARB(GLenum target
, const GLint
*v
);
238 loopback_MultiTexCoord1sARB(GLenum target
, GLshort s
);
240 loopback_MultiTexCoord1svARB(GLenum target
, const GLshort
*v
);
242 loopback_MultiTexCoord2dARB(GLenum target
, GLdouble s
, GLdouble t
);
244 loopback_MultiTexCoord2dvARB(GLenum target
, const GLdouble
*v
);
246 loopback_MultiTexCoord2iARB(GLenum target
, GLint s
, GLint t
);
248 loopback_MultiTexCoord2ivARB(GLenum target
, const GLint
*v
);
250 loopback_MultiTexCoord2sARB(GLenum target
, GLshort s
, GLshort t
);
252 loopback_MultiTexCoord2svARB(GLenum target
, const GLshort
*v
);
254 loopback_MultiTexCoord3dARB(GLenum target
, GLdouble s
, GLdouble t
, GLdouble r
);
256 loopback_MultiTexCoord3dvARB(GLenum target
, const GLdouble
*v
);
258 loopback_MultiTexCoord3iARB(GLenum target
, GLint s
, GLint t
, GLint r
);
260 loopback_MultiTexCoord3ivARB(GLenum target
, const GLint
*v
);
262 loopback_MultiTexCoord3sARB(GLenum target
, GLshort s
, GLshort t
, GLshort r
);
264 loopback_MultiTexCoord3svARB(GLenum target
, const GLshort
*v
);
266 loopback_MultiTexCoord4dARB(GLenum target
, GLdouble s
, GLdouble t
, GLdouble r
,
269 loopback_MultiTexCoord4dvARB(GLenum target
, const GLdouble
*v
);
271 loopback_MultiTexCoord4iARB(GLenum target
, GLint s
, GLint t
, GLint r
, GLint q
);
273 loopback_MultiTexCoord4ivARB(GLenum target
, const GLint
*v
);
275 loopback_MultiTexCoord4sARB(GLenum target
, GLshort s
, GLshort t
, GLshort r
,
278 loopback_MultiTexCoord4svARB(GLenum target
, const GLshort
*v
);
280 loopback_EvalCoord2dv( const GLdouble
*u
);
282 loopback_EvalCoord2fv( const GLfloat
*u
);
284 loopback_EvalCoord2d( GLdouble u
, GLdouble v
);
286 loopback_EvalCoord1dv( const GLdouble
*u
);
288 loopback_EvalCoord1fv( const GLfloat
*u
);
290 loopback_EvalCoord1d( GLdouble u
);
292 loopback_Materialf( GLenum face
, GLenum pname
, GLfloat param
);
294 loopback_Materiali(GLenum face
, GLenum pname
, GLint param
);
296 loopback_Materialiv(GLenum face
, GLenum pname
, const GLint
*params
);
298 loopback_Rectd(GLdouble x1
, GLdouble y1
, GLdouble x2
, GLdouble y2
);
300 loopback_Rectdv(const GLdouble
*v1
, const GLdouble
*v2
);
302 loopback_Rectfv(const GLfloat
*v1
, const GLfloat
*v2
);
304 loopback_Recti(GLint x1
, GLint y1
, GLint x2
, GLint y2
);
306 loopback_Rectiv(const GLint
*v1
, const GLint
*v2
);
308 loopback_Rects(GLshort x1
, GLshort y1
, GLshort x2
, GLshort y2
);
310 loopback_Rectsv(const GLshort
*v1
, const GLshort
*v2
);
312 loopback_SecondaryColor3bEXT_f( GLbyte red
, GLbyte green
, GLbyte blue
);
314 loopback_SecondaryColor3dEXT_f( GLdouble red
, GLdouble green
, GLdouble blue
);
316 loopback_SecondaryColor3iEXT_f( GLint red
, GLint green
, GLint blue
);
318 loopback_SecondaryColor3sEXT_f( GLshort red
, GLshort green
, GLshort blue
);
320 loopback_SecondaryColor3uiEXT_f( GLuint red
, GLuint green
, GLuint blue
);
322 loopback_SecondaryColor3usEXT_f( GLushort red
, GLushort green
, GLushort blue
);
324 loopback_SecondaryColor3ubEXT_f( GLubyte red
, GLubyte green
, GLubyte blue
);
326 loopback_SecondaryColor3bvEXT_f( const GLbyte
*v
);
328 loopback_SecondaryColor3dvEXT_f( const GLdouble
*v
);
330 loopback_SecondaryColor3ivEXT_f( const GLint
*v
);
332 loopback_SecondaryColor3svEXT_f( const GLshort
*v
);
334 loopback_SecondaryColor3uivEXT_f( const GLuint
*v
);
336 loopback_SecondaryColor3usvEXT_f( const GLushort
*v
);
338 loopback_SecondaryColor3ubvEXT_f( const GLubyte
*v
);
340 loopback_VertexAttrib1sNV(GLuint index
, GLshort x
);
342 loopback_VertexAttrib1dNV(GLuint index
, GLdouble x
);
344 loopback_VertexAttrib2sNV(GLuint index
, GLshort x
, GLshort y
);
346 loopback_VertexAttrib2dNV(GLuint index
, GLdouble x
, GLdouble y
);
348 loopback_VertexAttrib3sNV(GLuint index
, GLshort x
, GLshort y
, GLshort z
);
350 loopback_VertexAttrib3dNV(GLuint index
, GLdouble x
, GLdouble y
, GLdouble z
);
352 loopback_VertexAttrib4sNV(GLuint index
, GLshort x
, GLshort y
, GLshort z
,
355 loopback_VertexAttrib4dNV(GLuint index
, GLdouble x
, GLdouble y
, GLdouble z
,
358 loopback_VertexAttrib4ubNV(GLuint index
, GLubyte x
, GLubyte y
, GLubyte z
,
361 loopback_VertexAttrib1svNV(GLuint index
, const GLshort
*v
);
363 loopback_VertexAttrib1dvNV(GLuint index
, const GLdouble
*v
);
365 loopback_VertexAttrib2svNV(GLuint index
, const GLshort
*v
);
367 loopback_VertexAttrib2dvNV(GLuint index
, const GLdouble
*v
);
369 loopback_VertexAttrib3svNV(GLuint index
, const GLshort
*v
);
371 loopback_VertexAttrib3dvNV(GLuint index
, const GLdouble
*v
);
373 loopback_VertexAttrib4svNV(GLuint index
, const GLshort
*v
);
375 loopback_VertexAttrib4dvNV(GLuint index
, const GLdouble
*v
);
377 loopback_VertexAttrib4ubvNV(GLuint index
, const GLubyte
*v
);
379 loopback_VertexAttribs1svNV(GLuint index
, GLsizei n
, const GLshort
*v
);
381 loopback_VertexAttribs1fvNV(GLuint index
, GLsizei n
, const GLfloat
*v
);
383 loopback_VertexAttribs1dvNV(GLuint index
, GLsizei n
, const GLdouble
*v
);
385 loopback_VertexAttribs2svNV(GLuint index
, GLsizei n
, const GLshort
*v
);
387 loopback_VertexAttribs2fvNV(GLuint index
, GLsizei n
, const GLfloat
*v
);
389 loopback_VertexAttribs2dvNV(GLuint index
, GLsizei n
, const GLdouble
*v
);
391 loopback_VertexAttribs3svNV(GLuint index
, GLsizei n
, const GLshort
*v
);
393 loopback_VertexAttribs3fvNV(GLuint index
, GLsizei n
, const GLfloat
*v
);
395 loopback_VertexAttribs3dvNV(GLuint index
, GLsizei n
, const GLdouble
*v
);
397 loopback_VertexAttribs4svNV(GLuint index
, GLsizei n
, const GLshort
*v
);
399 loopback_VertexAttribs4fvNV(GLuint index
, GLsizei n
, const GLfloat
*v
);
401 loopback_VertexAttribs4dvNV(GLuint index
, GLsizei n
, const GLdouble
*v
);
403 loopback_VertexAttribs4ubvNV(GLuint index
, GLsizei n
, const GLubyte
*v
);
405 loopback_VertexAttrib1sARB(GLuint index
, GLshort x
);
407 loopback_VertexAttrib1dARB(GLuint index
, GLdouble x
);
409 loopback_VertexAttrib2sARB(GLuint index
, GLshort x
, GLshort y
);
411 loopback_VertexAttrib2dARB(GLuint index
, GLdouble x
, GLdouble y
);
413 loopback_VertexAttrib3sARB(GLuint index
, GLshort x
, GLshort y
, GLshort z
);
415 loopback_VertexAttrib3dARB(GLuint index
, GLdouble x
, GLdouble y
, GLdouble z
);
417 loopback_VertexAttrib4sARB(GLuint index
, GLshort x
, GLshort y
, GLshort z
,
420 loopback_VertexAttrib4dARB(GLuint index
, GLdouble x
, GLdouble y
, GLdouble z
,
423 loopback_VertexAttrib1svARB(GLuint index
, const GLshort
*v
);
425 loopback_VertexAttrib1dvARB(GLuint index
, const GLdouble
*v
);
427 loopback_VertexAttrib2svARB(GLuint index
, const GLshort
*v
);
429 loopback_VertexAttrib2dvARB(GLuint index
, const GLdouble
*v
);
431 loopback_VertexAttrib3svARB(GLuint index
, const GLshort
*v
);
433 loopback_VertexAttrib3dvARB(GLuint index
, const GLdouble
*v
);
435 loopback_VertexAttrib4svARB(GLuint index
, const GLshort
*v
);
437 loopback_VertexAttrib4dvARB(GLuint index
, const GLdouble
*v
);
439 loopback_VertexAttrib4bvARB(GLuint index
, const GLbyte
* v
);
441 loopback_VertexAttrib4ivARB(GLuint index
, const GLint
* v
);
443 loopback_VertexAttrib4ubvARB(GLuint index
, const GLubyte
* v
);
445 loopback_VertexAttrib4usvARB(GLuint index
, const GLushort
* v
);
447 loopback_VertexAttrib4uivARB(GLuint index
, const GLuint
* v
);
449 loopback_VertexAttrib4NbvARB(GLuint index
, const GLbyte
* v
);
451 loopback_VertexAttrib4NsvARB(GLuint index
, const GLshort
* v
);
453 loopback_VertexAttrib4NivARB(GLuint index
, const GLint
* v
);
455 loopback_VertexAttrib4NubARB(GLuint index
, GLubyte x
, GLubyte y
, GLubyte z
,
458 loopback_VertexAttrib4NubvARB(GLuint index
, const GLubyte
* v
);
460 loopback_VertexAttrib4NusvARB(GLuint index
, const GLushort
* v
);
462 loopback_VertexAttrib4NuivARB(GLuint index
, const GLuint
* v
);
464 loopback_VertexAttribI1iv(GLuint index
, const GLint
*v
);
466 loopback_VertexAttribI1uiv(GLuint index
, const GLuint
*v
);
468 loopback_VertexAttribI4bv(GLuint index
, const GLbyte
*v
);
470 loopback_VertexAttribI4sv(GLuint index
, const GLshort
*v
);
472 loopback_VertexAttribI4ubv(GLuint index
, const GLubyte
*v
);
474 loopback_VertexAttribI4usv(GLuint index
, const GLushort
*v
);
477 #endif /* API_LOOPBACK_H */