1706f2543Smrg/* DO NOT EDIT - This file generated automatically by glX_proto_recv.py (from Mesa) script */
2706f2543Smrg
3706f2543Smrg/*
4706f2543Smrg * (C) Copyright IBM Corporation 2005
5706f2543Smrg * All Rights Reserved.
6706f2543Smrg *
7706f2543Smrg * Permission is hereby granted, free of charge, to any person obtaining a
8706f2543Smrg * copy of this software and associated documentation files (the "Software"),
9706f2543Smrg * to deal in the Software without restriction, including without limitation
10706f2543Smrg * the rights to use, copy, modify, merge, publish, distribute, sub license,
11706f2543Smrg * and/or sell copies of the Software, and to permit persons to whom the
12706f2543Smrg * Software is furnished to do so, subject to the following conditions:
13706f2543Smrg *
14706f2543Smrg * The above copyright notice and this permission notice (including the next
15706f2543Smrg * paragraph) shall be included in all copies or substantial portions of the
16706f2543Smrg * Software.
17706f2543Smrg *
18706f2543Smrg * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19706f2543Smrg * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20706f2543Smrg * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
21706f2543Smrg * IBM,
22706f2543Smrg * AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23706f2543Smrg * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
24706f2543Smrg * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
25706f2543Smrg * SOFTWARE.
26706f2543Smrg */
27706f2543Smrg
28706f2543Smrg#include <X11/Xmd.h>
29706f2543Smrg#include <GL/gl.h>
30706f2543Smrg#include <GL/glxproto.h>
31706f2543Smrg#include <inttypes.h>
32706f2543Smrg#include "indirect_size.h"
33706f2543Smrg#include "indirect_size_get.h"
34706f2543Smrg#include "indirect_dispatch.h"
35706f2543Smrg#include "glxserver.h"
36706f2543Smrg#include "glxbyteorder.h"
37706f2543Smrg#include "indirect_util.h"
38706f2543Smrg#include "singlesize.h"
39706f2543Smrg#include "glapi.h"
40706f2543Smrg#include "glapitable.h"
41706f2543Smrg#include "glthread.h"
42706f2543Smrg#include "dispatch.h"
43706f2543Smrg
44706f2543Smrg#define __GLX_PAD(x)  (((x) + 3) & ~3)
45706f2543Smrg
46706f2543Smrgtypedef struct {
47706f2543Smrg    __GLX_PIXEL_3D_HDR;
48706f2543Smrg} __GLXpixel3DHeader;
49706f2543Smrg
50706f2543Smrgextern GLboolean __glXErrorOccured( void );
51706f2543Smrgextern void __glXClearErrorOccured( void );
52706f2543Smrg
53706f2543Smrgstatic const unsigned dummy_answer[2] = {0, 0};
54706f2543Smrg
55706f2543Smrgint __glXDisp_NewList(__GLXclientState *cl, GLbyte *pc)
56706f2543Smrg{
57706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
58706f2543Smrg    int error;
59706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
60706f2543Smrg
61706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
62706f2543Smrg    if ( cx != NULL ) {
63706f2543Smrg        CALL_NewList( GET_DISPATCH(), (
64706f2543Smrg            *(GLuint   *)(pc +  0),
65706f2543Smrg            *(GLenum   *)(pc +  4)
66706f2543Smrg        ) );
67706f2543Smrg        error = Success;
68706f2543Smrg    }
69706f2543Smrg
70706f2543Smrg    return error;
71706f2543Smrg}
72706f2543Smrg
73706f2543Smrgint __glXDisp_EndList(__GLXclientState *cl, GLbyte *pc)
74706f2543Smrg{
75706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
76706f2543Smrg    int error;
77706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
78706f2543Smrg
79706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
80706f2543Smrg    if ( cx != NULL ) {
81706f2543Smrg        CALL_EndList( GET_DISPATCH(), () );
82706f2543Smrg        error = Success;
83706f2543Smrg    }
84706f2543Smrg
85706f2543Smrg    return error;
86706f2543Smrg}
87706f2543Smrg
88706f2543Smrgvoid __glXDisp_CallList(GLbyte * pc)
89706f2543Smrg{
90706f2543Smrg    CALL_CallList( GET_DISPATCH(), (
91706f2543Smrg        *(GLuint   *)(pc +  0)
92706f2543Smrg    ) );
93706f2543Smrg}
94706f2543Smrg
95706f2543Smrgvoid __glXDisp_CallLists(GLbyte * pc)
96706f2543Smrg{
97706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  0);
98706f2543Smrg    const GLenum type = *(GLenum   *)(pc +  4);
99706f2543Smrg    const GLvoid * lists =  (const GLvoid *)(pc +  8);
100706f2543Smrg
101706f2543Smrg    CALL_CallLists( GET_DISPATCH(), (
102706f2543Smrg        n,
103706f2543Smrg        type,
104706f2543Smrg        lists
105706f2543Smrg    ) );
106706f2543Smrg}
107706f2543Smrg
108706f2543Smrgint __glXDisp_DeleteLists(__GLXclientState *cl, GLbyte *pc)
109706f2543Smrg{
110706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
111706f2543Smrg    int error;
112706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
113706f2543Smrg
114706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
115706f2543Smrg    if ( cx != NULL ) {
116706f2543Smrg        CALL_DeleteLists( GET_DISPATCH(), (
117706f2543Smrg            *(GLuint   *)(pc +  0),
118706f2543Smrg            *(GLsizei  *)(pc +  4)
119706f2543Smrg        ) );
120706f2543Smrg        error = Success;
121706f2543Smrg    }
122706f2543Smrg
123706f2543Smrg    return error;
124706f2543Smrg}
125706f2543Smrg
126706f2543Smrgint __glXDisp_GenLists(__GLXclientState *cl, GLbyte *pc)
127706f2543Smrg{
128706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
129706f2543Smrg    int error;
130706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
131706f2543Smrg
132706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
133706f2543Smrg    if ( cx != NULL ) {
134706f2543Smrg        GLuint retval;
135706f2543Smrg        retval = CALL_GenLists( GET_DISPATCH(), (
136706f2543Smrg            *(GLsizei  *)(pc +  0)
137706f2543Smrg        ) );
138706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
139706f2543Smrg        error = Success;
140706f2543Smrg    }
141706f2543Smrg
142706f2543Smrg    return error;
143706f2543Smrg}
144706f2543Smrg
145706f2543Smrgvoid __glXDisp_ListBase(GLbyte * pc)
146706f2543Smrg{
147706f2543Smrg    CALL_ListBase( GET_DISPATCH(), (
148706f2543Smrg        *(GLuint   *)(pc +  0)
149706f2543Smrg    ) );
150706f2543Smrg}
151706f2543Smrg
152706f2543Smrgvoid __glXDisp_Begin(GLbyte * pc)
153706f2543Smrg{
154706f2543Smrg    CALL_Begin( GET_DISPATCH(), (
155706f2543Smrg        *(GLenum   *)(pc +  0)
156706f2543Smrg    ) );
157706f2543Smrg}
158706f2543Smrg
159706f2543Smrgvoid __glXDisp_Bitmap(GLbyte * pc)
160706f2543Smrg{
161706f2543Smrg    const GLubyte * const bitmap = (const GLubyte *) (pc + 44);
162706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
163706f2543Smrg
164706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
165706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
166706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
167706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
168706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
169706f2543Smrg
170706f2543Smrg    CALL_Bitmap( GET_DISPATCH(), (
171706f2543Smrg        *(GLsizei  *)(pc + 20),
172706f2543Smrg        *(GLsizei  *)(pc + 24),
173706f2543Smrg        *(GLfloat  *)(pc + 28),
174706f2543Smrg        *(GLfloat  *)(pc + 32),
175706f2543Smrg        *(GLfloat  *)(pc + 36),
176706f2543Smrg        *(GLfloat  *)(pc + 40),
177706f2543Smrg        bitmap
178706f2543Smrg    ) );
179706f2543Smrg}
180706f2543Smrg
181706f2543Smrgvoid __glXDisp_Color3bv(GLbyte * pc)
182706f2543Smrg{
183706f2543Smrg    CALL_Color3bv( GET_DISPATCH(), (
184706f2543Smrg         (const GLbyte *)(pc +  0)
185706f2543Smrg    ) );
186706f2543Smrg}
187706f2543Smrg
188706f2543Smrgvoid __glXDisp_Color3dv(GLbyte * pc)
189706f2543Smrg{
190706f2543Smrg#ifdef __GLX_ALIGN64
191706f2543Smrg    if ((unsigned long)(pc) & 7) {
192706f2543Smrg        (void) memmove(pc-4, pc, 24);
193706f2543Smrg        pc -= 4;
194706f2543Smrg    }
195706f2543Smrg#endif
196706f2543Smrg
197706f2543Smrg    CALL_Color3dv( GET_DISPATCH(), (
198706f2543Smrg         (const GLdouble *)(pc +  0)
199706f2543Smrg    ) );
200706f2543Smrg}
201706f2543Smrg
202706f2543Smrgvoid __glXDisp_Color3fv(GLbyte * pc)
203706f2543Smrg{
204706f2543Smrg    CALL_Color3fv( GET_DISPATCH(), (
205706f2543Smrg         (const GLfloat *)(pc +  0)
206706f2543Smrg    ) );
207706f2543Smrg}
208706f2543Smrg
209706f2543Smrgvoid __glXDisp_Color3iv(GLbyte * pc)
210706f2543Smrg{
211706f2543Smrg    CALL_Color3iv( GET_DISPATCH(), (
212706f2543Smrg         (const GLint *)(pc +  0)
213706f2543Smrg    ) );
214706f2543Smrg}
215706f2543Smrg
216706f2543Smrgvoid __glXDisp_Color3sv(GLbyte * pc)
217706f2543Smrg{
218706f2543Smrg    CALL_Color3sv( GET_DISPATCH(), (
219706f2543Smrg         (const GLshort *)(pc +  0)
220706f2543Smrg    ) );
221706f2543Smrg}
222706f2543Smrg
223706f2543Smrgvoid __glXDisp_Color3ubv(GLbyte * pc)
224706f2543Smrg{
225706f2543Smrg    CALL_Color3ubv( GET_DISPATCH(), (
226706f2543Smrg         (const GLubyte *)(pc +  0)
227706f2543Smrg    ) );
228706f2543Smrg}
229706f2543Smrg
230706f2543Smrgvoid __glXDisp_Color3uiv(GLbyte * pc)
231706f2543Smrg{
232706f2543Smrg    CALL_Color3uiv( GET_DISPATCH(), (
233706f2543Smrg         (const GLuint *)(pc +  0)
234706f2543Smrg    ) );
235706f2543Smrg}
236706f2543Smrg
237706f2543Smrgvoid __glXDisp_Color3usv(GLbyte * pc)
238706f2543Smrg{
239706f2543Smrg    CALL_Color3usv( GET_DISPATCH(), (
240706f2543Smrg         (const GLushort *)(pc +  0)
241706f2543Smrg    ) );
242706f2543Smrg}
243706f2543Smrg
244706f2543Smrgvoid __glXDisp_Color4bv(GLbyte * pc)
245706f2543Smrg{
246706f2543Smrg    CALL_Color4bv( GET_DISPATCH(), (
247706f2543Smrg         (const GLbyte *)(pc +  0)
248706f2543Smrg    ) );
249706f2543Smrg}
250706f2543Smrg
251706f2543Smrgvoid __glXDisp_Color4dv(GLbyte * pc)
252706f2543Smrg{
253706f2543Smrg#ifdef __GLX_ALIGN64
254706f2543Smrg    if ((unsigned long)(pc) & 7) {
255706f2543Smrg        (void) memmove(pc-4, pc, 32);
256706f2543Smrg        pc -= 4;
257706f2543Smrg    }
258706f2543Smrg#endif
259706f2543Smrg
260706f2543Smrg    CALL_Color4dv( GET_DISPATCH(), (
261706f2543Smrg         (const GLdouble *)(pc +  0)
262706f2543Smrg    ) );
263706f2543Smrg}
264706f2543Smrg
265706f2543Smrgvoid __glXDisp_Color4fv(GLbyte * pc)
266706f2543Smrg{
267706f2543Smrg    CALL_Color4fv( GET_DISPATCH(), (
268706f2543Smrg         (const GLfloat *)(pc +  0)
269706f2543Smrg    ) );
270706f2543Smrg}
271706f2543Smrg
272706f2543Smrgvoid __glXDisp_Color4iv(GLbyte * pc)
273706f2543Smrg{
274706f2543Smrg    CALL_Color4iv( GET_DISPATCH(), (
275706f2543Smrg         (const GLint *)(pc +  0)
276706f2543Smrg    ) );
277706f2543Smrg}
278706f2543Smrg
279706f2543Smrgvoid __glXDisp_Color4sv(GLbyte * pc)
280706f2543Smrg{
281706f2543Smrg    CALL_Color4sv( GET_DISPATCH(), (
282706f2543Smrg         (const GLshort *)(pc +  0)
283706f2543Smrg    ) );
284706f2543Smrg}
285706f2543Smrg
286706f2543Smrgvoid __glXDisp_Color4ubv(GLbyte * pc)
287706f2543Smrg{
288706f2543Smrg    CALL_Color4ubv( GET_DISPATCH(), (
289706f2543Smrg         (const GLubyte *)(pc +  0)
290706f2543Smrg    ) );
291706f2543Smrg}
292706f2543Smrg
293706f2543Smrgvoid __glXDisp_Color4uiv(GLbyte * pc)
294706f2543Smrg{
295706f2543Smrg    CALL_Color4uiv( GET_DISPATCH(), (
296706f2543Smrg         (const GLuint *)(pc +  0)
297706f2543Smrg    ) );
298706f2543Smrg}
299706f2543Smrg
300706f2543Smrgvoid __glXDisp_Color4usv(GLbyte * pc)
301706f2543Smrg{
302706f2543Smrg    CALL_Color4usv( GET_DISPATCH(), (
303706f2543Smrg         (const GLushort *)(pc +  0)
304706f2543Smrg    ) );
305706f2543Smrg}
306706f2543Smrg
307706f2543Smrgvoid __glXDisp_EdgeFlagv(GLbyte * pc)
308706f2543Smrg{
309706f2543Smrg    CALL_EdgeFlagv( GET_DISPATCH(), (
310706f2543Smrg         (const GLboolean *)(pc +  0)
311706f2543Smrg    ) );
312706f2543Smrg}
313706f2543Smrg
314706f2543Smrgvoid __glXDisp_End(GLbyte * pc)
315706f2543Smrg{
316706f2543Smrg    CALL_End( GET_DISPATCH(), () );
317706f2543Smrg}
318706f2543Smrg
319706f2543Smrgvoid __glXDisp_Indexdv(GLbyte * pc)
320706f2543Smrg{
321706f2543Smrg#ifdef __GLX_ALIGN64
322706f2543Smrg    if ((unsigned long)(pc) & 7) {
323706f2543Smrg        (void) memmove(pc-4, pc, 8);
324706f2543Smrg        pc -= 4;
325706f2543Smrg    }
326706f2543Smrg#endif
327706f2543Smrg
328706f2543Smrg    CALL_Indexdv( GET_DISPATCH(), (
329706f2543Smrg         (const GLdouble *)(pc +  0)
330706f2543Smrg    ) );
331706f2543Smrg}
332706f2543Smrg
333706f2543Smrgvoid __glXDisp_Indexfv(GLbyte * pc)
334706f2543Smrg{
335706f2543Smrg    CALL_Indexfv( GET_DISPATCH(), (
336706f2543Smrg         (const GLfloat *)(pc +  0)
337706f2543Smrg    ) );
338706f2543Smrg}
339706f2543Smrg
340706f2543Smrgvoid __glXDisp_Indexiv(GLbyte * pc)
341706f2543Smrg{
342706f2543Smrg    CALL_Indexiv( GET_DISPATCH(), (
343706f2543Smrg         (const GLint *)(pc +  0)
344706f2543Smrg    ) );
345706f2543Smrg}
346706f2543Smrg
347706f2543Smrgvoid __glXDisp_Indexsv(GLbyte * pc)
348706f2543Smrg{
349706f2543Smrg    CALL_Indexsv( GET_DISPATCH(), (
350706f2543Smrg         (const GLshort *)(pc +  0)
351706f2543Smrg    ) );
352706f2543Smrg}
353706f2543Smrg
354706f2543Smrgvoid __glXDisp_Normal3bv(GLbyte * pc)
355706f2543Smrg{
356706f2543Smrg    CALL_Normal3bv( GET_DISPATCH(), (
357706f2543Smrg         (const GLbyte *)(pc +  0)
358706f2543Smrg    ) );
359706f2543Smrg}
360706f2543Smrg
361706f2543Smrgvoid __glXDisp_Normal3dv(GLbyte * pc)
362706f2543Smrg{
363706f2543Smrg#ifdef __GLX_ALIGN64
364706f2543Smrg    if ((unsigned long)(pc) & 7) {
365706f2543Smrg        (void) memmove(pc-4, pc, 24);
366706f2543Smrg        pc -= 4;
367706f2543Smrg    }
368706f2543Smrg#endif
369706f2543Smrg
370706f2543Smrg    CALL_Normal3dv( GET_DISPATCH(), (
371706f2543Smrg         (const GLdouble *)(pc +  0)
372706f2543Smrg    ) );
373706f2543Smrg}
374706f2543Smrg
375706f2543Smrgvoid __glXDisp_Normal3fv(GLbyte * pc)
376706f2543Smrg{
377706f2543Smrg    CALL_Normal3fv( GET_DISPATCH(), (
378706f2543Smrg         (const GLfloat *)(pc +  0)
379706f2543Smrg    ) );
380706f2543Smrg}
381706f2543Smrg
382706f2543Smrgvoid __glXDisp_Normal3iv(GLbyte * pc)
383706f2543Smrg{
384706f2543Smrg    CALL_Normal3iv( GET_DISPATCH(), (
385706f2543Smrg         (const GLint *)(pc +  0)
386706f2543Smrg    ) );
387706f2543Smrg}
388706f2543Smrg
389706f2543Smrgvoid __glXDisp_Normal3sv(GLbyte * pc)
390706f2543Smrg{
391706f2543Smrg    CALL_Normal3sv( GET_DISPATCH(), (
392706f2543Smrg         (const GLshort *)(pc +  0)
393706f2543Smrg    ) );
394706f2543Smrg}
395706f2543Smrg
396706f2543Smrgvoid __glXDisp_RasterPos2dv(GLbyte * pc)
397706f2543Smrg{
398706f2543Smrg#ifdef __GLX_ALIGN64
399706f2543Smrg    if ((unsigned long)(pc) & 7) {
400706f2543Smrg        (void) memmove(pc-4, pc, 16);
401706f2543Smrg        pc -= 4;
402706f2543Smrg    }
403706f2543Smrg#endif
404706f2543Smrg
405706f2543Smrg    CALL_RasterPos2dv( GET_DISPATCH(), (
406706f2543Smrg         (const GLdouble *)(pc +  0)
407706f2543Smrg    ) );
408706f2543Smrg}
409706f2543Smrg
410706f2543Smrgvoid __glXDisp_RasterPos2fv(GLbyte * pc)
411706f2543Smrg{
412706f2543Smrg    CALL_RasterPos2fv( GET_DISPATCH(), (
413706f2543Smrg         (const GLfloat *)(pc +  0)
414706f2543Smrg    ) );
415706f2543Smrg}
416706f2543Smrg
417706f2543Smrgvoid __glXDisp_RasterPos2iv(GLbyte * pc)
418706f2543Smrg{
419706f2543Smrg    CALL_RasterPos2iv( GET_DISPATCH(), (
420706f2543Smrg         (const GLint *)(pc +  0)
421706f2543Smrg    ) );
422706f2543Smrg}
423706f2543Smrg
424706f2543Smrgvoid __glXDisp_RasterPos2sv(GLbyte * pc)
425706f2543Smrg{
426706f2543Smrg    CALL_RasterPos2sv( GET_DISPATCH(), (
427706f2543Smrg         (const GLshort *)(pc +  0)
428706f2543Smrg    ) );
429706f2543Smrg}
430706f2543Smrg
431706f2543Smrgvoid __glXDisp_RasterPos3dv(GLbyte * pc)
432706f2543Smrg{
433706f2543Smrg#ifdef __GLX_ALIGN64
434706f2543Smrg    if ((unsigned long)(pc) & 7) {
435706f2543Smrg        (void) memmove(pc-4, pc, 24);
436706f2543Smrg        pc -= 4;
437706f2543Smrg    }
438706f2543Smrg#endif
439706f2543Smrg
440706f2543Smrg    CALL_RasterPos3dv( GET_DISPATCH(), (
441706f2543Smrg         (const GLdouble *)(pc +  0)
442706f2543Smrg    ) );
443706f2543Smrg}
444706f2543Smrg
445706f2543Smrgvoid __glXDisp_RasterPos3fv(GLbyte * pc)
446706f2543Smrg{
447706f2543Smrg    CALL_RasterPos3fv( GET_DISPATCH(), (
448706f2543Smrg         (const GLfloat *)(pc +  0)
449706f2543Smrg    ) );
450706f2543Smrg}
451706f2543Smrg
452706f2543Smrgvoid __glXDisp_RasterPos3iv(GLbyte * pc)
453706f2543Smrg{
454706f2543Smrg    CALL_RasterPos3iv( GET_DISPATCH(), (
455706f2543Smrg         (const GLint *)(pc +  0)
456706f2543Smrg    ) );
457706f2543Smrg}
458706f2543Smrg
459706f2543Smrgvoid __glXDisp_RasterPos3sv(GLbyte * pc)
460706f2543Smrg{
461706f2543Smrg    CALL_RasterPos3sv( GET_DISPATCH(), (
462706f2543Smrg         (const GLshort *)(pc +  0)
463706f2543Smrg    ) );
464706f2543Smrg}
465706f2543Smrg
466706f2543Smrgvoid __glXDisp_RasterPos4dv(GLbyte * pc)
467706f2543Smrg{
468706f2543Smrg#ifdef __GLX_ALIGN64
469706f2543Smrg    if ((unsigned long)(pc) & 7) {
470706f2543Smrg        (void) memmove(pc-4, pc, 32);
471706f2543Smrg        pc -= 4;
472706f2543Smrg    }
473706f2543Smrg#endif
474706f2543Smrg
475706f2543Smrg    CALL_RasterPos4dv( GET_DISPATCH(), (
476706f2543Smrg         (const GLdouble *)(pc +  0)
477706f2543Smrg    ) );
478706f2543Smrg}
479706f2543Smrg
480706f2543Smrgvoid __glXDisp_RasterPos4fv(GLbyte * pc)
481706f2543Smrg{
482706f2543Smrg    CALL_RasterPos4fv( GET_DISPATCH(), (
483706f2543Smrg         (const GLfloat *)(pc +  0)
484706f2543Smrg    ) );
485706f2543Smrg}
486706f2543Smrg
487706f2543Smrgvoid __glXDisp_RasterPos4iv(GLbyte * pc)
488706f2543Smrg{
489706f2543Smrg    CALL_RasterPos4iv( GET_DISPATCH(), (
490706f2543Smrg         (const GLint *)(pc +  0)
491706f2543Smrg    ) );
492706f2543Smrg}
493706f2543Smrg
494706f2543Smrgvoid __glXDisp_RasterPos4sv(GLbyte * pc)
495706f2543Smrg{
496706f2543Smrg    CALL_RasterPos4sv( GET_DISPATCH(), (
497706f2543Smrg         (const GLshort *)(pc +  0)
498706f2543Smrg    ) );
499706f2543Smrg}
500706f2543Smrg
501706f2543Smrgvoid __glXDisp_Rectdv(GLbyte * pc)
502706f2543Smrg{
503706f2543Smrg#ifdef __GLX_ALIGN64
504706f2543Smrg    if ((unsigned long)(pc) & 7) {
505706f2543Smrg        (void) memmove(pc-4, pc, 32);
506706f2543Smrg        pc -= 4;
507706f2543Smrg    }
508706f2543Smrg#endif
509706f2543Smrg
510706f2543Smrg    CALL_Rectdv( GET_DISPATCH(), (
511706f2543Smrg         (const GLdouble *)(pc +  0),
512706f2543Smrg         (const GLdouble *)(pc + 16)
513706f2543Smrg    ) );
514706f2543Smrg}
515706f2543Smrg
516706f2543Smrgvoid __glXDisp_Rectfv(GLbyte * pc)
517706f2543Smrg{
518706f2543Smrg    CALL_Rectfv( GET_DISPATCH(), (
519706f2543Smrg         (const GLfloat *)(pc +  0),
520706f2543Smrg         (const GLfloat *)(pc +  8)
521706f2543Smrg    ) );
522706f2543Smrg}
523706f2543Smrg
524706f2543Smrgvoid __glXDisp_Rectiv(GLbyte * pc)
525706f2543Smrg{
526706f2543Smrg    CALL_Rectiv( GET_DISPATCH(), (
527706f2543Smrg         (const GLint *)(pc +  0),
528706f2543Smrg         (const GLint *)(pc +  8)
529706f2543Smrg    ) );
530706f2543Smrg}
531706f2543Smrg
532706f2543Smrgvoid __glXDisp_Rectsv(GLbyte * pc)
533706f2543Smrg{
534706f2543Smrg    CALL_Rectsv( GET_DISPATCH(), (
535706f2543Smrg         (const GLshort *)(pc +  0),
536706f2543Smrg         (const GLshort *)(pc +  4)
537706f2543Smrg    ) );
538706f2543Smrg}
539706f2543Smrg
540706f2543Smrgvoid __glXDisp_TexCoord1dv(GLbyte * pc)
541706f2543Smrg{
542706f2543Smrg#ifdef __GLX_ALIGN64
543706f2543Smrg    if ((unsigned long)(pc) & 7) {
544706f2543Smrg        (void) memmove(pc-4, pc, 8);
545706f2543Smrg        pc -= 4;
546706f2543Smrg    }
547706f2543Smrg#endif
548706f2543Smrg
549706f2543Smrg    CALL_TexCoord1dv( GET_DISPATCH(), (
550706f2543Smrg         (const GLdouble *)(pc +  0)
551706f2543Smrg    ) );
552706f2543Smrg}
553706f2543Smrg
554706f2543Smrgvoid __glXDisp_TexCoord1fv(GLbyte * pc)
555706f2543Smrg{
556706f2543Smrg    CALL_TexCoord1fv( GET_DISPATCH(), (
557706f2543Smrg         (const GLfloat *)(pc +  0)
558706f2543Smrg    ) );
559706f2543Smrg}
560706f2543Smrg
561706f2543Smrgvoid __glXDisp_TexCoord1iv(GLbyte * pc)
562706f2543Smrg{
563706f2543Smrg    CALL_TexCoord1iv( GET_DISPATCH(), (
564706f2543Smrg         (const GLint *)(pc +  0)
565706f2543Smrg    ) );
566706f2543Smrg}
567706f2543Smrg
568706f2543Smrgvoid __glXDisp_TexCoord1sv(GLbyte * pc)
569706f2543Smrg{
570706f2543Smrg    CALL_TexCoord1sv( GET_DISPATCH(), (
571706f2543Smrg         (const GLshort *)(pc +  0)
572706f2543Smrg    ) );
573706f2543Smrg}
574706f2543Smrg
575706f2543Smrgvoid __glXDisp_TexCoord2dv(GLbyte * pc)
576706f2543Smrg{
577706f2543Smrg#ifdef __GLX_ALIGN64
578706f2543Smrg    if ((unsigned long)(pc) & 7) {
579706f2543Smrg        (void) memmove(pc-4, pc, 16);
580706f2543Smrg        pc -= 4;
581706f2543Smrg    }
582706f2543Smrg#endif
583706f2543Smrg
584706f2543Smrg    CALL_TexCoord2dv( GET_DISPATCH(), (
585706f2543Smrg         (const GLdouble *)(pc +  0)
586706f2543Smrg    ) );
587706f2543Smrg}
588706f2543Smrg
589706f2543Smrgvoid __glXDisp_TexCoord2fv(GLbyte * pc)
590706f2543Smrg{
591706f2543Smrg    CALL_TexCoord2fv( GET_DISPATCH(), (
592706f2543Smrg         (const GLfloat *)(pc +  0)
593706f2543Smrg    ) );
594706f2543Smrg}
595706f2543Smrg
596706f2543Smrgvoid __glXDisp_TexCoord2iv(GLbyte * pc)
597706f2543Smrg{
598706f2543Smrg    CALL_TexCoord2iv( GET_DISPATCH(), (
599706f2543Smrg         (const GLint *)(pc +  0)
600706f2543Smrg    ) );
601706f2543Smrg}
602706f2543Smrg
603706f2543Smrgvoid __glXDisp_TexCoord2sv(GLbyte * pc)
604706f2543Smrg{
605706f2543Smrg    CALL_TexCoord2sv( GET_DISPATCH(), (
606706f2543Smrg         (const GLshort *)(pc +  0)
607706f2543Smrg    ) );
608706f2543Smrg}
609706f2543Smrg
610706f2543Smrgvoid __glXDisp_TexCoord3dv(GLbyte * pc)
611706f2543Smrg{
612706f2543Smrg#ifdef __GLX_ALIGN64
613706f2543Smrg    if ((unsigned long)(pc) & 7) {
614706f2543Smrg        (void) memmove(pc-4, pc, 24);
615706f2543Smrg        pc -= 4;
616706f2543Smrg    }
617706f2543Smrg#endif
618706f2543Smrg
619706f2543Smrg    CALL_TexCoord3dv( GET_DISPATCH(), (
620706f2543Smrg         (const GLdouble *)(pc +  0)
621706f2543Smrg    ) );
622706f2543Smrg}
623706f2543Smrg
624706f2543Smrgvoid __glXDisp_TexCoord3fv(GLbyte * pc)
625706f2543Smrg{
626706f2543Smrg    CALL_TexCoord3fv( GET_DISPATCH(), (
627706f2543Smrg         (const GLfloat *)(pc +  0)
628706f2543Smrg    ) );
629706f2543Smrg}
630706f2543Smrg
631706f2543Smrgvoid __glXDisp_TexCoord3iv(GLbyte * pc)
632706f2543Smrg{
633706f2543Smrg    CALL_TexCoord3iv( GET_DISPATCH(), (
634706f2543Smrg         (const GLint *)(pc +  0)
635706f2543Smrg    ) );
636706f2543Smrg}
637706f2543Smrg
638706f2543Smrgvoid __glXDisp_TexCoord3sv(GLbyte * pc)
639706f2543Smrg{
640706f2543Smrg    CALL_TexCoord3sv( GET_DISPATCH(), (
641706f2543Smrg         (const GLshort *)(pc +  0)
642706f2543Smrg    ) );
643706f2543Smrg}
644706f2543Smrg
645706f2543Smrgvoid __glXDisp_TexCoord4dv(GLbyte * pc)
646706f2543Smrg{
647706f2543Smrg#ifdef __GLX_ALIGN64
648706f2543Smrg    if ((unsigned long)(pc) & 7) {
649706f2543Smrg        (void) memmove(pc-4, pc, 32);
650706f2543Smrg        pc -= 4;
651706f2543Smrg    }
652706f2543Smrg#endif
653706f2543Smrg
654706f2543Smrg    CALL_TexCoord4dv( GET_DISPATCH(), (
655706f2543Smrg         (const GLdouble *)(pc +  0)
656706f2543Smrg    ) );
657706f2543Smrg}
658706f2543Smrg
659706f2543Smrgvoid __glXDisp_TexCoord4fv(GLbyte * pc)
660706f2543Smrg{
661706f2543Smrg    CALL_TexCoord4fv( GET_DISPATCH(), (
662706f2543Smrg         (const GLfloat *)(pc +  0)
663706f2543Smrg    ) );
664706f2543Smrg}
665706f2543Smrg
666706f2543Smrgvoid __glXDisp_TexCoord4iv(GLbyte * pc)
667706f2543Smrg{
668706f2543Smrg    CALL_TexCoord4iv( GET_DISPATCH(), (
669706f2543Smrg         (const GLint *)(pc +  0)
670706f2543Smrg    ) );
671706f2543Smrg}
672706f2543Smrg
673706f2543Smrgvoid __glXDisp_TexCoord4sv(GLbyte * pc)
674706f2543Smrg{
675706f2543Smrg    CALL_TexCoord4sv( GET_DISPATCH(), (
676706f2543Smrg         (const GLshort *)(pc +  0)
677706f2543Smrg    ) );
678706f2543Smrg}
679706f2543Smrg
680706f2543Smrgvoid __glXDisp_Vertex2dv(GLbyte * pc)
681706f2543Smrg{
682706f2543Smrg#ifdef __GLX_ALIGN64
683706f2543Smrg    if ((unsigned long)(pc) & 7) {
684706f2543Smrg        (void) memmove(pc-4, pc, 16);
685706f2543Smrg        pc -= 4;
686706f2543Smrg    }
687706f2543Smrg#endif
688706f2543Smrg
689706f2543Smrg    CALL_Vertex2dv( GET_DISPATCH(), (
690706f2543Smrg         (const GLdouble *)(pc +  0)
691706f2543Smrg    ) );
692706f2543Smrg}
693706f2543Smrg
694706f2543Smrgvoid __glXDisp_Vertex2fv(GLbyte * pc)
695706f2543Smrg{
696706f2543Smrg    CALL_Vertex2fv( GET_DISPATCH(), (
697706f2543Smrg         (const GLfloat *)(pc +  0)
698706f2543Smrg    ) );
699706f2543Smrg}
700706f2543Smrg
701706f2543Smrgvoid __glXDisp_Vertex2iv(GLbyte * pc)
702706f2543Smrg{
703706f2543Smrg    CALL_Vertex2iv( GET_DISPATCH(), (
704706f2543Smrg         (const GLint *)(pc +  0)
705706f2543Smrg    ) );
706706f2543Smrg}
707706f2543Smrg
708706f2543Smrgvoid __glXDisp_Vertex2sv(GLbyte * pc)
709706f2543Smrg{
710706f2543Smrg    CALL_Vertex2sv( GET_DISPATCH(), (
711706f2543Smrg         (const GLshort *)(pc +  0)
712706f2543Smrg    ) );
713706f2543Smrg}
714706f2543Smrg
715706f2543Smrgvoid __glXDisp_Vertex3dv(GLbyte * pc)
716706f2543Smrg{
717706f2543Smrg#ifdef __GLX_ALIGN64
718706f2543Smrg    if ((unsigned long)(pc) & 7) {
719706f2543Smrg        (void) memmove(pc-4, pc, 24);
720706f2543Smrg        pc -= 4;
721706f2543Smrg    }
722706f2543Smrg#endif
723706f2543Smrg
724706f2543Smrg    CALL_Vertex3dv( GET_DISPATCH(), (
725706f2543Smrg         (const GLdouble *)(pc +  0)
726706f2543Smrg    ) );
727706f2543Smrg}
728706f2543Smrg
729706f2543Smrgvoid __glXDisp_Vertex3fv(GLbyte * pc)
730706f2543Smrg{
731706f2543Smrg    CALL_Vertex3fv( GET_DISPATCH(), (
732706f2543Smrg         (const GLfloat *)(pc +  0)
733706f2543Smrg    ) );
734706f2543Smrg}
735706f2543Smrg
736706f2543Smrgvoid __glXDisp_Vertex3iv(GLbyte * pc)
737706f2543Smrg{
738706f2543Smrg    CALL_Vertex3iv( GET_DISPATCH(), (
739706f2543Smrg         (const GLint *)(pc +  0)
740706f2543Smrg    ) );
741706f2543Smrg}
742706f2543Smrg
743706f2543Smrgvoid __glXDisp_Vertex3sv(GLbyte * pc)
744706f2543Smrg{
745706f2543Smrg    CALL_Vertex3sv( GET_DISPATCH(), (
746706f2543Smrg         (const GLshort *)(pc +  0)
747706f2543Smrg    ) );
748706f2543Smrg}
749706f2543Smrg
750706f2543Smrgvoid __glXDisp_Vertex4dv(GLbyte * pc)
751706f2543Smrg{
752706f2543Smrg#ifdef __GLX_ALIGN64
753706f2543Smrg    if ((unsigned long)(pc) & 7) {
754706f2543Smrg        (void) memmove(pc-4, pc, 32);
755706f2543Smrg        pc -= 4;
756706f2543Smrg    }
757706f2543Smrg#endif
758706f2543Smrg
759706f2543Smrg    CALL_Vertex4dv( GET_DISPATCH(), (
760706f2543Smrg         (const GLdouble *)(pc +  0)
761706f2543Smrg    ) );
762706f2543Smrg}
763706f2543Smrg
764706f2543Smrgvoid __glXDisp_Vertex4fv(GLbyte * pc)
765706f2543Smrg{
766706f2543Smrg    CALL_Vertex4fv( GET_DISPATCH(), (
767706f2543Smrg         (const GLfloat *)(pc +  0)
768706f2543Smrg    ) );
769706f2543Smrg}
770706f2543Smrg
771706f2543Smrgvoid __glXDisp_Vertex4iv(GLbyte * pc)
772706f2543Smrg{
773706f2543Smrg    CALL_Vertex4iv( GET_DISPATCH(), (
774706f2543Smrg         (const GLint *)(pc +  0)
775706f2543Smrg    ) );
776706f2543Smrg}
777706f2543Smrg
778706f2543Smrgvoid __glXDisp_Vertex4sv(GLbyte * pc)
779706f2543Smrg{
780706f2543Smrg    CALL_Vertex4sv( GET_DISPATCH(), (
781706f2543Smrg         (const GLshort *)(pc +  0)
782706f2543Smrg    ) );
783706f2543Smrg}
784706f2543Smrg
785706f2543Smrgvoid __glXDisp_ClipPlane(GLbyte * pc)
786706f2543Smrg{
787706f2543Smrg#ifdef __GLX_ALIGN64
788706f2543Smrg    if ((unsigned long)(pc) & 7) {
789706f2543Smrg        (void) memmove(pc-4, pc, 36);
790706f2543Smrg        pc -= 4;
791706f2543Smrg    }
792706f2543Smrg#endif
793706f2543Smrg
794706f2543Smrg    CALL_ClipPlane( GET_DISPATCH(), (
795706f2543Smrg        *(GLenum   *)(pc + 32),
796706f2543Smrg         (const GLdouble *)(pc +  0)
797706f2543Smrg    ) );
798706f2543Smrg}
799706f2543Smrg
800706f2543Smrgvoid __glXDisp_ColorMaterial(GLbyte * pc)
801706f2543Smrg{
802706f2543Smrg    CALL_ColorMaterial( GET_DISPATCH(), (
803706f2543Smrg        *(GLenum   *)(pc +  0),
804706f2543Smrg        *(GLenum   *)(pc +  4)
805706f2543Smrg    ) );
806706f2543Smrg}
807706f2543Smrg
808706f2543Smrgvoid __glXDisp_CullFace(GLbyte * pc)
809706f2543Smrg{
810706f2543Smrg    CALL_CullFace( GET_DISPATCH(), (
811706f2543Smrg        *(GLenum   *)(pc +  0)
812706f2543Smrg    ) );
813706f2543Smrg}
814706f2543Smrg
815706f2543Smrgvoid __glXDisp_Fogf(GLbyte * pc)
816706f2543Smrg{
817706f2543Smrg    CALL_Fogf( GET_DISPATCH(), (
818706f2543Smrg        *(GLenum   *)(pc +  0),
819706f2543Smrg        *(GLfloat  *)(pc +  4)
820706f2543Smrg    ) );
821706f2543Smrg}
822706f2543Smrg
823706f2543Smrgvoid __glXDisp_Fogfv(GLbyte * pc)
824706f2543Smrg{
825706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  0);
826706f2543Smrg    const GLfloat * params;
827706f2543Smrg
828706f2543Smrg    params = (const GLfloat *) (pc + 4);
829706f2543Smrg
830706f2543Smrg    CALL_Fogfv( GET_DISPATCH(), (
831706f2543Smrg        pname,
832706f2543Smrg        params
833706f2543Smrg    ) );
834706f2543Smrg}
835706f2543Smrg
836706f2543Smrgvoid __glXDisp_Fogi(GLbyte * pc)
837706f2543Smrg{
838706f2543Smrg    CALL_Fogi( GET_DISPATCH(), (
839706f2543Smrg        *(GLenum   *)(pc +  0),
840706f2543Smrg        *(GLint    *)(pc +  4)
841706f2543Smrg    ) );
842706f2543Smrg}
843706f2543Smrg
844706f2543Smrgvoid __glXDisp_Fogiv(GLbyte * pc)
845706f2543Smrg{
846706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  0);
847706f2543Smrg    const GLint * params;
848706f2543Smrg
849706f2543Smrg    params = (const GLint *) (pc + 4);
850706f2543Smrg
851706f2543Smrg    CALL_Fogiv( GET_DISPATCH(), (
852706f2543Smrg        pname,
853706f2543Smrg        params
854706f2543Smrg    ) );
855706f2543Smrg}
856706f2543Smrg
857706f2543Smrgvoid __glXDisp_FrontFace(GLbyte * pc)
858706f2543Smrg{
859706f2543Smrg    CALL_FrontFace( GET_DISPATCH(), (
860706f2543Smrg        *(GLenum   *)(pc +  0)
861706f2543Smrg    ) );
862706f2543Smrg}
863706f2543Smrg
864706f2543Smrgvoid __glXDisp_Hint(GLbyte * pc)
865706f2543Smrg{
866706f2543Smrg    CALL_Hint( GET_DISPATCH(), (
867706f2543Smrg        *(GLenum   *)(pc +  0),
868706f2543Smrg        *(GLenum   *)(pc +  4)
869706f2543Smrg    ) );
870706f2543Smrg}
871706f2543Smrg
872706f2543Smrgvoid __glXDisp_Lightf(GLbyte * pc)
873706f2543Smrg{
874706f2543Smrg    CALL_Lightf( GET_DISPATCH(), (
875706f2543Smrg        *(GLenum   *)(pc +  0),
876706f2543Smrg        *(GLenum   *)(pc +  4),
877706f2543Smrg        *(GLfloat  *)(pc +  8)
878706f2543Smrg    ) );
879706f2543Smrg}
880706f2543Smrg
881706f2543Smrgvoid __glXDisp_Lightfv(GLbyte * pc)
882706f2543Smrg{
883706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
884706f2543Smrg    const GLfloat * params;
885706f2543Smrg
886706f2543Smrg    params = (const GLfloat *) (pc + 8);
887706f2543Smrg
888706f2543Smrg    CALL_Lightfv( GET_DISPATCH(), (
889706f2543Smrg        *(GLenum   *)(pc +  0),
890706f2543Smrg        pname,
891706f2543Smrg        params
892706f2543Smrg    ) );
893706f2543Smrg}
894706f2543Smrg
895706f2543Smrgvoid __glXDisp_Lighti(GLbyte * pc)
896706f2543Smrg{
897706f2543Smrg    CALL_Lighti( GET_DISPATCH(), (
898706f2543Smrg        *(GLenum   *)(pc +  0),
899706f2543Smrg        *(GLenum   *)(pc +  4),
900706f2543Smrg        *(GLint    *)(pc +  8)
901706f2543Smrg    ) );
902706f2543Smrg}
903706f2543Smrg
904706f2543Smrgvoid __glXDisp_Lightiv(GLbyte * pc)
905706f2543Smrg{
906706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
907706f2543Smrg    const GLint * params;
908706f2543Smrg
909706f2543Smrg    params = (const GLint *) (pc + 8);
910706f2543Smrg
911706f2543Smrg    CALL_Lightiv( GET_DISPATCH(), (
912706f2543Smrg        *(GLenum   *)(pc +  0),
913706f2543Smrg        pname,
914706f2543Smrg        params
915706f2543Smrg    ) );
916706f2543Smrg}
917706f2543Smrg
918706f2543Smrgvoid __glXDisp_LightModelf(GLbyte * pc)
919706f2543Smrg{
920706f2543Smrg    CALL_LightModelf( GET_DISPATCH(), (
921706f2543Smrg        *(GLenum   *)(pc +  0),
922706f2543Smrg        *(GLfloat  *)(pc +  4)
923706f2543Smrg    ) );
924706f2543Smrg}
925706f2543Smrg
926706f2543Smrgvoid __glXDisp_LightModelfv(GLbyte * pc)
927706f2543Smrg{
928706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  0);
929706f2543Smrg    const GLfloat * params;
930706f2543Smrg
931706f2543Smrg    params = (const GLfloat *) (pc + 4);
932706f2543Smrg
933706f2543Smrg    CALL_LightModelfv( GET_DISPATCH(), (
934706f2543Smrg        pname,
935706f2543Smrg        params
936706f2543Smrg    ) );
937706f2543Smrg}
938706f2543Smrg
939706f2543Smrgvoid __glXDisp_LightModeli(GLbyte * pc)
940706f2543Smrg{
941706f2543Smrg    CALL_LightModeli( GET_DISPATCH(), (
942706f2543Smrg        *(GLenum   *)(pc +  0),
943706f2543Smrg        *(GLint    *)(pc +  4)
944706f2543Smrg    ) );
945706f2543Smrg}
946706f2543Smrg
947706f2543Smrgvoid __glXDisp_LightModeliv(GLbyte * pc)
948706f2543Smrg{
949706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  0);
950706f2543Smrg    const GLint * params;
951706f2543Smrg
952706f2543Smrg    params = (const GLint *) (pc + 4);
953706f2543Smrg
954706f2543Smrg    CALL_LightModeliv( GET_DISPATCH(), (
955706f2543Smrg        pname,
956706f2543Smrg        params
957706f2543Smrg    ) );
958706f2543Smrg}
959706f2543Smrg
960706f2543Smrgvoid __glXDisp_LineStipple(GLbyte * pc)
961706f2543Smrg{
962706f2543Smrg    CALL_LineStipple( GET_DISPATCH(), (
963706f2543Smrg        *(GLint    *)(pc +  0),
964706f2543Smrg        *(GLushort *)(pc +  4)
965706f2543Smrg    ) );
966706f2543Smrg}
967706f2543Smrg
968706f2543Smrgvoid __glXDisp_LineWidth(GLbyte * pc)
969706f2543Smrg{
970706f2543Smrg    CALL_LineWidth( GET_DISPATCH(), (
971706f2543Smrg        *(GLfloat  *)(pc +  0)
972706f2543Smrg    ) );
973706f2543Smrg}
974706f2543Smrg
975706f2543Smrgvoid __glXDisp_Materialf(GLbyte * pc)
976706f2543Smrg{
977706f2543Smrg    CALL_Materialf( GET_DISPATCH(), (
978706f2543Smrg        *(GLenum   *)(pc +  0),
979706f2543Smrg        *(GLenum   *)(pc +  4),
980706f2543Smrg        *(GLfloat  *)(pc +  8)
981706f2543Smrg    ) );
982706f2543Smrg}
983706f2543Smrg
984706f2543Smrgvoid __glXDisp_Materialfv(GLbyte * pc)
985706f2543Smrg{
986706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
987706f2543Smrg    const GLfloat * params;
988706f2543Smrg
989706f2543Smrg    params = (const GLfloat *) (pc + 8);
990706f2543Smrg
991706f2543Smrg    CALL_Materialfv( GET_DISPATCH(), (
992706f2543Smrg        *(GLenum   *)(pc +  0),
993706f2543Smrg        pname,
994706f2543Smrg        params
995706f2543Smrg    ) );
996706f2543Smrg}
997706f2543Smrg
998706f2543Smrgvoid __glXDisp_Materiali(GLbyte * pc)
999706f2543Smrg{
1000706f2543Smrg    CALL_Materiali( GET_DISPATCH(), (
1001706f2543Smrg        *(GLenum   *)(pc +  0),
1002706f2543Smrg        *(GLenum   *)(pc +  4),
1003706f2543Smrg        *(GLint    *)(pc +  8)
1004706f2543Smrg    ) );
1005706f2543Smrg}
1006706f2543Smrg
1007706f2543Smrgvoid __glXDisp_Materialiv(GLbyte * pc)
1008706f2543Smrg{
1009706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1010706f2543Smrg    const GLint * params;
1011706f2543Smrg
1012706f2543Smrg    params = (const GLint *) (pc + 8);
1013706f2543Smrg
1014706f2543Smrg    CALL_Materialiv( GET_DISPATCH(), (
1015706f2543Smrg        *(GLenum   *)(pc +  0),
1016706f2543Smrg        pname,
1017706f2543Smrg        params
1018706f2543Smrg    ) );
1019706f2543Smrg}
1020706f2543Smrg
1021706f2543Smrgvoid __glXDisp_PointSize(GLbyte * pc)
1022706f2543Smrg{
1023706f2543Smrg    CALL_PointSize( GET_DISPATCH(), (
1024706f2543Smrg        *(GLfloat  *)(pc +  0)
1025706f2543Smrg    ) );
1026706f2543Smrg}
1027706f2543Smrg
1028706f2543Smrgvoid __glXDisp_PolygonMode(GLbyte * pc)
1029706f2543Smrg{
1030706f2543Smrg    CALL_PolygonMode( GET_DISPATCH(), (
1031706f2543Smrg        *(GLenum   *)(pc +  0),
1032706f2543Smrg        *(GLenum   *)(pc +  4)
1033706f2543Smrg    ) );
1034706f2543Smrg}
1035706f2543Smrg
1036706f2543Smrgvoid __glXDisp_PolygonStipple(GLbyte * pc)
1037706f2543Smrg{
1038706f2543Smrg    const GLubyte * const mask = (const GLubyte *) (pc + 20);
1039706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
1040706f2543Smrg
1041706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
1042706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
1043706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
1044706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
1045706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
1046706f2543Smrg
1047706f2543Smrg    CALL_PolygonStipple( GET_DISPATCH(), (
1048706f2543Smrg        mask
1049706f2543Smrg    ) );
1050706f2543Smrg}
1051706f2543Smrg
1052706f2543Smrgvoid __glXDisp_Scissor(GLbyte * pc)
1053706f2543Smrg{
1054706f2543Smrg    CALL_Scissor( GET_DISPATCH(), (
1055706f2543Smrg        *(GLint    *)(pc +  0),
1056706f2543Smrg        *(GLint    *)(pc +  4),
1057706f2543Smrg        *(GLsizei  *)(pc +  8),
1058706f2543Smrg        *(GLsizei  *)(pc + 12)
1059706f2543Smrg    ) );
1060706f2543Smrg}
1061706f2543Smrg
1062706f2543Smrgvoid __glXDisp_ShadeModel(GLbyte * pc)
1063706f2543Smrg{
1064706f2543Smrg    CALL_ShadeModel( GET_DISPATCH(), (
1065706f2543Smrg        *(GLenum   *)(pc +  0)
1066706f2543Smrg    ) );
1067706f2543Smrg}
1068706f2543Smrg
1069706f2543Smrgvoid __glXDisp_TexParameterf(GLbyte * pc)
1070706f2543Smrg{
1071706f2543Smrg    CALL_TexParameterf( GET_DISPATCH(), (
1072706f2543Smrg        *(GLenum   *)(pc +  0),
1073706f2543Smrg        *(GLenum   *)(pc +  4),
1074706f2543Smrg        *(GLfloat  *)(pc +  8)
1075706f2543Smrg    ) );
1076706f2543Smrg}
1077706f2543Smrg
1078706f2543Smrgvoid __glXDisp_TexParameterfv(GLbyte * pc)
1079706f2543Smrg{
1080706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1081706f2543Smrg    const GLfloat * params;
1082706f2543Smrg
1083706f2543Smrg    params = (const GLfloat *) (pc + 8);
1084706f2543Smrg
1085706f2543Smrg    CALL_TexParameterfv( GET_DISPATCH(), (
1086706f2543Smrg        *(GLenum   *)(pc +  0),
1087706f2543Smrg        pname,
1088706f2543Smrg        params
1089706f2543Smrg    ) );
1090706f2543Smrg}
1091706f2543Smrg
1092706f2543Smrgvoid __glXDisp_TexParameteri(GLbyte * pc)
1093706f2543Smrg{
1094706f2543Smrg    CALL_TexParameteri( GET_DISPATCH(), (
1095706f2543Smrg        *(GLenum   *)(pc +  0),
1096706f2543Smrg        *(GLenum   *)(pc +  4),
1097706f2543Smrg        *(GLint    *)(pc +  8)
1098706f2543Smrg    ) );
1099706f2543Smrg}
1100706f2543Smrg
1101706f2543Smrgvoid __glXDisp_TexParameteriv(GLbyte * pc)
1102706f2543Smrg{
1103706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1104706f2543Smrg    const GLint * params;
1105706f2543Smrg
1106706f2543Smrg    params = (const GLint *) (pc + 8);
1107706f2543Smrg
1108706f2543Smrg    CALL_TexParameteriv( GET_DISPATCH(), (
1109706f2543Smrg        *(GLenum   *)(pc +  0),
1110706f2543Smrg        pname,
1111706f2543Smrg        params
1112706f2543Smrg    ) );
1113706f2543Smrg}
1114706f2543Smrg
1115706f2543Smrgvoid __glXDisp_TexImage1D(GLbyte * pc)
1116706f2543Smrg{
1117706f2543Smrg    const GLvoid * const pixels = (const GLvoid *) (pc + 52);
1118706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
1119706f2543Smrg
1120706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
1121706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
1122706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
1123706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
1124706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
1125706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
1126706f2543Smrg
1127706f2543Smrg    CALL_TexImage1D( GET_DISPATCH(), (
1128706f2543Smrg        *(GLenum   *)(pc + 20),
1129706f2543Smrg        *(GLint    *)(pc + 24),
1130706f2543Smrg        *(GLint    *)(pc + 28),
1131706f2543Smrg        *(GLsizei  *)(pc + 32),
1132706f2543Smrg        *(GLint    *)(pc + 40),
1133706f2543Smrg        *(GLenum   *)(pc + 44),
1134706f2543Smrg        *(GLenum   *)(pc + 48),
1135706f2543Smrg        pixels
1136706f2543Smrg    ) );
1137706f2543Smrg}
1138706f2543Smrg
1139706f2543Smrgvoid __glXDisp_TexImage2D(GLbyte * pc)
1140706f2543Smrg{
1141706f2543Smrg    const GLvoid * const pixels = (const GLvoid *) (pc + 52);
1142706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
1143706f2543Smrg
1144706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
1145706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
1146706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
1147706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
1148706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
1149706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
1150706f2543Smrg
1151706f2543Smrg    CALL_TexImage2D( GET_DISPATCH(), (
1152706f2543Smrg        *(GLenum   *)(pc + 20),
1153706f2543Smrg        *(GLint    *)(pc + 24),
1154706f2543Smrg        *(GLint    *)(pc + 28),
1155706f2543Smrg        *(GLsizei  *)(pc + 32),
1156706f2543Smrg        *(GLsizei  *)(pc + 36),
1157706f2543Smrg        *(GLint    *)(pc + 40),
1158706f2543Smrg        *(GLenum   *)(pc + 44),
1159706f2543Smrg        *(GLenum   *)(pc + 48),
1160706f2543Smrg        pixels
1161706f2543Smrg    ) );
1162706f2543Smrg}
1163706f2543Smrg
1164706f2543Smrgvoid __glXDisp_TexEnvf(GLbyte * pc)
1165706f2543Smrg{
1166706f2543Smrg    CALL_TexEnvf( GET_DISPATCH(), (
1167706f2543Smrg        *(GLenum   *)(pc +  0),
1168706f2543Smrg        *(GLenum   *)(pc +  4),
1169706f2543Smrg        *(GLfloat  *)(pc +  8)
1170706f2543Smrg    ) );
1171706f2543Smrg}
1172706f2543Smrg
1173706f2543Smrgvoid __glXDisp_TexEnvfv(GLbyte * pc)
1174706f2543Smrg{
1175706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1176706f2543Smrg    const GLfloat * params;
1177706f2543Smrg
1178706f2543Smrg    params = (const GLfloat *) (pc + 8);
1179706f2543Smrg
1180706f2543Smrg    CALL_TexEnvfv( GET_DISPATCH(), (
1181706f2543Smrg        *(GLenum   *)(pc +  0),
1182706f2543Smrg        pname,
1183706f2543Smrg        params
1184706f2543Smrg    ) );
1185706f2543Smrg}
1186706f2543Smrg
1187706f2543Smrgvoid __glXDisp_TexEnvi(GLbyte * pc)
1188706f2543Smrg{
1189706f2543Smrg    CALL_TexEnvi( GET_DISPATCH(), (
1190706f2543Smrg        *(GLenum   *)(pc +  0),
1191706f2543Smrg        *(GLenum   *)(pc +  4),
1192706f2543Smrg        *(GLint    *)(pc +  8)
1193706f2543Smrg    ) );
1194706f2543Smrg}
1195706f2543Smrg
1196706f2543Smrgvoid __glXDisp_TexEnviv(GLbyte * pc)
1197706f2543Smrg{
1198706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1199706f2543Smrg    const GLint * params;
1200706f2543Smrg
1201706f2543Smrg    params = (const GLint *) (pc + 8);
1202706f2543Smrg
1203706f2543Smrg    CALL_TexEnviv( GET_DISPATCH(), (
1204706f2543Smrg        *(GLenum   *)(pc +  0),
1205706f2543Smrg        pname,
1206706f2543Smrg        params
1207706f2543Smrg    ) );
1208706f2543Smrg}
1209706f2543Smrg
1210706f2543Smrgvoid __glXDisp_TexGend(GLbyte * pc)
1211706f2543Smrg{
1212706f2543Smrg#ifdef __GLX_ALIGN64
1213706f2543Smrg    if ((unsigned long)(pc) & 7) {
1214706f2543Smrg        (void) memmove(pc-4, pc, 16);
1215706f2543Smrg        pc -= 4;
1216706f2543Smrg    }
1217706f2543Smrg#endif
1218706f2543Smrg
1219706f2543Smrg    CALL_TexGend( GET_DISPATCH(), (
1220706f2543Smrg        *(GLenum   *)(pc +  8),
1221706f2543Smrg        *(GLenum   *)(pc + 12),
1222706f2543Smrg        *(GLdouble *)(pc +  0)
1223706f2543Smrg    ) );
1224706f2543Smrg}
1225706f2543Smrg
1226706f2543Smrgvoid __glXDisp_TexGendv(GLbyte * pc)
1227706f2543Smrg{
1228706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1229706f2543Smrg    const GLdouble * params;
1230706f2543Smrg
1231706f2543Smrg#ifdef __GLX_ALIGN64
1232706f2543Smrg    const GLuint compsize = __glTexGendv_size(pname);
1233706f2543Smrg    const GLuint cmdlen = 12 + __GLX_PAD((compsize * 8)) - 4;
1234706f2543Smrg    if ((unsigned long)(pc) & 7) {
1235706f2543Smrg        (void) memmove(pc-4, pc, cmdlen);
1236706f2543Smrg        pc -= 4;
1237706f2543Smrg    }
1238706f2543Smrg#endif
1239706f2543Smrg
1240706f2543Smrg    params = (const GLdouble *) (pc + 8);
1241706f2543Smrg
1242706f2543Smrg    CALL_TexGendv( GET_DISPATCH(), (
1243706f2543Smrg        *(GLenum   *)(pc +  0),
1244706f2543Smrg        pname,
1245706f2543Smrg        params
1246706f2543Smrg    ) );
1247706f2543Smrg}
1248706f2543Smrg
1249706f2543Smrgvoid __glXDisp_TexGenf(GLbyte * pc)
1250706f2543Smrg{
1251706f2543Smrg    CALL_TexGenf( GET_DISPATCH(), (
1252706f2543Smrg        *(GLenum   *)(pc +  0),
1253706f2543Smrg        *(GLenum   *)(pc +  4),
1254706f2543Smrg        *(GLfloat  *)(pc +  8)
1255706f2543Smrg    ) );
1256706f2543Smrg}
1257706f2543Smrg
1258706f2543Smrgvoid __glXDisp_TexGenfv(GLbyte * pc)
1259706f2543Smrg{
1260706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1261706f2543Smrg    const GLfloat * params;
1262706f2543Smrg
1263706f2543Smrg    params = (const GLfloat *) (pc + 8);
1264706f2543Smrg
1265706f2543Smrg    CALL_TexGenfv( GET_DISPATCH(), (
1266706f2543Smrg        *(GLenum   *)(pc +  0),
1267706f2543Smrg        pname,
1268706f2543Smrg        params
1269706f2543Smrg    ) );
1270706f2543Smrg}
1271706f2543Smrg
1272706f2543Smrgvoid __glXDisp_TexGeni(GLbyte * pc)
1273706f2543Smrg{
1274706f2543Smrg    CALL_TexGeni( GET_DISPATCH(), (
1275706f2543Smrg        *(GLenum   *)(pc +  0),
1276706f2543Smrg        *(GLenum   *)(pc +  4),
1277706f2543Smrg        *(GLint    *)(pc +  8)
1278706f2543Smrg    ) );
1279706f2543Smrg}
1280706f2543Smrg
1281706f2543Smrgvoid __glXDisp_TexGeniv(GLbyte * pc)
1282706f2543Smrg{
1283706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
1284706f2543Smrg    const GLint * params;
1285706f2543Smrg
1286706f2543Smrg    params = (const GLint *) (pc + 8);
1287706f2543Smrg
1288706f2543Smrg    CALL_TexGeniv( GET_DISPATCH(), (
1289706f2543Smrg        *(GLenum   *)(pc +  0),
1290706f2543Smrg        pname,
1291706f2543Smrg        params
1292706f2543Smrg    ) );
1293706f2543Smrg}
1294706f2543Smrg
1295706f2543Smrgvoid __glXDisp_InitNames(GLbyte * pc)
1296706f2543Smrg{
1297706f2543Smrg    CALL_InitNames( GET_DISPATCH(), () );
1298706f2543Smrg}
1299706f2543Smrg
1300706f2543Smrgvoid __glXDisp_LoadName(GLbyte * pc)
1301706f2543Smrg{
1302706f2543Smrg    CALL_LoadName( GET_DISPATCH(), (
1303706f2543Smrg        *(GLuint   *)(pc +  0)
1304706f2543Smrg    ) );
1305706f2543Smrg}
1306706f2543Smrg
1307706f2543Smrgvoid __glXDisp_PassThrough(GLbyte * pc)
1308706f2543Smrg{
1309706f2543Smrg    CALL_PassThrough( GET_DISPATCH(), (
1310706f2543Smrg        *(GLfloat  *)(pc +  0)
1311706f2543Smrg    ) );
1312706f2543Smrg}
1313706f2543Smrg
1314706f2543Smrgvoid __glXDisp_PopName(GLbyte * pc)
1315706f2543Smrg{
1316706f2543Smrg    CALL_PopName( GET_DISPATCH(), () );
1317706f2543Smrg}
1318706f2543Smrg
1319706f2543Smrgvoid __glXDisp_PushName(GLbyte * pc)
1320706f2543Smrg{
1321706f2543Smrg    CALL_PushName( GET_DISPATCH(), (
1322706f2543Smrg        *(GLuint   *)(pc +  0)
1323706f2543Smrg    ) );
1324706f2543Smrg}
1325706f2543Smrg
1326706f2543Smrgvoid __glXDisp_DrawBuffer(GLbyte * pc)
1327706f2543Smrg{
1328706f2543Smrg    CALL_DrawBuffer( GET_DISPATCH(), (
1329706f2543Smrg        *(GLenum   *)(pc +  0)
1330706f2543Smrg    ) );
1331706f2543Smrg}
1332706f2543Smrg
1333706f2543Smrgvoid __glXDisp_Clear(GLbyte * pc)
1334706f2543Smrg{
1335706f2543Smrg    CALL_Clear( GET_DISPATCH(), (
1336706f2543Smrg        *(GLbitfield *)(pc +  0)
1337706f2543Smrg    ) );
1338706f2543Smrg}
1339706f2543Smrg
1340706f2543Smrgvoid __glXDisp_ClearAccum(GLbyte * pc)
1341706f2543Smrg{
1342706f2543Smrg    CALL_ClearAccum( GET_DISPATCH(), (
1343706f2543Smrg        *(GLfloat  *)(pc +  0),
1344706f2543Smrg        *(GLfloat  *)(pc +  4),
1345706f2543Smrg        *(GLfloat  *)(pc +  8),
1346706f2543Smrg        *(GLfloat  *)(pc + 12)
1347706f2543Smrg    ) );
1348706f2543Smrg}
1349706f2543Smrg
1350706f2543Smrgvoid __glXDisp_ClearIndex(GLbyte * pc)
1351706f2543Smrg{
1352706f2543Smrg    CALL_ClearIndex( GET_DISPATCH(), (
1353706f2543Smrg        *(GLfloat  *)(pc +  0)
1354706f2543Smrg    ) );
1355706f2543Smrg}
1356706f2543Smrg
1357706f2543Smrgvoid __glXDisp_ClearColor(GLbyte * pc)
1358706f2543Smrg{
1359706f2543Smrg    CALL_ClearColor( GET_DISPATCH(), (
1360706f2543Smrg        *(GLclampf *)(pc +  0),
1361706f2543Smrg        *(GLclampf *)(pc +  4),
1362706f2543Smrg        *(GLclampf *)(pc +  8),
1363706f2543Smrg        *(GLclampf *)(pc + 12)
1364706f2543Smrg    ) );
1365706f2543Smrg}
1366706f2543Smrg
1367706f2543Smrgvoid __glXDisp_ClearStencil(GLbyte * pc)
1368706f2543Smrg{
1369706f2543Smrg    CALL_ClearStencil( GET_DISPATCH(), (
1370706f2543Smrg        *(GLint    *)(pc +  0)
1371706f2543Smrg    ) );
1372706f2543Smrg}
1373706f2543Smrg
1374706f2543Smrgvoid __glXDisp_ClearDepth(GLbyte * pc)
1375706f2543Smrg{
1376706f2543Smrg#ifdef __GLX_ALIGN64
1377706f2543Smrg    if ((unsigned long)(pc) & 7) {
1378706f2543Smrg        (void) memmove(pc-4, pc, 8);
1379706f2543Smrg        pc -= 4;
1380706f2543Smrg    }
1381706f2543Smrg#endif
1382706f2543Smrg
1383706f2543Smrg    CALL_ClearDepth( GET_DISPATCH(), (
1384706f2543Smrg        *(GLclampd *)(pc +  0)
1385706f2543Smrg    ) );
1386706f2543Smrg}
1387706f2543Smrg
1388706f2543Smrgvoid __glXDisp_StencilMask(GLbyte * pc)
1389706f2543Smrg{
1390706f2543Smrg    CALL_StencilMask( GET_DISPATCH(), (
1391706f2543Smrg        *(GLuint   *)(pc +  0)
1392706f2543Smrg    ) );
1393706f2543Smrg}
1394706f2543Smrg
1395706f2543Smrgvoid __glXDisp_ColorMask(GLbyte * pc)
1396706f2543Smrg{
1397706f2543Smrg    CALL_ColorMask( GET_DISPATCH(), (
1398706f2543Smrg        *(GLboolean *)(pc +  0),
1399706f2543Smrg        *(GLboolean *)(pc +  1),
1400706f2543Smrg        *(GLboolean *)(pc +  2),
1401706f2543Smrg        *(GLboolean *)(pc +  3)
1402706f2543Smrg    ) );
1403706f2543Smrg}
1404706f2543Smrg
1405706f2543Smrgvoid __glXDisp_DepthMask(GLbyte * pc)
1406706f2543Smrg{
1407706f2543Smrg    CALL_DepthMask( GET_DISPATCH(), (
1408706f2543Smrg        *(GLboolean *)(pc +  0)
1409706f2543Smrg    ) );
1410706f2543Smrg}
1411706f2543Smrg
1412706f2543Smrgvoid __glXDisp_IndexMask(GLbyte * pc)
1413706f2543Smrg{
1414706f2543Smrg    CALL_IndexMask( GET_DISPATCH(), (
1415706f2543Smrg        *(GLuint   *)(pc +  0)
1416706f2543Smrg    ) );
1417706f2543Smrg}
1418706f2543Smrg
1419706f2543Smrgvoid __glXDisp_Accum(GLbyte * pc)
1420706f2543Smrg{
1421706f2543Smrg    CALL_Accum( GET_DISPATCH(), (
1422706f2543Smrg        *(GLenum   *)(pc +  0),
1423706f2543Smrg        *(GLfloat  *)(pc +  4)
1424706f2543Smrg    ) );
1425706f2543Smrg}
1426706f2543Smrg
1427706f2543Smrgvoid __glXDisp_Disable(GLbyte * pc)
1428706f2543Smrg{
1429706f2543Smrg    CALL_Disable( GET_DISPATCH(), (
1430706f2543Smrg        *(GLenum   *)(pc +  0)
1431706f2543Smrg    ) );
1432706f2543Smrg}
1433706f2543Smrg
1434706f2543Smrgvoid __glXDisp_Enable(GLbyte * pc)
1435706f2543Smrg{
1436706f2543Smrg    CALL_Enable( GET_DISPATCH(), (
1437706f2543Smrg        *(GLenum   *)(pc +  0)
1438706f2543Smrg    ) );
1439706f2543Smrg}
1440706f2543Smrg
1441706f2543Smrgvoid __glXDisp_PopAttrib(GLbyte * pc)
1442706f2543Smrg{
1443706f2543Smrg    CALL_PopAttrib( GET_DISPATCH(), () );
1444706f2543Smrg}
1445706f2543Smrg
1446706f2543Smrgvoid __glXDisp_PushAttrib(GLbyte * pc)
1447706f2543Smrg{
1448706f2543Smrg    CALL_PushAttrib( GET_DISPATCH(), (
1449706f2543Smrg        *(GLbitfield *)(pc +  0)
1450706f2543Smrg    ) );
1451706f2543Smrg}
1452706f2543Smrg
1453706f2543Smrgvoid __glXDisp_MapGrid1d(GLbyte * pc)
1454706f2543Smrg{
1455706f2543Smrg#ifdef __GLX_ALIGN64
1456706f2543Smrg    if ((unsigned long)(pc) & 7) {
1457706f2543Smrg        (void) memmove(pc-4, pc, 20);
1458706f2543Smrg        pc -= 4;
1459706f2543Smrg    }
1460706f2543Smrg#endif
1461706f2543Smrg
1462706f2543Smrg    CALL_MapGrid1d( GET_DISPATCH(), (
1463706f2543Smrg        *(GLint    *)(pc + 16),
1464706f2543Smrg        *(GLdouble *)(pc +  0),
1465706f2543Smrg        *(GLdouble *)(pc +  8)
1466706f2543Smrg    ) );
1467706f2543Smrg}
1468706f2543Smrg
1469706f2543Smrgvoid __glXDisp_MapGrid1f(GLbyte * pc)
1470706f2543Smrg{
1471706f2543Smrg    CALL_MapGrid1f( GET_DISPATCH(), (
1472706f2543Smrg        *(GLint    *)(pc +  0),
1473706f2543Smrg        *(GLfloat  *)(pc +  4),
1474706f2543Smrg        *(GLfloat  *)(pc +  8)
1475706f2543Smrg    ) );
1476706f2543Smrg}
1477706f2543Smrg
1478706f2543Smrgvoid __glXDisp_MapGrid2d(GLbyte * pc)
1479706f2543Smrg{
1480706f2543Smrg#ifdef __GLX_ALIGN64
1481706f2543Smrg    if ((unsigned long)(pc) & 7) {
1482706f2543Smrg        (void) memmove(pc-4, pc, 40);
1483706f2543Smrg        pc -= 4;
1484706f2543Smrg    }
1485706f2543Smrg#endif
1486706f2543Smrg
1487706f2543Smrg    CALL_MapGrid2d( GET_DISPATCH(), (
1488706f2543Smrg        *(GLint    *)(pc + 32),
1489706f2543Smrg        *(GLdouble *)(pc +  0),
1490706f2543Smrg        *(GLdouble *)(pc +  8),
1491706f2543Smrg        *(GLint    *)(pc + 36),
1492706f2543Smrg        *(GLdouble *)(pc + 16),
1493706f2543Smrg        *(GLdouble *)(pc + 24)
1494706f2543Smrg    ) );
1495706f2543Smrg}
1496706f2543Smrg
1497706f2543Smrgvoid __glXDisp_MapGrid2f(GLbyte * pc)
1498706f2543Smrg{
1499706f2543Smrg    CALL_MapGrid2f( GET_DISPATCH(), (
1500706f2543Smrg        *(GLint    *)(pc +  0),
1501706f2543Smrg        *(GLfloat  *)(pc +  4),
1502706f2543Smrg        *(GLfloat  *)(pc +  8),
1503706f2543Smrg        *(GLint    *)(pc + 12),
1504706f2543Smrg        *(GLfloat  *)(pc + 16),
1505706f2543Smrg        *(GLfloat  *)(pc + 20)
1506706f2543Smrg    ) );
1507706f2543Smrg}
1508706f2543Smrg
1509706f2543Smrgvoid __glXDisp_EvalCoord1dv(GLbyte * pc)
1510706f2543Smrg{
1511706f2543Smrg#ifdef __GLX_ALIGN64
1512706f2543Smrg    if ((unsigned long)(pc) & 7) {
1513706f2543Smrg        (void) memmove(pc-4, pc, 8);
1514706f2543Smrg        pc -= 4;
1515706f2543Smrg    }
1516706f2543Smrg#endif
1517706f2543Smrg
1518706f2543Smrg    CALL_EvalCoord1dv( GET_DISPATCH(), (
1519706f2543Smrg         (const GLdouble *)(pc +  0)
1520706f2543Smrg    ) );
1521706f2543Smrg}
1522706f2543Smrg
1523706f2543Smrgvoid __glXDisp_EvalCoord1fv(GLbyte * pc)
1524706f2543Smrg{
1525706f2543Smrg    CALL_EvalCoord1fv( GET_DISPATCH(), (
1526706f2543Smrg         (const GLfloat *)(pc +  0)
1527706f2543Smrg    ) );
1528706f2543Smrg}
1529706f2543Smrg
1530706f2543Smrgvoid __glXDisp_EvalCoord2dv(GLbyte * pc)
1531706f2543Smrg{
1532706f2543Smrg#ifdef __GLX_ALIGN64
1533706f2543Smrg    if ((unsigned long)(pc) & 7) {
1534706f2543Smrg        (void) memmove(pc-4, pc, 16);
1535706f2543Smrg        pc -= 4;
1536706f2543Smrg    }
1537706f2543Smrg#endif
1538706f2543Smrg
1539706f2543Smrg    CALL_EvalCoord2dv( GET_DISPATCH(), (
1540706f2543Smrg         (const GLdouble *)(pc +  0)
1541706f2543Smrg    ) );
1542706f2543Smrg}
1543706f2543Smrg
1544706f2543Smrgvoid __glXDisp_EvalCoord2fv(GLbyte * pc)
1545706f2543Smrg{
1546706f2543Smrg    CALL_EvalCoord2fv( GET_DISPATCH(), (
1547706f2543Smrg         (const GLfloat *)(pc +  0)
1548706f2543Smrg    ) );
1549706f2543Smrg}
1550706f2543Smrg
1551706f2543Smrgvoid __glXDisp_EvalMesh1(GLbyte * pc)
1552706f2543Smrg{
1553706f2543Smrg    CALL_EvalMesh1( GET_DISPATCH(), (
1554706f2543Smrg        *(GLenum   *)(pc +  0),
1555706f2543Smrg        *(GLint    *)(pc +  4),
1556706f2543Smrg        *(GLint    *)(pc +  8)
1557706f2543Smrg    ) );
1558706f2543Smrg}
1559706f2543Smrg
1560706f2543Smrgvoid __glXDisp_EvalPoint1(GLbyte * pc)
1561706f2543Smrg{
1562706f2543Smrg    CALL_EvalPoint1( GET_DISPATCH(), (
1563706f2543Smrg        *(GLint    *)(pc +  0)
1564706f2543Smrg    ) );
1565706f2543Smrg}
1566706f2543Smrg
1567706f2543Smrgvoid __glXDisp_EvalMesh2(GLbyte * pc)
1568706f2543Smrg{
1569706f2543Smrg    CALL_EvalMesh2( GET_DISPATCH(), (
1570706f2543Smrg        *(GLenum   *)(pc +  0),
1571706f2543Smrg        *(GLint    *)(pc +  4),
1572706f2543Smrg        *(GLint    *)(pc +  8),
1573706f2543Smrg        *(GLint    *)(pc + 12),
1574706f2543Smrg        *(GLint    *)(pc + 16)
1575706f2543Smrg    ) );
1576706f2543Smrg}
1577706f2543Smrg
1578706f2543Smrgvoid __glXDisp_EvalPoint2(GLbyte * pc)
1579706f2543Smrg{
1580706f2543Smrg    CALL_EvalPoint2( GET_DISPATCH(), (
1581706f2543Smrg        *(GLint    *)(pc +  0),
1582706f2543Smrg        *(GLint    *)(pc +  4)
1583706f2543Smrg    ) );
1584706f2543Smrg}
1585706f2543Smrg
1586706f2543Smrgvoid __glXDisp_AlphaFunc(GLbyte * pc)
1587706f2543Smrg{
1588706f2543Smrg    CALL_AlphaFunc( GET_DISPATCH(), (
1589706f2543Smrg        *(GLenum   *)(pc +  0),
1590706f2543Smrg        *(GLclampf *)(pc +  4)
1591706f2543Smrg    ) );
1592706f2543Smrg}
1593706f2543Smrg
1594706f2543Smrgvoid __glXDisp_BlendFunc(GLbyte * pc)
1595706f2543Smrg{
1596706f2543Smrg    CALL_BlendFunc( GET_DISPATCH(), (
1597706f2543Smrg        *(GLenum   *)(pc +  0),
1598706f2543Smrg        *(GLenum   *)(pc +  4)
1599706f2543Smrg    ) );
1600706f2543Smrg}
1601706f2543Smrg
1602706f2543Smrgvoid __glXDisp_LogicOp(GLbyte * pc)
1603706f2543Smrg{
1604706f2543Smrg    CALL_LogicOp( GET_DISPATCH(), (
1605706f2543Smrg        *(GLenum   *)(pc +  0)
1606706f2543Smrg    ) );
1607706f2543Smrg}
1608706f2543Smrg
1609706f2543Smrgvoid __glXDisp_StencilFunc(GLbyte * pc)
1610706f2543Smrg{
1611706f2543Smrg    CALL_StencilFunc( GET_DISPATCH(), (
1612706f2543Smrg        *(GLenum   *)(pc +  0),
1613706f2543Smrg        *(GLint    *)(pc +  4),
1614706f2543Smrg        *(GLuint   *)(pc +  8)
1615706f2543Smrg    ) );
1616706f2543Smrg}
1617706f2543Smrg
1618706f2543Smrgvoid __glXDisp_StencilOp(GLbyte * pc)
1619706f2543Smrg{
1620706f2543Smrg    CALL_StencilOp( GET_DISPATCH(), (
1621706f2543Smrg        *(GLenum   *)(pc +  0),
1622706f2543Smrg        *(GLenum   *)(pc +  4),
1623706f2543Smrg        *(GLenum   *)(pc +  8)
1624706f2543Smrg    ) );
1625706f2543Smrg}
1626706f2543Smrg
1627706f2543Smrgvoid __glXDisp_DepthFunc(GLbyte * pc)
1628706f2543Smrg{
1629706f2543Smrg    CALL_DepthFunc( GET_DISPATCH(), (
1630706f2543Smrg        *(GLenum   *)(pc +  0)
1631706f2543Smrg    ) );
1632706f2543Smrg}
1633706f2543Smrg
1634706f2543Smrgvoid __glXDisp_PixelZoom(GLbyte * pc)
1635706f2543Smrg{
1636706f2543Smrg    CALL_PixelZoom( GET_DISPATCH(), (
1637706f2543Smrg        *(GLfloat  *)(pc +  0),
1638706f2543Smrg        *(GLfloat  *)(pc +  4)
1639706f2543Smrg    ) );
1640706f2543Smrg}
1641706f2543Smrg
1642706f2543Smrgvoid __glXDisp_PixelTransferf(GLbyte * pc)
1643706f2543Smrg{
1644706f2543Smrg    CALL_PixelTransferf( GET_DISPATCH(), (
1645706f2543Smrg        *(GLenum   *)(pc +  0),
1646706f2543Smrg        *(GLfloat  *)(pc +  4)
1647706f2543Smrg    ) );
1648706f2543Smrg}
1649706f2543Smrg
1650706f2543Smrgvoid __glXDisp_PixelTransferi(GLbyte * pc)
1651706f2543Smrg{
1652706f2543Smrg    CALL_PixelTransferi( GET_DISPATCH(), (
1653706f2543Smrg        *(GLenum   *)(pc +  0),
1654706f2543Smrg        *(GLint    *)(pc +  4)
1655706f2543Smrg    ) );
1656706f2543Smrg}
1657706f2543Smrg
1658706f2543Smrgint __glXDisp_PixelStoref(__GLXclientState *cl, GLbyte *pc)
1659706f2543Smrg{
1660706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1661706f2543Smrg    int error;
1662706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1663706f2543Smrg
1664706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1665706f2543Smrg    if ( cx != NULL ) {
1666706f2543Smrg        CALL_PixelStoref( GET_DISPATCH(), (
1667706f2543Smrg            *(GLenum   *)(pc +  0),
1668706f2543Smrg            *(GLfloat  *)(pc +  4)
1669706f2543Smrg        ) );
1670706f2543Smrg        error = Success;
1671706f2543Smrg    }
1672706f2543Smrg
1673706f2543Smrg    return error;
1674706f2543Smrg}
1675706f2543Smrg
1676706f2543Smrgint __glXDisp_PixelStorei(__GLXclientState *cl, GLbyte *pc)
1677706f2543Smrg{
1678706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1679706f2543Smrg    int error;
1680706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1681706f2543Smrg
1682706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1683706f2543Smrg    if ( cx != NULL ) {
1684706f2543Smrg        CALL_PixelStorei( GET_DISPATCH(), (
1685706f2543Smrg            *(GLenum   *)(pc +  0),
1686706f2543Smrg            *(GLint    *)(pc +  4)
1687706f2543Smrg        ) );
1688706f2543Smrg        error = Success;
1689706f2543Smrg    }
1690706f2543Smrg
1691706f2543Smrg    return error;
1692706f2543Smrg}
1693706f2543Smrg
1694706f2543Smrgvoid __glXDisp_PixelMapfv(GLbyte * pc)
1695706f2543Smrg{
1696706f2543Smrg    const GLsizei mapsize = *(GLsizei  *)(pc +  4);
1697706f2543Smrg
1698706f2543Smrg    CALL_PixelMapfv( GET_DISPATCH(), (
1699706f2543Smrg        *(GLenum   *)(pc +  0),
1700706f2543Smrg        mapsize,
1701706f2543Smrg         (const GLfloat *)(pc +  8)
1702706f2543Smrg    ) );
1703706f2543Smrg}
1704706f2543Smrg
1705706f2543Smrgvoid __glXDisp_PixelMapuiv(GLbyte * pc)
1706706f2543Smrg{
1707706f2543Smrg    const GLsizei mapsize = *(GLsizei  *)(pc +  4);
1708706f2543Smrg
1709706f2543Smrg    CALL_PixelMapuiv( GET_DISPATCH(), (
1710706f2543Smrg        *(GLenum   *)(pc +  0),
1711706f2543Smrg        mapsize,
1712706f2543Smrg         (const GLuint *)(pc +  8)
1713706f2543Smrg    ) );
1714706f2543Smrg}
1715706f2543Smrg
1716706f2543Smrgvoid __glXDisp_PixelMapusv(GLbyte * pc)
1717706f2543Smrg{
1718706f2543Smrg    const GLsizei mapsize = *(GLsizei  *)(pc +  4);
1719706f2543Smrg
1720706f2543Smrg    CALL_PixelMapusv( GET_DISPATCH(), (
1721706f2543Smrg        *(GLenum   *)(pc +  0),
1722706f2543Smrg        mapsize,
1723706f2543Smrg         (const GLushort *)(pc +  8)
1724706f2543Smrg    ) );
1725706f2543Smrg}
1726706f2543Smrg
1727706f2543Smrgvoid __glXDisp_ReadBuffer(GLbyte * pc)
1728706f2543Smrg{
1729706f2543Smrg    CALL_ReadBuffer( GET_DISPATCH(), (
1730706f2543Smrg        *(GLenum   *)(pc +  0)
1731706f2543Smrg    ) );
1732706f2543Smrg}
1733706f2543Smrg
1734706f2543Smrgvoid __glXDisp_CopyPixels(GLbyte * pc)
1735706f2543Smrg{
1736706f2543Smrg    CALL_CopyPixels( GET_DISPATCH(), (
1737706f2543Smrg        *(GLint    *)(pc +  0),
1738706f2543Smrg        *(GLint    *)(pc +  4),
1739706f2543Smrg        *(GLsizei  *)(pc +  8),
1740706f2543Smrg        *(GLsizei  *)(pc + 12),
1741706f2543Smrg        *(GLenum   *)(pc + 16)
1742706f2543Smrg    ) );
1743706f2543Smrg}
1744706f2543Smrg
1745706f2543Smrgvoid __glXDisp_DrawPixels(GLbyte * pc)
1746706f2543Smrg{
1747706f2543Smrg    const GLvoid * const pixels = (const GLvoid *) (pc + 36);
1748706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
1749706f2543Smrg
1750706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
1751706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
1752706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
1753706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
1754706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
1755706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
1756706f2543Smrg
1757706f2543Smrg    CALL_DrawPixels( GET_DISPATCH(), (
1758706f2543Smrg        *(GLsizei  *)(pc + 20),
1759706f2543Smrg        *(GLsizei  *)(pc + 24),
1760706f2543Smrg        *(GLenum   *)(pc + 28),
1761706f2543Smrg        *(GLenum   *)(pc + 32),
1762706f2543Smrg        pixels
1763706f2543Smrg    ) );
1764706f2543Smrg}
1765706f2543Smrg
1766706f2543Smrgint __glXDisp_GetBooleanv(__GLXclientState *cl, GLbyte *pc)
1767706f2543Smrg{
1768706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1769706f2543Smrg    int error;
1770706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1771706f2543Smrg
1772706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1773706f2543Smrg    if ( cx != NULL ) {
1774706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  0);
1775706f2543Smrg
1776706f2543Smrg        const GLuint compsize = __glGetBooleanv_size(pname);
1777706f2543Smrg        GLboolean answerBuffer[200];
1778706f2543Smrg        GLboolean * params = __glXGetAnswerBuffer(cl, compsize, answerBuffer, sizeof(answerBuffer), 1);
1779706f2543Smrg
1780706f2543Smrg        if (params == NULL) return BadAlloc;
1781706f2543Smrg        __glXClearErrorOccured();
1782706f2543Smrg
1783706f2543Smrg        CALL_GetBooleanv( GET_DISPATCH(), (
1784706f2543Smrg            pname,
1785706f2543Smrg            params
1786706f2543Smrg        ) );
1787706f2543Smrg        __glXSendReply(cl->client, params, compsize, 1, GL_FALSE, 0);
1788706f2543Smrg        error = Success;
1789706f2543Smrg    }
1790706f2543Smrg
1791706f2543Smrg    return error;
1792706f2543Smrg}
1793706f2543Smrg
1794706f2543Smrgint __glXDisp_GetClipPlane(__GLXclientState *cl, GLbyte *pc)
1795706f2543Smrg{
1796706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1797706f2543Smrg    int error;
1798706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1799706f2543Smrg
1800706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1801706f2543Smrg    if ( cx != NULL ) {
1802706f2543Smrg        GLdouble equation[4];
1803706f2543Smrg        CALL_GetClipPlane( GET_DISPATCH(), (
1804706f2543Smrg            *(GLenum   *)(pc +  0),
1805706f2543Smrg            equation
1806706f2543Smrg        ) );
1807706f2543Smrg        __glXSendReply(cl->client, equation, 4, 8, GL_TRUE, 0);
1808706f2543Smrg        error = Success;
1809706f2543Smrg    }
1810706f2543Smrg
1811706f2543Smrg    return error;
1812706f2543Smrg}
1813706f2543Smrg
1814706f2543Smrgint __glXDisp_GetDoublev(__GLXclientState *cl, GLbyte *pc)
1815706f2543Smrg{
1816706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1817706f2543Smrg    int error;
1818706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1819706f2543Smrg
1820706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1821706f2543Smrg    if ( cx != NULL ) {
1822706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  0);
1823706f2543Smrg
1824706f2543Smrg        const GLuint compsize = __glGetDoublev_size(pname);
1825706f2543Smrg        GLdouble answerBuffer[200];
1826706f2543Smrg        GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
1827706f2543Smrg
1828706f2543Smrg        if (params == NULL) return BadAlloc;
1829706f2543Smrg        __glXClearErrorOccured();
1830706f2543Smrg
1831706f2543Smrg        CALL_GetDoublev( GET_DISPATCH(), (
1832706f2543Smrg            pname,
1833706f2543Smrg            params
1834706f2543Smrg        ) );
1835706f2543Smrg        __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
1836706f2543Smrg        error = Success;
1837706f2543Smrg    }
1838706f2543Smrg
1839706f2543Smrg    return error;
1840706f2543Smrg}
1841706f2543Smrg
1842706f2543Smrgint __glXDisp_GetError(__GLXclientState *cl, GLbyte *pc)
1843706f2543Smrg{
1844706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1845706f2543Smrg    int error;
1846706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1847706f2543Smrg
1848706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1849706f2543Smrg    if ( cx != NULL ) {
1850706f2543Smrg        GLenum retval;
1851706f2543Smrg        retval = CALL_GetError( GET_DISPATCH(), () );
1852706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
1853706f2543Smrg        error = Success;
1854706f2543Smrg    }
1855706f2543Smrg
1856706f2543Smrg    return error;
1857706f2543Smrg}
1858706f2543Smrg
1859706f2543Smrgint __glXDisp_GetFloatv(__GLXclientState *cl, GLbyte *pc)
1860706f2543Smrg{
1861706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1862706f2543Smrg    int error;
1863706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1864706f2543Smrg
1865706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1866706f2543Smrg    if ( cx != NULL ) {
1867706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  0);
1868706f2543Smrg
1869706f2543Smrg        const GLuint compsize = __glGetFloatv_size(pname);
1870706f2543Smrg        GLfloat answerBuffer[200];
1871706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
1872706f2543Smrg
1873706f2543Smrg        if (params == NULL) return BadAlloc;
1874706f2543Smrg        __glXClearErrorOccured();
1875706f2543Smrg
1876706f2543Smrg        CALL_GetFloatv( GET_DISPATCH(), (
1877706f2543Smrg            pname,
1878706f2543Smrg            params
1879706f2543Smrg        ) );
1880706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
1881706f2543Smrg        error = Success;
1882706f2543Smrg    }
1883706f2543Smrg
1884706f2543Smrg    return error;
1885706f2543Smrg}
1886706f2543Smrg
1887706f2543Smrgint __glXDisp_GetIntegerv(__GLXclientState *cl, GLbyte *pc)
1888706f2543Smrg{
1889706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1890706f2543Smrg    int error;
1891706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1892706f2543Smrg
1893706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1894706f2543Smrg    if ( cx != NULL ) {
1895706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  0);
1896706f2543Smrg
1897706f2543Smrg        const GLuint compsize = __glGetIntegerv_size(pname);
1898706f2543Smrg        GLint answerBuffer[200];
1899706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
1900706f2543Smrg
1901706f2543Smrg        if (params == NULL) return BadAlloc;
1902706f2543Smrg        __glXClearErrorOccured();
1903706f2543Smrg
1904706f2543Smrg        CALL_GetIntegerv( GET_DISPATCH(), (
1905706f2543Smrg            pname,
1906706f2543Smrg            params
1907706f2543Smrg        ) );
1908706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
1909706f2543Smrg        error = Success;
1910706f2543Smrg    }
1911706f2543Smrg
1912706f2543Smrg    return error;
1913706f2543Smrg}
1914706f2543Smrg
1915706f2543Smrgint __glXDisp_GetLightfv(__GLXclientState *cl, GLbyte *pc)
1916706f2543Smrg{
1917706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1918706f2543Smrg    int error;
1919706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1920706f2543Smrg
1921706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1922706f2543Smrg    if ( cx != NULL ) {
1923706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
1924706f2543Smrg
1925706f2543Smrg        const GLuint compsize = __glGetLightfv_size(pname);
1926706f2543Smrg        GLfloat answerBuffer[200];
1927706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
1928706f2543Smrg
1929706f2543Smrg        if (params == NULL) return BadAlloc;
1930706f2543Smrg        __glXClearErrorOccured();
1931706f2543Smrg
1932706f2543Smrg        CALL_GetLightfv( GET_DISPATCH(), (
1933706f2543Smrg            *(GLenum   *)(pc +  0),
1934706f2543Smrg            pname,
1935706f2543Smrg            params
1936706f2543Smrg        ) );
1937706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
1938706f2543Smrg        error = Success;
1939706f2543Smrg    }
1940706f2543Smrg
1941706f2543Smrg    return error;
1942706f2543Smrg}
1943706f2543Smrg
1944706f2543Smrgint __glXDisp_GetLightiv(__GLXclientState *cl, GLbyte *pc)
1945706f2543Smrg{
1946706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1947706f2543Smrg    int error;
1948706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1949706f2543Smrg
1950706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1951706f2543Smrg    if ( cx != NULL ) {
1952706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
1953706f2543Smrg
1954706f2543Smrg        const GLuint compsize = __glGetLightiv_size(pname);
1955706f2543Smrg        GLint answerBuffer[200];
1956706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
1957706f2543Smrg
1958706f2543Smrg        if (params == NULL) return BadAlloc;
1959706f2543Smrg        __glXClearErrorOccured();
1960706f2543Smrg
1961706f2543Smrg        CALL_GetLightiv( GET_DISPATCH(), (
1962706f2543Smrg            *(GLenum   *)(pc +  0),
1963706f2543Smrg            pname,
1964706f2543Smrg            params
1965706f2543Smrg        ) );
1966706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
1967706f2543Smrg        error = Success;
1968706f2543Smrg    }
1969706f2543Smrg
1970706f2543Smrg    return error;
1971706f2543Smrg}
1972706f2543Smrg
1973706f2543Smrgint __glXDisp_GetMapdv(__GLXclientState *cl, GLbyte *pc)
1974706f2543Smrg{
1975706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
1976706f2543Smrg    int error;
1977706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
1978706f2543Smrg
1979706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
1980706f2543Smrg    if ( cx != NULL ) {
1981706f2543Smrg        const GLenum target = *(GLenum   *)(pc +  0);
1982706f2543Smrg        const GLenum query = *(GLenum   *)(pc +  4);
1983706f2543Smrg
1984706f2543Smrg        const GLuint compsize = __glGetMapdv_size(target,query);
1985706f2543Smrg        GLdouble answerBuffer[200];
1986706f2543Smrg        GLdouble * v = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
1987706f2543Smrg
1988706f2543Smrg        if (v == NULL) return BadAlloc;
1989706f2543Smrg        __glXClearErrorOccured();
1990706f2543Smrg
1991706f2543Smrg        CALL_GetMapdv( GET_DISPATCH(), (
1992706f2543Smrg            target,
1993706f2543Smrg            query,
1994706f2543Smrg            v
1995706f2543Smrg        ) );
1996706f2543Smrg        __glXSendReply(cl->client, v, compsize, 8, GL_FALSE, 0);
1997706f2543Smrg        error = Success;
1998706f2543Smrg    }
1999706f2543Smrg
2000706f2543Smrg    return error;
2001706f2543Smrg}
2002706f2543Smrg
2003706f2543Smrgint __glXDisp_GetMapfv(__GLXclientState *cl, GLbyte *pc)
2004706f2543Smrg{
2005706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2006706f2543Smrg    int error;
2007706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2008706f2543Smrg
2009706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2010706f2543Smrg    if ( cx != NULL ) {
2011706f2543Smrg        const GLenum target = *(GLenum   *)(pc +  0);
2012706f2543Smrg        const GLenum query = *(GLenum   *)(pc +  4);
2013706f2543Smrg
2014706f2543Smrg        const GLuint compsize = __glGetMapfv_size(target,query);
2015706f2543Smrg        GLfloat answerBuffer[200];
2016706f2543Smrg        GLfloat * v = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2017706f2543Smrg
2018706f2543Smrg        if (v == NULL) return BadAlloc;
2019706f2543Smrg        __glXClearErrorOccured();
2020706f2543Smrg
2021706f2543Smrg        CALL_GetMapfv( GET_DISPATCH(), (
2022706f2543Smrg            target,
2023706f2543Smrg            query,
2024706f2543Smrg            v
2025706f2543Smrg        ) );
2026706f2543Smrg        __glXSendReply(cl->client, v, compsize, 4, GL_FALSE, 0);
2027706f2543Smrg        error = Success;
2028706f2543Smrg    }
2029706f2543Smrg
2030706f2543Smrg    return error;
2031706f2543Smrg}
2032706f2543Smrg
2033706f2543Smrgint __glXDisp_GetMapiv(__GLXclientState *cl, GLbyte *pc)
2034706f2543Smrg{
2035706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2036706f2543Smrg    int error;
2037706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2038706f2543Smrg
2039706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2040706f2543Smrg    if ( cx != NULL ) {
2041706f2543Smrg        const GLenum target = *(GLenum   *)(pc +  0);
2042706f2543Smrg        const GLenum query = *(GLenum   *)(pc +  4);
2043706f2543Smrg
2044706f2543Smrg        const GLuint compsize = __glGetMapiv_size(target,query);
2045706f2543Smrg        GLint answerBuffer[200];
2046706f2543Smrg        GLint * v = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2047706f2543Smrg
2048706f2543Smrg        if (v == NULL) return BadAlloc;
2049706f2543Smrg        __glXClearErrorOccured();
2050706f2543Smrg
2051706f2543Smrg        CALL_GetMapiv( GET_DISPATCH(), (
2052706f2543Smrg            target,
2053706f2543Smrg            query,
2054706f2543Smrg            v
2055706f2543Smrg        ) );
2056706f2543Smrg        __glXSendReply(cl->client, v, compsize, 4, GL_FALSE, 0);
2057706f2543Smrg        error = Success;
2058706f2543Smrg    }
2059706f2543Smrg
2060706f2543Smrg    return error;
2061706f2543Smrg}
2062706f2543Smrg
2063706f2543Smrgint __glXDisp_GetMaterialfv(__GLXclientState *cl, GLbyte *pc)
2064706f2543Smrg{
2065706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2066706f2543Smrg    int error;
2067706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2068706f2543Smrg
2069706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2070706f2543Smrg    if ( cx != NULL ) {
2071706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2072706f2543Smrg
2073706f2543Smrg        const GLuint compsize = __glGetMaterialfv_size(pname);
2074706f2543Smrg        GLfloat answerBuffer[200];
2075706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2076706f2543Smrg
2077706f2543Smrg        if (params == NULL) return BadAlloc;
2078706f2543Smrg        __glXClearErrorOccured();
2079706f2543Smrg
2080706f2543Smrg        CALL_GetMaterialfv( GET_DISPATCH(), (
2081706f2543Smrg            *(GLenum   *)(pc +  0),
2082706f2543Smrg            pname,
2083706f2543Smrg            params
2084706f2543Smrg        ) );
2085706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2086706f2543Smrg        error = Success;
2087706f2543Smrg    }
2088706f2543Smrg
2089706f2543Smrg    return error;
2090706f2543Smrg}
2091706f2543Smrg
2092706f2543Smrgint __glXDisp_GetMaterialiv(__GLXclientState *cl, GLbyte *pc)
2093706f2543Smrg{
2094706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2095706f2543Smrg    int error;
2096706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2097706f2543Smrg
2098706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2099706f2543Smrg    if ( cx != NULL ) {
2100706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2101706f2543Smrg
2102706f2543Smrg        const GLuint compsize = __glGetMaterialiv_size(pname);
2103706f2543Smrg        GLint answerBuffer[200];
2104706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2105706f2543Smrg
2106706f2543Smrg        if (params == NULL) return BadAlloc;
2107706f2543Smrg        __glXClearErrorOccured();
2108706f2543Smrg
2109706f2543Smrg        CALL_GetMaterialiv( GET_DISPATCH(), (
2110706f2543Smrg            *(GLenum   *)(pc +  0),
2111706f2543Smrg            pname,
2112706f2543Smrg            params
2113706f2543Smrg        ) );
2114706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2115706f2543Smrg        error = Success;
2116706f2543Smrg    }
2117706f2543Smrg
2118706f2543Smrg    return error;
2119706f2543Smrg}
2120706f2543Smrg
2121706f2543Smrgint __glXDisp_GetPixelMapfv(__GLXclientState *cl, GLbyte *pc)
2122706f2543Smrg{
2123706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2124706f2543Smrg    int error;
2125706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2126706f2543Smrg
2127706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2128706f2543Smrg    if ( cx != NULL ) {
2129706f2543Smrg        const GLenum map = *(GLenum   *)(pc +  0);
2130706f2543Smrg
2131706f2543Smrg        const GLuint compsize = __glGetPixelMapfv_size(map);
2132706f2543Smrg        GLfloat answerBuffer[200];
2133706f2543Smrg        GLfloat * values = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2134706f2543Smrg
2135706f2543Smrg        if (values == NULL) return BadAlloc;
2136706f2543Smrg        __glXClearErrorOccured();
2137706f2543Smrg
2138706f2543Smrg        CALL_GetPixelMapfv( GET_DISPATCH(), (
2139706f2543Smrg            map,
2140706f2543Smrg            values
2141706f2543Smrg        ) );
2142706f2543Smrg        __glXSendReply(cl->client, values, compsize, 4, GL_FALSE, 0);
2143706f2543Smrg        error = Success;
2144706f2543Smrg    }
2145706f2543Smrg
2146706f2543Smrg    return error;
2147706f2543Smrg}
2148706f2543Smrg
2149706f2543Smrgint __glXDisp_GetPixelMapuiv(__GLXclientState *cl, GLbyte *pc)
2150706f2543Smrg{
2151706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2152706f2543Smrg    int error;
2153706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2154706f2543Smrg
2155706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2156706f2543Smrg    if ( cx != NULL ) {
2157706f2543Smrg        const GLenum map = *(GLenum   *)(pc +  0);
2158706f2543Smrg
2159706f2543Smrg        const GLuint compsize = __glGetPixelMapuiv_size(map);
2160706f2543Smrg        GLuint answerBuffer[200];
2161706f2543Smrg        GLuint * values = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2162706f2543Smrg
2163706f2543Smrg        if (values == NULL) return BadAlloc;
2164706f2543Smrg        __glXClearErrorOccured();
2165706f2543Smrg
2166706f2543Smrg        CALL_GetPixelMapuiv( GET_DISPATCH(), (
2167706f2543Smrg            map,
2168706f2543Smrg            values
2169706f2543Smrg        ) );
2170706f2543Smrg        __glXSendReply(cl->client, values, compsize, 4, GL_FALSE, 0);
2171706f2543Smrg        error = Success;
2172706f2543Smrg    }
2173706f2543Smrg
2174706f2543Smrg    return error;
2175706f2543Smrg}
2176706f2543Smrg
2177706f2543Smrgint __glXDisp_GetPixelMapusv(__GLXclientState *cl, GLbyte *pc)
2178706f2543Smrg{
2179706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2180706f2543Smrg    int error;
2181706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2182706f2543Smrg
2183706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2184706f2543Smrg    if ( cx != NULL ) {
2185706f2543Smrg        const GLenum map = *(GLenum   *)(pc +  0);
2186706f2543Smrg
2187706f2543Smrg        const GLuint compsize = __glGetPixelMapusv_size(map);
2188706f2543Smrg        GLushort answerBuffer[200];
2189706f2543Smrg        GLushort * values = __glXGetAnswerBuffer(cl, compsize * 2, answerBuffer, sizeof(answerBuffer), 2);
2190706f2543Smrg
2191706f2543Smrg        if (values == NULL) return BadAlloc;
2192706f2543Smrg        __glXClearErrorOccured();
2193706f2543Smrg
2194706f2543Smrg        CALL_GetPixelMapusv( GET_DISPATCH(), (
2195706f2543Smrg            map,
2196706f2543Smrg            values
2197706f2543Smrg        ) );
2198706f2543Smrg        __glXSendReply(cl->client, values, compsize, 2, GL_FALSE, 0);
2199706f2543Smrg        error = Success;
2200706f2543Smrg    }
2201706f2543Smrg
2202706f2543Smrg    return error;
2203706f2543Smrg}
2204706f2543Smrg
2205706f2543Smrgint __glXDisp_GetTexEnvfv(__GLXclientState *cl, GLbyte *pc)
2206706f2543Smrg{
2207706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2208706f2543Smrg    int error;
2209706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2210706f2543Smrg
2211706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2212706f2543Smrg    if ( cx != NULL ) {
2213706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2214706f2543Smrg
2215706f2543Smrg        const GLuint compsize = __glGetTexEnvfv_size(pname);
2216706f2543Smrg        GLfloat answerBuffer[200];
2217706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2218706f2543Smrg
2219706f2543Smrg        if (params == NULL) return BadAlloc;
2220706f2543Smrg        __glXClearErrorOccured();
2221706f2543Smrg
2222706f2543Smrg        CALL_GetTexEnvfv( GET_DISPATCH(), (
2223706f2543Smrg            *(GLenum   *)(pc +  0),
2224706f2543Smrg            pname,
2225706f2543Smrg            params
2226706f2543Smrg        ) );
2227706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2228706f2543Smrg        error = Success;
2229706f2543Smrg    }
2230706f2543Smrg
2231706f2543Smrg    return error;
2232706f2543Smrg}
2233706f2543Smrg
2234706f2543Smrgint __glXDisp_GetTexEnviv(__GLXclientState *cl, GLbyte *pc)
2235706f2543Smrg{
2236706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2237706f2543Smrg    int error;
2238706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2239706f2543Smrg
2240706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2241706f2543Smrg    if ( cx != NULL ) {
2242706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2243706f2543Smrg
2244706f2543Smrg        const GLuint compsize = __glGetTexEnviv_size(pname);
2245706f2543Smrg        GLint answerBuffer[200];
2246706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2247706f2543Smrg
2248706f2543Smrg        if (params == NULL) return BadAlloc;
2249706f2543Smrg        __glXClearErrorOccured();
2250706f2543Smrg
2251706f2543Smrg        CALL_GetTexEnviv( GET_DISPATCH(), (
2252706f2543Smrg            *(GLenum   *)(pc +  0),
2253706f2543Smrg            pname,
2254706f2543Smrg            params
2255706f2543Smrg        ) );
2256706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2257706f2543Smrg        error = Success;
2258706f2543Smrg    }
2259706f2543Smrg
2260706f2543Smrg    return error;
2261706f2543Smrg}
2262706f2543Smrg
2263706f2543Smrgint __glXDisp_GetTexGendv(__GLXclientState *cl, GLbyte *pc)
2264706f2543Smrg{
2265706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2266706f2543Smrg    int error;
2267706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2268706f2543Smrg
2269706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2270706f2543Smrg    if ( cx != NULL ) {
2271706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2272706f2543Smrg
2273706f2543Smrg        const GLuint compsize = __glGetTexGendv_size(pname);
2274706f2543Smrg        GLdouble answerBuffer[200];
2275706f2543Smrg        GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
2276706f2543Smrg
2277706f2543Smrg        if (params == NULL) return BadAlloc;
2278706f2543Smrg        __glXClearErrorOccured();
2279706f2543Smrg
2280706f2543Smrg        CALL_GetTexGendv( GET_DISPATCH(), (
2281706f2543Smrg            *(GLenum   *)(pc +  0),
2282706f2543Smrg            pname,
2283706f2543Smrg            params
2284706f2543Smrg        ) );
2285706f2543Smrg        __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
2286706f2543Smrg        error = Success;
2287706f2543Smrg    }
2288706f2543Smrg
2289706f2543Smrg    return error;
2290706f2543Smrg}
2291706f2543Smrg
2292706f2543Smrgint __glXDisp_GetTexGenfv(__GLXclientState *cl, GLbyte *pc)
2293706f2543Smrg{
2294706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2295706f2543Smrg    int error;
2296706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2297706f2543Smrg
2298706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2299706f2543Smrg    if ( cx != NULL ) {
2300706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2301706f2543Smrg
2302706f2543Smrg        const GLuint compsize = __glGetTexGenfv_size(pname);
2303706f2543Smrg        GLfloat answerBuffer[200];
2304706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2305706f2543Smrg
2306706f2543Smrg        if (params == NULL) return BadAlloc;
2307706f2543Smrg        __glXClearErrorOccured();
2308706f2543Smrg
2309706f2543Smrg        CALL_GetTexGenfv( GET_DISPATCH(), (
2310706f2543Smrg            *(GLenum   *)(pc +  0),
2311706f2543Smrg            pname,
2312706f2543Smrg            params
2313706f2543Smrg        ) );
2314706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2315706f2543Smrg        error = Success;
2316706f2543Smrg    }
2317706f2543Smrg
2318706f2543Smrg    return error;
2319706f2543Smrg}
2320706f2543Smrg
2321706f2543Smrgint __glXDisp_GetTexGeniv(__GLXclientState *cl, GLbyte *pc)
2322706f2543Smrg{
2323706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2324706f2543Smrg    int error;
2325706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2326706f2543Smrg
2327706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2328706f2543Smrg    if ( cx != NULL ) {
2329706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2330706f2543Smrg
2331706f2543Smrg        const GLuint compsize = __glGetTexGeniv_size(pname);
2332706f2543Smrg        GLint answerBuffer[200];
2333706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2334706f2543Smrg
2335706f2543Smrg        if (params == NULL) return BadAlloc;
2336706f2543Smrg        __glXClearErrorOccured();
2337706f2543Smrg
2338706f2543Smrg        CALL_GetTexGeniv( GET_DISPATCH(), (
2339706f2543Smrg            *(GLenum   *)(pc +  0),
2340706f2543Smrg            pname,
2341706f2543Smrg            params
2342706f2543Smrg        ) );
2343706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2344706f2543Smrg        error = Success;
2345706f2543Smrg    }
2346706f2543Smrg
2347706f2543Smrg    return error;
2348706f2543Smrg}
2349706f2543Smrg
2350706f2543Smrgint __glXDisp_GetTexParameterfv(__GLXclientState *cl, GLbyte *pc)
2351706f2543Smrg{
2352706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2353706f2543Smrg    int error;
2354706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2355706f2543Smrg
2356706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2357706f2543Smrg    if ( cx != NULL ) {
2358706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2359706f2543Smrg
2360706f2543Smrg        const GLuint compsize = __glGetTexParameterfv_size(pname);
2361706f2543Smrg        GLfloat answerBuffer[200];
2362706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2363706f2543Smrg
2364706f2543Smrg        if (params == NULL) return BadAlloc;
2365706f2543Smrg        __glXClearErrorOccured();
2366706f2543Smrg
2367706f2543Smrg        CALL_GetTexParameterfv( GET_DISPATCH(), (
2368706f2543Smrg            *(GLenum   *)(pc +  0),
2369706f2543Smrg            pname,
2370706f2543Smrg            params
2371706f2543Smrg        ) );
2372706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2373706f2543Smrg        error = Success;
2374706f2543Smrg    }
2375706f2543Smrg
2376706f2543Smrg    return error;
2377706f2543Smrg}
2378706f2543Smrg
2379706f2543Smrgint __glXDisp_GetTexParameteriv(__GLXclientState *cl, GLbyte *pc)
2380706f2543Smrg{
2381706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2382706f2543Smrg    int error;
2383706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2384706f2543Smrg
2385706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2386706f2543Smrg    if ( cx != NULL ) {
2387706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
2388706f2543Smrg
2389706f2543Smrg        const GLuint compsize = __glGetTexParameteriv_size(pname);
2390706f2543Smrg        GLint answerBuffer[200];
2391706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2392706f2543Smrg
2393706f2543Smrg        if (params == NULL) return BadAlloc;
2394706f2543Smrg        __glXClearErrorOccured();
2395706f2543Smrg
2396706f2543Smrg        CALL_GetTexParameteriv( GET_DISPATCH(), (
2397706f2543Smrg            *(GLenum   *)(pc +  0),
2398706f2543Smrg            pname,
2399706f2543Smrg            params
2400706f2543Smrg        ) );
2401706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2402706f2543Smrg        error = Success;
2403706f2543Smrg    }
2404706f2543Smrg
2405706f2543Smrg    return error;
2406706f2543Smrg}
2407706f2543Smrg
2408706f2543Smrgint __glXDisp_GetTexLevelParameterfv(__GLXclientState *cl, GLbyte *pc)
2409706f2543Smrg{
2410706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2411706f2543Smrg    int error;
2412706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2413706f2543Smrg
2414706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2415706f2543Smrg    if ( cx != NULL ) {
2416706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  8);
2417706f2543Smrg
2418706f2543Smrg        const GLuint compsize = __glGetTexLevelParameterfv_size(pname);
2419706f2543Smrg        GLfloat answerBuffer[200];
2420706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2421706f2543Smrg
2422706f2543Smrg        if (params == NULL) return BadAlloc;
2423706f2543Smrg        __glXClearErrorOccured();
2424706f2543Smrg
2425706f2543Smrg        CALL_GetTexLevelParameterfv( GET_DISPATCH(), (
2426706f2543Smrg            *(GLenum   *)(pc +  0),
2427706f2543Smrg            *(GLint    *)(pc +  4),
2428706f2543Smrg            pname,
2429706f2543Smrg            params
2430706f2543Smrg        ) );
2431706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2432706f2543Smrg        error = Success;
2433706f2543Smrg    }
2434706f2543Smrg
2435706f2543Smrg    return error;
2436706f2543Smrg}
2437706f2543Smrg
2438706f2543Smrgint __glXDisp_GetTexLevelParameteriv(__GLXclientState *cl, GLbyte *pc)
2439706f2543Smrg{
2440706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2441706f2543Smrg    int error;
2442706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2443706f2543Smrg
2444706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2445706f2543Smrg    if ( cx != NULL ) {
2446706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  8);
2447706f2543Smrg
2448706f2543Smrg        const GLuint compsize = __glGetTexLevelParameteriv_size(pname);
2449706f2543Smrg        GLint answerBuffer[200];
2450706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
2451706f2543Smrg
2452706f2543Smrg        if (params == NULL) return BadAlloc;
2453706f2543Smrg        __glXClearErrorOccured();
2454706f2543Smrg
2455706f2543Smrg        CALL_GetTexLevelParameteriv( GET_DISPATCH(), (
2456706f2543Smrg            *(GLenum   *)(pc +  0),
2457706f2543Smrg            *(GLint    *)(pc +  4),
2458706f2543Smrg            pname,
2459706f2543Smrg            params
2460706f2543Smrg        ) );
2461706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
2462706f2543Smrg        error = Success;
2463706f2543Smrg    }
2464706f2543Smrg
2465706f2543Smrg    return error;
2466706f2543Smrg}
2467706f2543Smrg
2468706f2543Smrgint __glXDisp_IsEnabled(__GLXclientState *cl, GLbyte *pc)
2469706f2543Smrg{
2470706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2471706f2543Smrg    int error;
2472706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2473706f2543Smrg
2474706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2475706f2543Smrg    if ( cx != NULL ) {
2476706f2543Smrg        GLboolean retval;
2477706f2543Smrg        retval = CALL_IsEnabled( GET_DISPATCH(), (
2478706f2543Smrg            *(GLenum   *)(pc +  0)
2479706f2543Smrg        ) );
2480706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
2481706f2543Smrg        error = Success;
2482706f2543Smrg    }
2483706f2543Smrg
2484706f2543Smrg    return error;
2485706f2543Smrg}
2486706f2543Smrg
2487706f2543Smrgint __glXDisp_IsList(__GLXclientState *cl, GLbyte *pc)
2488706f2543Smrg{
2489706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2490706f2543Smrg    int error;
2491706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2492706f2543Smrg
2493706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2494706f2543Smrg    if ( cx != NULL ) {
2495706f2543Smrg        GLboolean retval;
2496706f2543Smrg        retval = CALL_IsList( GET_DISPATCH(), (
2497706f2543Smrg            *(GLuint   *)(pc +  0)
2498706f2543Smrg        ) );
2499706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
2500706f2543Smrg        error = Success;
2501706f2543Smrg    }
2502706f2543Smrg
2503706f2543Smrg    return error;
2504706f2543Smrg}
2505706f2543Smrg
2506706f2543Smrgvoid __glXDisp_DepthRange(GLbyte * pc)
2507706f2543Smrg{
2508706f2543Smrg#ifdef __GLX_ALIGN64
2509706f2543Smrg    if ((unsigned long)(pc) & 7) {
2510706f2543Smrg        (void) memmove(pc-4, pc, 16);
2511706f2543Smrg        pc -= 4;
2512706f2543Smrg    }
2513706f2543Smrg#endif
2514706f2543Smrg
2515706f2543Smrg    CALL_DepthRange( GET_DISPATCH(), (
2516706f2543Smrg        *(GLclampd *)(pc +  0),
2517706f2543Smrg        *(GLclampd *)(pc +  8)
2518706f2543Smrg    ) );
2519706f2543Smrg}
2520706f2543Smrg
2521706f2543Smrgvoid __glXDisp_Frustum(GLbyte * pc)
2522706f2543Smrg{
2523706f2543Smrg#ifdef __GLX_ALIGN64
2524706f2543Smrg    if ((unsigned long)(pc) & 7) {
2525706f2543Smrg        (void) memmove(pc-4, pc, 48);
2526706f2543Smrg        pc -= 4;
2527706f2543Smrg    }
2528706f2543Smrg#endif
2529706f2543Smrg
2530706f2543Smrg    CALL_Frustum( GET_DISPATCH(), (
2531706f2543Smrg        *(GLdouble *)(pc +  0),
2532706f2543Smrg        *(GLdouble *)(pc +  8),
2533706f2543Smrg        *(GLdouble *)(pc + 16),
2534706f2543Smrg        *(GLdouble *)(pc + 24),
2535706f2543Smrg        *(GLdouble *)(pc + 32),
2536706f2543Smrg        *(GLdouble *)(pc + 40)
2537706f2543Smrg    ) );
2538706f2543Smrg}
2539706f2543Smrg
2540706f2543Smrgvoid __glXDisp_LoadIdentity(GLbyte * pc)
2541706f2543Smrg{
2542706f2543Smrg    CALL_LoadIdentity( GET_DISPATCH(), () );
2543706f2543Smrg}
2544706f2543Smrg
2545706f2543Smrgvoid __glXDisp_LoadMatrixf(GLbyte * pc)
2546706f2543Smrg{
2547706f2543Smrg    CALL_LoadMatrixf( GET_DISPATCH(), (
2548706f2543Smrg         (const GLfloat *)(pc +  0)
2549706f2543Smrg    ) );
2550706f2543Smrg}
2551706f2543Smrg
2552706f2543Smrgvoid __glXDisp_LoadMatrixd(GLbyte * pc)
2553706f2543Smrg{
2554706f2543Smrg#ifdef __GLX_ALIGN64
2555706f2543Smrg    if ((unsigned long)(pc) & 7) {
2556706f2543Smrg        (void) memmove(pc-4, pc, 128);
2557706f2543Smrg        pc -= 4;
2558706f2543Smrg    }
2559706f2543Smrg#endif
2560706f2543Smrg
2561706f2543Smrg    CALL_LoadMatrixd( GET_DISPATCH(), (
2562706f2543Smrg         (const GLdouble *)(pc +  0)
2563706f2543Smrg    ) );
2564706f2543Smrg}
2565706f2543Smrg
2566706f2543Smrgvoid __glXDisp_MatrixMode(GLbyte * pc)
2567706f2543Smrg{
2568706f2543Smrg    CALL_MatrixMode( GET_DISPATCH(), (
2569706f2543Smrg        *(GLenum   *)(pc +  0)
2570706f2543Smrg    ) );
2571706f2543Smrg}
2572706f2543Smrg
2573706f2543Smrgvoid __glXDisp_MultMatrixf(GLbyte * pc)
2574706f2543Smrg{
2575706f2543Smrg    CALL_MultMatrixf( GET_DISPATCH(), (
2576706f2543Smrg         (const GLfloat *)(pc +  0)
2577706f2543Smrg    ) );
2578706f2543Smrg}
2579706f2543Smrg
2580706f2543Smrgvoid __glXDisp_MultMatrixd(GLbyte * pc)
2581706f2543Smrg{
2582706f2543Smrg#ifdef __GLX_ALIGN64
2583706f2543Smrg    if ((unsigned long)(pc) & 7) {
2584706f2543Smrg        (void) memmove(pc-4, pc, 128);
2585706f2543Smrg        pc -= 4;
2586706f2543Smrg    }
2587706f2543Smrg#endif
2588706f2543Smrg
2589706f2543Smrg    CALL_MultMatrixd( GET_DISPATCH(), (
2590706f2543Smrg         (const GLdouble *)(pc +  0)
2591706f2543Smrg    ) );
2592706f2543Smrg}
2593706f2543Smrg
2594706f2543Smrgvoid __glXDisp_Ortho(GLbyte * pc)
2595706f2543Smrg{
2596706f2543Smrg#ifdef __GLX_ALIGN64
2597706f2543Smrg    if ((unsigned long)(pc) & 7) {
2598706f2543Smrg        (void) memmove(pc-4, pc, 48);
2599706f2543Smrg        pc -= 4;
2600706f2543Smrg    }
2601706f2543Smrg#endif
2602706f2543Smrg
2603706f2543Smrg    CALL_Ortho( GET_DISPATCH(), (
2604706f2543Smrg        *(GLdouble *)(pc +  0),
2605706f2543Smrg        *(GLdouble *)(pc +  8),
2606706f2543Smrg        *(GLdouble *)(pc + 16),
2607706f2543Smrg        *(GLdouble *)(pc + 24),
2608706f2543Smrg        *(GLdouble *)(pc + 32),
2609706f2543Smrg        *(GLdouble *)(pc + 40)
2610706f2543Smrg    ) );
2611706f2543Smrg}
2612706f2543Smrg
2613706f2543Smrgvoid __glXDisp_PopMatrix(GLbyte * pc)
2614706f2543Smrg{
2615706f2543Smrg    CALL_PopMatrix( GET_DISPATCH(), () );
2616706f2543Smrg}
2617706f2543Smrg
2618706f2543Smrgvoid __glXDisp_PushMatrix(GLbyte * pc)
2619706f2543Smrg{
2620706f2543Smrg    CALL_PushMatrix( GET_DISPATCH(), () );
2621706f2543Smrg}
2622706f2543Smrg
2623706f2543Smrgvoid __glXDisp_Rotated(GLbyte * pc)
2624706f2543Smrg{
2625706f2543Smrg#ifdef __GLX_ALIGN64
2626706f2543Smrg    if ((unsigned long)(pc) & 7) {
2627706f2543Smrg        (void) memmove(pc-4, pc, 32);
2628706f2543Smrg        pc -= 4;
2629706f2543Smrg    }
2630706f2543Smrg#endif
2631706f2543Smrg
2632706f2543Smrg    CALL_Rotated( GET_DISPATCH(), (
2633706f2543Smrg        *(GLdouble *)(pc +  0),
2634706f2543Smrg        *(GLdouble *)(pc +  8),
2635706f2543Smrg        *(GLdouble *)(pc + 16),
2636706f2543Smrg        *(GLdouble *)(pc + 24)
2637706f2543Smrg    ) );
2638706f2543Smrg}
2639706f2543Smrg
2640706f2543Smrgvoid __glXDisp_Rotatef(GLbyte * pc)
2641706f2543Smrg{
2642706f2543Smrg    CALL_Rotatef( GET_DISPATCH(), (
2643706f2543Smrg        *(GLfloat  *)(pc +  0),
2644706f2543Smrg        *(GLfloat  *)(pc +  4),
2645706f2543Smrg        *(GLfloat  *)(pc +  8),
2646706f2543Smrg        *(GLfloat  *)(pc + 12)
2647706f2543Smrg    ) );
2648706f2543Smrg}
2649706f2543Smrg
2650706f2543Smrgvoid __glXDisp_Scaled(GLbyte * pc)
2651706f2543Smrg{
2652706f2543Smrg#ifdef __GLX_ALIGN64
2653706f2543Smrg    if ((unsigned long)(pc) & 7) {
2654706f2543Smrg        (void) memmove(pc-4, pc, 24);
2655706f2543Smrg        pc -= 4;
2656706f2543Smrg    }
2657706f2543Smrg#endif
2658706f2543Smrg
2659706f2543Smrg    CALL_Scaled( GET_DISPATCH(), (
2660706f2543Smrg        *(GLdouble *)(pc +  0),
2661706f2543Smrg        *(GLdouble *)(pc +  8),
2662706f2543Smrg        *(GLdouble *)(pc + 16)
2663706f2543Smrg    ) );
2664706f2543Smrg}
2665706f2543Smrg
2666706f2543Smrgvoid __glXDisp_Scalef(GLbyte * pc)
2667706f2543Smrg{
2668706f2543Smrg    CALL_Scalef( GET_DISPATCH(), (
2669706f2543Smrg        *(GLfloat  *)(pc +  0),
2670706f2543Smrg        *(GLfloat  *)(pc +  4),
2671706f2543Smrg        *(GLfloat  *)(pc +  8)
2672706f2543Smrg    ) );
2673706f2543Smrg}
2674706f2543Smrg
2675706f2543Smrgvoid __glXDisp_Translated(GLbyte * pc)
2676706f2543Smrg{
2677706f2543Smrg#ifdef __GLX_ALIGN64
2678706f2543Smrg    if ((unsigned long)(pc) & 7) {
2679706f2543Smrg        (void) memmove(pc-4, pc, 24);
2680706f2543Smrg        pc -= 4;
2681706f2543Smrg    }
2682706f2543Smrg#endif
2683706f2543Smrg
2684706f2543Smrg    CALL_Translated( GET_DISPATCH(), (
2685706f2543Smrg        *(GLdouble *)(pc +  0),
2686706f2543Smrg        *(GLdouble *)(pc +  8),
2687706f2543Smrg        *(GLdouble *)(pc + 16)
2688706f2543Smrg    ) );
2689706f2543Smrg}
2690706f2543Smrg
2691706f2543Smrgvoid __glXDisp_Translatef(GLbyte * pc)
2692706f2543Smrg{
2693706f2543Smrg    CALL_Translatef( GET_DISPATCH(), (
2694706f2543Smrg        *(GLfloat  *)(pc +  0),
2695706f2543Smrg        *(GLfloat  *)(pc +  4),
2696706f2543Smrg        *(GLfloat  *)(pc +  8)
2697706f2543Smrg    ) );
2698706f2543Smrg}
2699706f2543Smrg
2700706f2543Smrgvoid __glXDisp_Viewport(GLbyte * pc)
2701706f2543Smrg{
2702706f2543Smrg    CALL_Viewport( GET_DISPATCH(), (
2703706f2543Smrg        *(GLint    *)(pc +  0),
2704706f2543Smrg        *(GLint    *)(pc +  4),
2705706f2543Smrg        *(GLsizei  *)(pc +  8),
2706706f2543Smrg        *(GLsizei  *)(pc + 12)
2707706f2543Smrg    ) );
2708706f2543Smrg}
2709706f2543Smrg
2710706f2543Smrgvoid __glXDisp_BindTexture(GLbyte * pc)
2711706f2543Smrg{
2712706f2543Smrg    CALL_BindTexture( GET_DISPATCH(), (
2713706f2543Smrg        *(GLenum   *)(pc +  0),
2714706f2543Smrg        *(GLuint   *)(pc +  4)
2715706f2543Smrg    ) );
2716706f2543Smrg}
2717706f2543Smrg
2718706f2543Smrgvoid __glXDisp_Indexubv(GLbyte * pc)
2719706f2543Smrg{
2720706f2543Smrg    CALL_Indexubv( GET_DISPATCH(), (
2721706f2543Smrg         (const GLubyte *)(pc +  0)
2722706f2543Smrg    ) );
2723706f2543Smrg}
2724706f2543Smrg
2725706f2543Smrgvoid __glXDisp_PolygonOffset(GLbyte * pc)
2726706f2543Smrg{
2727706f2543Smrg    CALL_PolygonOffset( GET_DISPATCH(), (
2728706f2543Smrg        *(GLfloat  *)(pc +  0),
2729706f2543Smrg        *(GLfloat  *)(pc +  4)
2730706f2543Smrg    ) );
2731706f2543Smrg}
2732706f2543Smrg
2733706f2543Smrgint __glXDisp_AreTexturesResident(__GLXclientState *cl, GLbyte *pc)
2734706f2543Smrg{
2735706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2736706f2543Smrg    int error;
2737706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2738706f2543Smrg
2739706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2740706f2543Smrg    if ( cx != NULL ) {
2741706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
2742706f2543Smrg
2743706f2543Smrg        GLboolean retval;
2744706f2543Smrg        GLboolean answerBuffer[200];
2745706f2543Smrg        GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
2746706f2543Smrg        retval = CALL_AreTexturesResident( GET_DISPATCH(), (
2747706f2543Smrg            n,
2748706f2543Smrg             (const GLuint *)(pc +  4),
2749706f2543Smrg            residences
2750706f2543Smrg        ) );
2751706f2543Smrg        __glXSendReply(cl->client, residences, n, 1, GL_TRUE, retval);
2752706f2543Smrg        error = Success;
2753706f2543Smrg    }
2754706f2543Smrg
2755706f2543Smrg    return error;
2756706f2543Smrg}
2757706f2543Smrg
2758706f2543Smrgint __glXDisp_AreTexturesResidentEXT(__GLXclientState *cl, GLbyte *pc)
2759706f2543Smrg{
2760706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
2761706f2543Smrg    int error;
2762706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2763706f2543Smrg
2764706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
2765706f2543Smrg    if ( cx != NULL ) {
2766706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
2767706f2543Smrg
2768706f2543Smrg        GLboolean retval;
2769706f2543Smrg        GLboolean answerBuffer[200];
2770706f2543Smrg        GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
2771706f2543Smrg        retval = CALL_AreTexturesResident( GET_DISPATCH(), (
2772706f2543Smrg            n,
2773706f2543Smrg             (const GLuint *)(pc +  4),
2774706f2543Smrg            residences
2775706f2543Smrg        ) );
2776706f2543Smrg        __glXSendReply(cl->client, residences, n, 1, GL_TRUE, retval);
2777706f2543Smrg        error = Success;
2778706f2543Smrg    }
2779706f2543Smrg
2780706f2543Smrg    return error;
2781706f2543Smrg}
2782706f2543Smrg
2783706f2543Smrgvoid __glXDisp_CopyTexImage1D(GLbyte * pc)
2784706f2543Smrg{
2785706f2543Smrg    CALL_CopyTexImage1D( GET_DISPATCH(), (
2786706f2543Smrg        *(GLenum   *)(pc +  0),
2787706f2543Smrg        *(GLint    *)(pc +  4),
2788706f2543Smrg        *(GLenum   *)(pc +  8),
2789706f2543Smrg        *(GLint    *)(pc + 12),
2790706f2543Smrg        *(GLint    *)(pc + 16),
2791706f2543Smrg        *(GLsizei  *)(pc + 20),
2792706f2543Smrg        *(GLint    *)(pc + 24)
2793706f2543Smrg    ) );
2794706f2543Smrg}
2795706f2543Smrg
2796706f2543Smrgvoid __glXDisp_CopyTexImage2D(GLbyte * pc)
2797706f2543Smrg{
2798706f2543Smrg    CALL_CopyTexImage2D( GET_DISPATCH(), (
2799706f2543Smrg        *(GLenum   *)(pc +  0),
2800706f2543Smrg        *(GLint    *)(pc +  4),
2801706f2543Smrg        *(GLenum   *)(pc +  8),
2802706f2543Smrg        *(GLint    *)(pc + 12),
2803706f2543Smrg        *(GLint    *)(pc + 16),
2804706f2543Smrg        *(GLsizei  *)(pc + 20),
2805706f2543Smrg        *(GLsizei  *)(pc + 24),
2806706f2543Smrg        *(GLint    *)(pc + 28)
2807706f2543Smrg    ) );
2808706f2543Smrg}
2809706f2543Smrg
2810706f2543Smrgvoid __glXDisp_CopyTexSubImage1D(GLbyte * pc)
2811706f2543Smrg{
2812706f2543Smrg    CALL_CopyTexSubImage1D( GET_DISPATCH(), (
2813706f2543Smrg        *(GLenum   *)(pc +  0),
2814706f2543Smrg        *(GLint    *)(pc +  4),
2815706f2543Smrg        *(GLint    *)(pc +  8),
2816706f2543Smrg        *(GLint    *)(pc + 12),
2817706f2543Smrg        *(GLint    *)(pc + 16),
2818706f2543Smrg        *(GLsizei  *)(pc + 20)
2819706f2543Smrg    ) );
2820706f2543Smrg}
2821706f2543Smrg
2822706f2543Smrgvoid __glXDisp_CopyTexSubImage2D(GLbyte * pc)
2823706f2543Smrg{
2824706f2543Smrg    CALL_CopyTexSubImage2D( GET_DISPATCH(), (
2825706f2543Smrg        *(GLenum   *)(pc +  0),
2826706f2543Smrg        *(GLint    *)(pc +  4),
2827706f2543Smrg        *(GLint    *)(pc +  8),
2828706f2543Smrg        *(GLint    *)(pc + 12),
2829706f2543Smrg        *(GLint    *)(pc + 16),
2830706f2543Smrg        *(GLint    *)(pc + 20),
2831706f2543Smrg        *(GLsizei  *)(pc + 24),
2832706f2543Smrg        *(GLsizei  *)(pc + 28)
2833706f2543Smrg    ) );
2834706f2543Smrg}
2835706f2543Smrg
2836706f2543Smrgint __glXDisp_DeleteTextures(__GLXclientState *cl, GLbyte *pc)
2837706f2543Smrg{
2838706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2839706f2543Smrg    int error;
2840706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2841706f2543Smrg
2842706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2843706f2543Smrg    if ( cx != NULL ) {
2844706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
2845706f2543Smrg
2846706f2543Smrg        CALL_DeleteTextures( GET_DISPATCH(), (
2847706f2543Smrg            n,
2848706f2543Smrg             (const GLuint *)(pc +  4)
2849706f2543Smrg        ) );
2850706f2543Smrg        error = Success;
2851706f2543Smrg    }
2852706f2543Smrg
2853706f2543Smrg    return error;
2854706f2543Smrg}
2855706f2543Smrg
2856706f2543Smrgint __glXDisp_DeleteTexturesEXT(__GLXclientState *cl, GLbyte *pc)
2857706f2543Smrg{
2858706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
2859706f2543Smrg    int error;
2860706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2861706f2543Smrg
2862706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
2863706f2543Smrg    if ( cx != NULL ) {
2864706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
2865706f2543Smrg
2866706f2543Smrg        CALL_DeleteTextures( GET_DISPATCH(), (
2867706f2543Smrg            n,
2868706f2543Smrg             (const GLuint *)(pc +  4)
2869706f2543Smrg        ) );
2870706f2543Smrg        error = Success;
2871706f2543Smrg    }
2872706f2543Smrg
2873706f2543Smrg    return error;
2874706f2543Smrg}
2875706f2543Smrg
2876706f2543Smrgint __glXDisp_GenTextures(__GLXclientState *cl, GLbyte *pc)
2877706f2543Smrg{
2878706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2879706f2543Smrg    int error;
2880706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2881706f2543Smrg
2882706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2883706f2543Smrg    if ( cx != NULL ) {
2884706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
2885706f2543Smrg
2886706f2543Smrg        GLuint answerBuffer[200];
2887706f2543Smrg        GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
2888706f2543Smrg        CALL_GenTextures( GET_DISPATCH(), (
2889706f2543Smrg            n,
2890706f2543Smrg            textures
2891706f2543Smrg        ) );
2892706f2543Smrg        __glXSendReply(cl->client, textures, n, 4, GL_TRUE, 0);
2893706f2543Smrg        error = Success;
2894706f2543Smrg    }
2895706f2543Smrg
2896706f2543Smrg    return error;
2897706f2543Smrg}
2898706f2543Smrg
2899706f2543Smrgint __glXDisp_GenTexturesEXT(__GLXclientState *cl, GLbyte *pc)
2900706f2543Smrg{
2901706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
2902706f2543Smrg    int error;
2903706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2904706f2543Smrg
2905706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
2906706f2543Smrg    if ( cx != NULL ) {
2907706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
2908706f2543Smrg
2909706f2543Smrg        GLuint answerBuffer[200];
2910706f2543Smrg        GLuint * textures = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
2911706f2543Smrg        CALL_GenTextures( GET_DISPATCH(), (
2912706f2543Smrg            n,
2913706f2543Smrg            textures
2914706f2543Smrg        ) );
2915706f2543Smrg        __glXSendReply(cl->client, textures, n, 4, GL_TRUE, 0);
2916706f2543Smrg        error = Success;
2917706f2543Smrg    }
2918706f2543Smrg
2919706f2543Smrg    return error;
2920706f2543Smrg}
2921706f2543Smrg
2922706f2543Smrgint __glXDisp_IsTexture(__GLXclientState *cl, GLbyte *pc)
2923706f2543Smrg{
2924706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
2925706f2543Smrg    int error;
2926706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2927706f2543Smrg
2928706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
2929706f2543Smrg    if ( cx != NULL ) {
2930706f2543Smrg        GLboolean retval;
2931706f2543Smrg        retval = CALL_IsTexture( GET_DISPATCH(), (
2932706f2543Smrg            *(GLuint   *)(pc +  0)
2933706f2543Smrg        ) );
2934706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
2935706f2543Smrg        error = Success;
2936706f2543Smrg    }
2937706f2543Smrg
2938706f2543Smrg    return error;
2939706f2543Smrg}
2940706f2543Smrg
2941706f2543Smrgint __glXDisp_IsTextureEXT(__GLXclientState *cl, GLbyte *pc)
2942706f2543Smrg{
2943706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
2944706f2543Smrg    int error;
2945706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
2946706f2543Smrg
2947706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
2948706f2543Smrg    if ( cx != NULL ) {
2949706f2543Smrg        GLboolean retval;
2950706f2543Smrg        retval = CALL_IsTexture( GET_DISPATCH(), (
2951706f2543Smrg            *(GLuint   *)(pc +  0)
2952706f2543Smrg        ) );
2953706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
2954706f2543Smrg        error = Success;
2955706f2543Smrg    }
2956706f2543Smrg
2957706f2543Smrg    return error;
2958706f2543Smrg}
2959706f2543Smrg
2960706f2543Smrgvoid __glXDisp_PrioritizeTextures(GLbyte * pc)
2961706f2543Smrg{
2962706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  0);
2963706f2543Smrg
2964706f2543Smrg    CALL_PrioritizeTextures( GET_DISPATCH(), (
2965706f2543Smrg        n,
2966706f2543Smrg         (const GLuint *)(pc +  4),
2967706f2543Smrg         (const GLclampf *)(pc +  4)
2968706f2543Smrg    ) );
2969706f2543Smrg}
2970706f2543Smrg
2971706f2543Smrgvoid __glXDisp_TexSubImage1D(GLbyte * pc)
2972706f2543Smrg{
2973706f2543Smrg    const GLvoid * const pixels = (const GLvoid *) (pc + 56);
2974706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
2975706f2543Smrg
2976706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
2977706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
2978706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
2979706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
2980706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
2981706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
2982706f2543Smrg
2983706f2543Smrg    CALL_TexSubImage1D( GET_DISPATCH(), (
2984706f2543Smrg        *(GLenum   *)(pc + 20),
2985706f2543Smrg        *(GLint    *)(pc + 24),
2986706f2543Smrg        *(GLint    *)(pc + 28),
2987706f2543Smrg        *(GLsizei  *)(pc + 36),
2988706f2543Smrg        *(GLenum   *)(pc + 44),
2989706f2543Smrg        *(GLenum   *)(pc + 48),
2990706f2543Smrg        pixels
2991706f2543Smrg    ) );
2992706f2543Smrg}
2993706f2543Smrg
2994706f2543Smrgvoid __glXDisp_TexSubImage2D(GLbyte * pc)
2995706f2543Smrg{
2996706f2543Smrg    const GLvoid * const pixels = (const GLvoid *) (pc + 56);
2997706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
2998706f2543Smrg
2999706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
3000706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
3001706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
3002706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
3003706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
3004706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
3005706f2543Smrg
3006706f2543Smrg    CALL_TexSubImage2D( GET_DISPATCH(), (
3007706f2543Smrg        *(GLenum   *)(pc + 20),
3008706f2543Smrg        *(GLint    *)(pc + 24),
3009706f2543Smrg        *(GLint    *)(pc + 28),
3010706f2543Smrg        *(GLint    *)(pc + 32),
3011706f2543Smrg        *(GLsizei  *)(pc + 36),
3012706f2543Smrg        *(GLsizei  *)(pc + 40),
3013706f2543Smrg        *(GLenum   *)(pc + 44),
3014706f2543Smrg        *(GLenum   *)(pc + 48),
3015706f2543Smrg        pixels
3016706f2543Smrg    ) );
3017706f2543Smrg}
3018706f2543Smrg
3019706f2543Smrgvoid __glXDisp_BlendColor(GLbyte * pc)
3020706f2543Smrg{
3021706f2543Smrg    CALL_BlendColor( GET_DISPATCH(), (
3022706f2543Smrg        *(GLclampf *)(pc +  0),
3023706f2543Smrg        *(GLclampf *)(pc +  4),
3024706f2543Smrg        *(GLclampf *)(pc +  8),
3025706f2543Smrg        *(GLclampf *)(pc + 12)
3026706f2543Smrg    ) );
3027706f2543Smrg}
3028706f2543Smrg
3029706f2543Smrgvoid __glXDisp_BlendEquation(GLbyte * pc)
3030706f2543Smrg{
3031706f2543Smrg    CALL_BlendEquation( GET_DISPATCH(), (
3032706f2543Smrg        *(GLenum   *)(pc +  0)
3033706f2543Smrg    ) );
3034706f2543Smrg}
3035706f2543Smrg
3036706f2543Smrgvoid __glXDisp_ColorTable(GLbyte * pc)
3037706f2543Smrg{
3038706f2543Smrg    const GLvoid * const table = (const GLvoid *) (pc + 40);
3039706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
3040706f2543Smrg
3041706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
3042706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
3043706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
3044706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
3045706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
3046706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
3047706f2543Smrg
3048706f2543Smrg    CALL_ColorTable( GET_DISPATCH(), (
3049706f2543Smrg        *(GLenum   *)(pc + 20),
3050706f2543Smrg        *(GLenum   *)(pc + 24),
3051706f2543Smrg        *(GLsizei  *)(pc + 28),
3052706f2543Smrg        *(GLenum   *)(pc + 32),
3053706f2543Smrg        *(GLenum   *)(pc + 36),
3054706f2543Smrg        table
3055706f2543Smrg    ) );
3056706f2543Smrg}
3057706f2543Smrg
3058706f2543Smrgvoid __glXDisp_ColorTableParameterfv(GLbyte * pc)
3059706f2543Smrg{
3060706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
3061706f2543Smrg    const GLfloat * params;
3062706f2543Smrg
3063706f2543Smrg    params = (const GLfloat *) (pc + 8);
3064706f2543Smrg
3065706f2543Smrg    CALL_ColorTableParameterfv( GET_DISPATCH(), (
3066706f2543Smrg        *(GLenum   *)(pc +  0),
3067706f2543Smrg        pname,
3068706f2543Smrg        params
3069706f2543Smrg    ) );
3070706f2543Smrg}
3071706f2543Smrg
3072706f2543Smrgvoid __glXDisp_ColorTableParameteriv(GLbyte * pc)
3073706f2543Smrg{
3074706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
3075706f2543Smrg    const GLint * params;
3076706f2543Smrg
3077706f2543Smrg    params = (const GLint *) (pc + 8);
3078706f2543Smrg
3079706f2543Smrg    CALL_ColorTableParameteriv( GET_DISPATCH(), (
3080706f2543Smrg        *(GLenum   *)(pc +  0),
3081706f2543Smrg        pname,
3082706f2543Smrg        params
3083706f2543Smrg    ) );
3084706f2543Smrg}
3085706f2543Smrg
3086706f2543Smrgvoid __glXDisp_CopyColorTable(GLbyte * pc)
3087706f2543Smrg{
3088706f2543Smrg    CALL_CopyColorTable( GET_DISPATCH(), (
3089706f2543Smrg        *(GLenum   *)(pc +  0),
3090706f2543Smrg        *(GLenum   *)(pc +  4),
3091706f2543Smrg        *(GLint    *)(pc +  8),
3092706f2543Smrg        *(GLint    *)(pc + 12),
3093706f2543Smrg        *(GLsizei  *)(pc + 16)
3094706f2543Smrg    ) );
3095706f2543Smrg}
3096706f2543Smrg
3097706f2543Smrgint __glXDisp_GetColorTableParameterfv(__GLXclientState *cl, GLbyte *pc)
3098706f2543Smrg{
3099706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3100706f2543Smrg    int error;
3101706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3102706f2543Smrg
3103706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3104706f2543Smrg    if ( cx != NULL ) {
3105706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3106706f2543Smrg
3107706f2543Smrg        const GLuint compsize = __glGetColorTableParameterfv_size(pname);
3108706f2543Smrg        GLfloat answerBuffer[200];
3109706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3110706f2543Smrg
3111706f2543Smrg        if (params == NULL) return BadAlloc;
3112706f2543Smrg        __glXClearErrorOccured();
3113706f2543Smrg
3114706f2543Smrg        CALL_GetColorTableParameterfv( GET_DISPATCH(), (
3115706f2543Smrg            *(GLenum   *)(pc +  0),
3116706f2543Smrg            pname,
3117706f2543Smrg            params
3118706f2543Smrg        ) );
3119706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3120706f2543Smrg        error = Success;
3121706f2543Smrg    }
3122706f2543Smrg
3123706f2543Smrg    return error;
3124706f2543Smrg}
3125706f2543Smrg
3126706f2543Smrgint __glXDisp_GetColorTableParameterfvSGI(__GLXclientState *cl, GLbyte *pc)
3127706f2543Smrg{
3128706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3129706f2543Smrg    int error;
3130706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3131706f2543Smrg
3132706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3133706f2543Smrg    if ( cx != NULL ) {
3134706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3135706f2543Smrg
3136706f2543Smrg        const GLuint compsize = __glGetColorTableParameterfv_size(pname);
3137706f2543Smrg        GLfloat answerBuffer[200];
3138706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3139706f2543Smrg
3140706f2543Smrg        if (params == NULL) return BadAlloc;
3141706f2543Smrg        __glXClearErrorOccured();
3142706f2543Smrg
3143706f2543Smrg        CALL_GetColorTableParameterfv( GET_DISPATCH(), (
3144706f2543Smrg            *(GLenum   *)(pc +  0),
3145706f2543Smrg            pname,
3146706f2543Smrg            params
3147706f2543Smrg        ) );
3148706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3149706f2543Smrg        error = Success;
3150706f2543Smrg    }
3151706f2543Smrg
3152706f2543Smrg    return error;
3153706f2543Smrg}
3154706f2543Smrg
3155706f2543Smrgint __glXDisp_GetColorTableParameteriv(__GLXclientState *cl, GLbyte *pc)
3156706f2543Smrg{
3157706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3158706f2543Smrg    int error;
3159706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3160706f2543Smrg
3161706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3162706f2543Smrg    if ( cx != NULL ) {
3163706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3164706f2543Smrg
3165706f2543Smrg        const GLuint compsize = __glGetColorTableParameteriv_size(pname);
3166706f2543Smrg        GLint answerBuffer[200];
3167706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3168706f2543Smrg
3169706f2543Smrg        if (params == NULL) return BadAlloc;
3170706f2543Smrg        __glXClearErrorOccured();
3171706f2543Smrg
3172706f2543Smrg        CALL_GetColorTableParameteriv( GET_DISPATCH(), (
3173706f2543Smrg            *(GLenum   *)(pc +  0),
3174706f2543Smrg            pname,
3175706f2543Smrg            params
3176706f2543Smrg        ) );
3177706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3178706f2543Smrg        error = Success;
3179706f2543Smrg    }
3180706f2543Smrg
3181706f2543Smrg    return error;
3182706f2543Smrg}
3183706f2543Smrg
3184706f2543Smrgint __glXDisp_GetColorTableParameterivSGI(__GLXclientState *cl, GLbyte *pc)
3185706f2543Smrg{
3186706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3187706f2543Smrg    int error;
3188706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3189706f2543Smrg
3190706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3191706f2543Smrg    if ( cx != NULL ) {
3192706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3193706f2543Smrg
3194706f2543Smrg        const GLuint compsize = __glGetColorTableParameteriv_size(pname);
3195706f2543Smrg        GLint answerBuffer[200];
3196706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3197706f2543Smrg
3198706f2543Smrg        if (params == NULL) return BadAlloc;
3199706f2543Smrg        __glXClearErrorOccured();
3200706f2543Smrg
3201706f2543Smrg        CALL_GetColorTableParameteriv( GET_DISPATCH(), (
3202706f2543Smrg            *(GLenum   *)(pc +  0),
3203706f2543Smrg            pname,
3204706f2543Smrg            params
3205706f2543Smrg        ) );
3206706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3207706f2543Smrg        error = Success;
3208706f2543Smrg    }
3209706f2543Smrg
3210706f2543Smrg    return error;
3211706f2543Smrg}
3212706f2543Smrg
3213706f2543Smrgvoid __glXDisp_ColorSubTable(GLbyte * pc)
3214706f2543Smrg{
3215706f2543Smrg    const GLvoid * const data = (const GLvoid *) (pc + 40);
3216706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
3217706f2543Smrg
3218706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
3219706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
3220706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
3221706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
3222706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
3223706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
3224706f2543Smrg
3225706f2543Smrg    CALL_ColorSubTable( GET_DISPATCH(), (
3226706f2543Smrg        *(GLenum   *)(pc + 20),
3227706f2543Smrg        *(GLsizei  *)(pc + 24),
3228706f2543Smrg        *(GLsizei  *)(pc + 28),
3229706f2543Smrg        *(GLenum   *)(pc + 32),
3230706f2543Smrg        *(GLenum   *)(pc + 36),
3231706f2543Smrg        data
3232706f2543Smrg    ) );
3233706f2543Smrg}
3234706f2543Smrg
3235706f2543Smrgvoid __glXDisp_CopyColorSubTable(GLbyte * pc)
3236706f2543Smrg{
3237706f2543Smrg    CALL_CopyColorSubTable( GET_DISPATCH(), (
3238706f2543Smrg        *(GLenum   *)(pc +  0),
3239706f2543Smrg        *(GLsizei  *)(pc +  4),
3240706f2543Smrg        *(GLint    *)(pc +  8),
3241706f2543Smrg        *(GLint    *)(pc + 12),
3242706f2543Smrg        *(GLsizei  *)(pc + 16)
3243706f2543Smrg    ) );
3244706f2543Smrg}
3245706f2543Smrg
3246706f2543Smrgvoid __glXDisp_ConvolutionFilter1D(GLbyte * pc)
3247706f2543Smrg{
3248706f2543Smrg    const GLvoid * const image = (const GLvoid *) (pc + 44);
3249706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
3250706f2543Smrg
3251706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
3252706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
3253706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
3254706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
3255706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
3256706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
3257706f2543Smrg
3258706f2543Smrg    CALL_ConvolutionFilter1D( GET_DISPATCH(), (
3259706f2543Smrg        *(GLenum   *)(pc + 20),
3260706f2543Smrg        *(GLenum   *)(pc + 24),
3261706f2543Smrg        *(GLsizei  *)(pc + 28),
3262706f2543Smrg        *(GLenum   *)(pc + 36),
3263706f2543Smrg        *(GLenum   *)(pc + 40),
3264706f2543Smrg        image
3265706f2543Smrg    ) );
3266706f2543Smrg}
3267706f2543Smrg
3268706f2543Smrgvoid __glXDisp_ConvolutionFilter2D(GLbyte * pc)
3269706f2543Smrg{
3270706f2543Smrg    const GLvoid * const image = (const GLvoid *) (pc + 44);
3271706f2543Smrg    __GLXpixelHeader * const hdr = (__GLXpixelHeader *)(pc);
3272706f2543Smrg
3273706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
3274706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
3275706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
3276706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
3277706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
3278706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
3279706f2543Smrg
3280706f2543Smrg    CALL_ConvolutionFilter2D( GET_DISPATCH(), (
3281706f2543Smrg        *(GLenum   *)(pc + 20),
3282706f2543Smrg        *(GLenum   *)(pc + 24),
3283706f2543Smrg        *(GLsizei  *)(pc + 28),
3284706f2543Smrg        *(GLsizei  *)(pc + 32),
3285706f2543Smrg        *(GLenum   *)(pc + 36),
3286706f2543Smrg        *(GLenum   *)(pc + 40),
3287706f2543Smrg        image
3288706f2543Smrg    ) );
3289706f2543Smrg}
3290706f2543Smrg
3291706f2543Smrgvoid __glXDisp_ConvolutionParameterf(GLbyte * pc)
3292706f2543Smrg{
3293706f2543Smrg    CALL_ConvolutionParameterf( GET_DISPATCH(), (
3294706f2543Smrg        *(GLenum   *)(pc +  0),
3295706f2543Smrg        *(GLenum   *)(pc +  4),
3296706f2543Smrg        *(GLfloat  *)(pc +  8)
3297706f2543Smrg    ) );
3298706f2543Smrg}
3299706f2543Smrg
3300706f2543Smrgvoid __glXDisp_ConvolutionParameterfv(GLbyte * pc)
3301706f2543Smrg{
3302706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
3303706f2543Smrg    const GLfloat * params;
3304706f2543Smrg
3305706f2543Smrg    params = (const GLfloat *) (pc + 8);
3306706f2543Smrg
3307706f2543Smrg    CALL_ConvolutionParameterfv( GET_DISPATCH(), (
3308706f2543Smrg        *(GLenum   *)(pc +  0),
3309706f2543Smrg        pname,
3310706f2543Smrg        params
3311706f2543Smrg    ) );
3312706f2543Smrg}
3313706f2543Smrg
3314706f2543Smrgvoid __glXDisp_ConvolutionParameteri(GLbyte * pc)
3315706f2543Smrg{
3316706f2543Smrg    CALL_ConvolutionParameteri( GET_DISPATCH(), (
3317706f2543Smrg        *(GLenum   *)(pc +  0),
3318706f2543Smrg        *(GLenum   *)(pc +  4),
3319706f2543Smrg        *(GLint    *)(pc +  8)
3320706f2543Smrg    ) );
3321706f2543Smrg}
3322706f2543Smrg
3323706f2543Smrgvoid __glXDisp_ConvolutionParameteriv(GLbyte * pc)
3324706f2543Smrg{
3325706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  4);
3326706f2543Smrg    const GLint * params;
3327706f2543Smrg
3328706f2543Smrg    params = (const GLint *) (pc + 8);
3329706f2543Smrg
3330706f2543Smrg    CALL_ConvolutionParameteriv( GET_DISPATCH(), (
3331706f2543Smrg        *(GLenum   *)(pc +  0),
3332706f2543Smrg        pname,
3333706f2543Smrg        params
3334706f2543Smrg    ) );
3335706f2543Smrg}
3336706f2543Smrg
3337706f2543Smrgvoid __glXDisp_CopyConvolutionFilter1D(GLbyte * pc)
3338706f2543Smrg{
3339706f2543Smrg    CALL_CopyConvolutionFilter1D( GET_DISPATCH(), (
3340706f2543Smrg        *(GLenum   *)(pc +  0),
3341706f2543Smrg        *(GLenum   *)(pc +  4),
3342706f2543Smrg        *(GLint    *)(pc +  8),
3343706f2543Smrg        *(GLint    *)(pc + 12),
3344706f2543Smrg        *(GLsizei  *)(pc + 16)
3345706f2543Smrg    ) );
3346706f2543Smrg}
3347706f2543Smrg
3348706f2543Smrgvoid __glXDisp_CopyConvolutionFilter2D(GLbyte * pc)
3349706f2543Smrg{
3350706f2543Smrg    CALL_CopyConvolutionFilter2D( GET_DISPATCH(), (
3351706f2543Smrg        *(GLenum   *)(pc +  0),
3352706f2543Smrg        *(GLenum   *)(pc +  4),
3353706f2543Smrg        *(GLint    *)(pc +  8),
3354706f2543Smrg        *(GLint    *)(pc + 12),
3355706f2543Smrg        *(GLsizei  *)(pc + 16),
3356706f2543Smrg        *(GLsizei  *)(pc + 20)
3357706f2543Smrg    ) );
3358706f2543Smrg}
3359706f2543Smrg
3360706f2543Smrgint __glXDisp_GetConvolutionParameterfv(__GLXclientState *cl, GLbyte *pc)
3361706f2543Smrg{
3362706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3363706f2543Smrg    int error;
3364706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3365706f2543Smrg
3366706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3367706f2543Smrg    if ( cx != NULL ) {
3368706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3369706f2543Smrg
3370706f2543Smrg        const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
3371706f2543Smrg        GLfloat answerBuffer[200];
3372706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3373706f2543Smrg
3374706f2543Smrg        if (params == NULL) return BadAlloc;
3375706f2543Smrg        __glXClearErrorOccured();
3376706f2543Smrg
3377706f2543Smrg        CALL_GetConvolutionParameterfv( GET_DISPATCH(), (
3378706f2543Smrg            *(GLenum   *)(pc +  0),
3379706f2543Smrg            pname,
3380706f2543Smrg            params
3381706f2543Smrg        ) );
3382706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3383706f2543Smrg        error = Success;
3384706f2543Smrg    }
3385706f2543Smrg
3386706f2543Smrg    return error;
3387706f2543Smrg}
3388706f2543Smrg
3389706f2543Smrgint __glXDisp_GetConvolutionParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
3390706f2543Smrg{
3391706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3392706f2543Smrg    int error;
3393706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3394706f2543Smrg
3395706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3396706f2543Smrg    if ( cx != NULL ) {
3397706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3398706f2543Smrg
3399706f2543Smrg        const GLuint compsize = __glGetConvolutionParameterfv_size(pname);
3400706f2543Smrg        GLfloat answerBuffer[200];
3401706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3402706f2543Smrg
3403706f2543Smrg        if (params == NULL) return BadAlloc;
3404706f2543Smrg        __glXClearErrorOccured();
3405706f2543Smrg
3406706f2543Smrg        CALL_GetConvolutionParameterfv( GET_DISPATCH(), (
3407706f2543Smrg            *(GLenum   *)(pc +  0),
3408706f2543Smrg            pname,
3409706f2543Smrg            params
3410706f2543Smrg        ) );
3411706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3412706f2543Smrg        error = Success;
3413706f2543Smrg    }
3414706f2543Smrg
3415706f2543Smrg    return error;
3416706f2543Smrg}
3417706f2543Smrg
3418706f2543Smrgint __glXDisp_GetConvolutionParameteriv(__GLXclientState *cl, GLbyte *pc)
3419706f2543Smrg{
3420706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3421706f2543Smrg    int error;
3422706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3423706f2543Smrg
3424706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3425706f2543Smrg    if ( cx != NULL ) {
3426706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3427706f2543Smrg
3428706f2543Smrg        const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
3429706f2543Smrg        GLint answerBuffer[200];
3430706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3431706f2543Smrg
3432706f2543Smrg        if (params == NULL) return BadAlloc;
3433706f2543Smrg        __glXClearErrorOccured();
3434706f2543Smrg
3435706f2543Smrg        CALL_GetConvolutionParameteriv( GET_DISPATCH(), (
3436706f2543Smrg            *(GLenum   *)(pc +  0),
3437706f2543Smrg            pname,
3438706f2543Smrg            params
3439706f2543Smrg        ) );
3440706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3441706f2543Smrg        error = Success;
3442706f2543Smrg    }
3443706f2543Smrg
3444706f2543Smrg    return error;
3445706f2543Smrg}
3446706f2543Smrg
3447706f2543Smrgint __glXDisp_GetConvolutionParameterivEXT(__GLXclientState *cl, GLbyte *pc)
3448706f2543Smrg{
3449706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3450706f2543Smrg    int error;
3451706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3452706f2543Smrg
3453706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3454706f2543Smrg    if ( cx != NULL ) {
3455706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3456706f2543Smrg
3457706f2543Smrg        const GLuint compsize = __glGetConvolutionParameteriv_size(pname);
3458706f2543Smrg        GLint answerBuffer[200];
3459706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3460706f2543Smrg
3461706f2543Smrg        if (params == NULL) return BadAlloc;
3462706f2543Smrg        __glXClearErrorOccured();
3463706f2543Smrg
3464706f2543Smrg        CALL_GetConvolutionParameteriv( GET_DISPATCH(), (
3465706f2543Smrg            *(GLenum   *)(pc +  0),
3466706f2543Smrg            pname,
3467706f2543Smrg            params
3468706f2543Smrg        ) );
3469706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3470706f2543Smrg        error = Success;
3471706f2543Smrg    }
3472706f2543Smrg
3473706f2543Smrg    return error;
3474706f2543Smrg}
3475706f2543Smrg
3476706f2543Smrgint __glXDisp_GetHistogramParameterfv(__GLXclientState *cl, GLbyte *pc)
3477706f2543Smrg{
3478706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3479706f2543Smrg    int error;
3480706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3481706f2543Smrg
3482706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3483706f2543Smrg    if ( cx != NULL ) {
3484706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3485706f2543Smrg
3486706f2543Smrg        const GLuint compsize = __glGetHistogramParameterfv_size(pname);
3487706f2543Smrg        GLfloat answerBuffer[200];
3488706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3489706f2543Smrg
3490706f2543Smrg        if (params == NULL) return BadAlloc;
3491706f2543Smrg        __glXClearErrorOccured();
3492706f2543Smrg
3493706f2543Smrg        CALL_GetHistogramParameterfv( GET_DISPATCH(), (
3494706f2543Smrg            *(GLenum   *)(pc +  0),
3495706f2543Smrg            pname,
3496706f2543Smrg            params
3497706f2543Smrg        ) );
3498706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3499706f2543Smrg        error = Success;
3500706f2543Smrg    }
3501706f2543Smrg
3502706f2543Smrg    return error;
3503706f2543Smrg}
3504706f2543Smrg
3505706f2543Smrgint __glXDisp_GetHistogramParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
3506706f2543Smrg{
3507706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3508706f2543Smrg    int error;
3509706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3510706f2543Smrg
3511706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3512706f2543Smrg    if ( cx != NULL ) {
3513706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3514706f2543Smrg
3515706f2543Smrg        const GLuint compsize = __glGetHistogramParameterfv_size(pname);
3516706f2543Smrg        GLfloat answerBuffer[200];
3517706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3518706f2543Smrg
3519706f2543Smrg        if (params == NULL) return BadAlloc;
3520706f2543Smrg        __glXClearErrorOccured();
3521706f2543Smrg
3522706f2543Smrg        CALL_GetHistogramParameterfv( GET_DISPATCH(), (
3523706f2543Smrg            *(GLenum   *)(pc +  0),
3524706f2543Smrg            pname,
3525706f2543Smrg            params
3526706f2543Smrg        ) );
3527706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3528706f2543Smrg        error = Success;
3529706f2543Smrg    }
3530706f2543Smrg
3531706f2543Smrg    return error;
3532706f2543Smrg}
3533706f2543Smrg
3534706f2543Smrgint __glXDisp_GetHistogramParameteriv(__GLXclientState *cl, GLbyte *pc)
3535706f2543Smrg{
3536706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3537706f2543Smrg    int error;
3538706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3539706f2543Smrg
3540706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3541706f2543Smrg    if ( cx != NULL ) {
3542706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3543706f2543Smrg
3544706f2543Smrg        const GLuint compsize = __glGetHistogramParameteriv_size(pname);
3545706f2543Smrg        GLint answerBuffer[200];
3546706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3547706f2543Smrg
3548706f2543Smrg        if (params == NULL) return BadAlloc;
3549706f2543Smrg        __glXClearErrorOccured();
3550706f2543Smrg
3551706f2543Smrg        CALL_GetHistogramParameteriv( GET_DISPATCH(), (
3552706f2543Smrg            *(GLenum   *)(pc +  0),
3553706f2543Smrg            pname,
3554706f2543Smrg            params
3555706f2543Smrg        ) );
3556706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3557706f2543Smrg        error = Success;
3558706f2543Smrg    }
3559706f2543Smrg
3560706f2543Smrg    return error;
3561706f2543Smrg}
3562706f2543Smrg
3563706f2543Smrgint __glXDisp_GetHistogramParameterivEXT(__GLXclientState *cl, GLbyte *pc)
3564706f2543Smrg{
3565706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3566706f2543Smrg    int error;
3567706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3568706f2543Smrg
3569706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3570706f2543Smrg    if ( cx != NULL ) {
3571706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3572706f2543Smrg
3573706f2543Smrg        const GLuint compsize = __glGetHistogramParameteriv_size(pname);
3574706f2543Smrg        GLint answerBuffer[200];
3575706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3576706f2543Smrg
3577706f2543Smrg        if (params == NULL) return BadAlloc;
3578706f2543Smrg        __glXClearErrorOccured();
3579706f2543Smrg
3580706f2543Smrg        CALL_GetHistogramParameteriv( GET_DISPATCH(), (
3581706f2543Smrg            *(GLenum   *)(pc +  0),
3582706f2543Smrg            pname,
3583706f2543Smrg            params
3584706f2543Smrg        ) );
3585706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3586706f2543Smrg        error = Success;
3587706f2543Smrg    }
3588706f2543Smrg
3589706f2543Smrg    return error;
3590706f2543Smrg}
3591706f2543Smrg
3592706f2543Smrgint __glXDisp_GetMinmaxParameterfv(__GLXclientState *cl, GLbyte *pc)
3593706f2543Smrg{
3594706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3595706f2543Smrg    int error;
3596706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3597706f2543Smrg
3598706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3599706f2543Smrg    if ( cx != NULL ) {
3600706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3601706f2543Smrg
3602706f2543Smrg        const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
3603706f2543Smrg        GLfloat answerBuffer[200];
3604706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3605706f2543Smrg
3606706f2543Smrg        if (params == NULL) return BadAlloc;
3607706f2543Smrg        __glXClearErrorOccured();
3608706f2543Smrg
3609706f2543Smrg        CALL_GetMinmaxParameterfv( GET_DISPATCH(), (
3610706f2543Smrg            *(GLenum   *)(pc +  0),
3611706f2543Smrg            pname,
3612706f2543Smrg            params
3613706f2543Smrg        ) );
3614706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3615706f2543Smrg        error = Success;
3616706f2543Smrg    }
3617706f2543Smrg
3618706f2543Smrg    return error;
3619706f2543Smrg}
3620706f2543Smrg
3621706f2543Smrgint __glXDisp_GetMinmaxParameterfvEXT(__GLXclientState *cl, GLbyte *pc)
3622706f2543Smrg{
3623706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3624706f2543Smrg    int error;
3625706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3626706f2543Smrg
3627706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3628706f2543Smrg    if ( cx != NULL ) {
3629706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3630706f2543Smrg
3631706f2543Smrg        const GLuint compsize = __glGetMinmaxParameterfv_size(pname);
3632706f2543Smrg        GLfloat answerBuffer[200];
3633706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3634706f2543Smrg
3635706f2543Smrg        if (params == NULL) return BadAlloc;
3636706f2543Smrg        __glXClearErrorOccured();
3637706f2543Smrg
3638706f2543Smrg        CALL_GetMinmaxParameterfv( GET_DISPATCH(), (
3639706f2543Smrg            *(GLenum   *)(pc +  0),
3640706f2543Smrg            pname,
3641706f2543Smrg            params
3642706f2543Smrg        ) );
3643706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3644706f2543Smrg        error = Success;
3645706f2543Smrg    }
3646706f2543Smrg
3647706f2543Smrg    return error;
3648706f2543Smrg}
3649706f2543Smrg
3650706f2543Smrgint __glXDisp_GetMinmaxParameteriv(__GLXclientState *cl, GLbyte *pc)
3651706f2543Smrg{
3652706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
3653706f2543Smrg    int error;
3654706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3655706f2543Smrg
3656706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
3657706f2543Smrg    if ( cx != NULL ) {
3658706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3659706f2543Smrg
3660706f2543Smrg        const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
3661706f2543Smrg        GLint answerBuffer[200];
3662706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3663706f2543Smrg
3664706f2543Smrg        if (params == NULL) return BadAlloc;
3665706f2543Smrg        __glXClearErrorOccured();
3666706f2543Smrg
3667706f2543Smrg        CALL_GetMinmaxParameteriv( GET_DISPATCH(), (
3668706f2543Smrg            *(GLenum   *)(pc +  0),
3669706f2543Smrg            pname,
3670706f2543Smrg            params
3671706f2543Smrg        ) );
3672706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3673706f2543Smrg        error = Success;
3674706f2543Smrg    }
3675706f2543Smrg
3676706f2543Smrg    return error;
3677706f2543Smrg}
3678706f2543Smrg
3679706f2543Smrgint __glXDisp_GetMinmaxParameterivEXT(__GLXclientState *cl, GLbyte *pc)
3680706f2543Smrg{
3681706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
3682706f2543Smrg    int error;
3683706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
3684706f2543Smrg
3685706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
3686706f2543Smrg    if ( cx != NULL ) {
3687706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
3688706f2543Smrg
3689706f2543Smrg        const GLuint compsize = __glGetMinmaxParameteriv_size(pname);
3690706f2543Smrg        GLint answerBuffer[200];
3691706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
3692706f2543Smrg
3693706f2543Smrg        if (params == NULL) return BadAlloc;
3694706f2543Smrg        __glXClearErrorOccured();
3695706f2543Smrg
3696706f2543Smrg        CALL_GetMinmaxParameteriv( GET_DISPATCH(), (
3697706f2543Smrg            *(GLenum   *)(pc +  0),
3698706f2543Smrg            pname,
3699706f2543Smrg            params
3700706f2543Smrg        ) );
3701706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
3702706f2543Smrg        error = Success;
3703706f2543Smrg    }
3704706f2543Smrg
3705706f2543Smrg    return error;
3706706f2543Smrg}
3707706f2543Smrg
3708706f2543Smrgvoid __glXDisp_Histogram(GLbyte * pc)
3709706f2543Smrg{
3710706f2543Smrg    CALL_Histogram( GET_DISPATCH(), (
3711706f2543Smrg        *(GLenum   *)(pc +  0),
3712706f2543Smrg        *(GLsizei  *)(pc +  4),
3713706f2543Smrg        *(GLenum   *)(pc +  8),
3714706f2543Smrg        *(GLboolean *)(pc + 12)
3715706f2543Smrg    ) );
3716706f2543Smrg}
3717706f2543Smrg
3718706f2543Smrgvoid __glXDisp_Minmax(GLbyte * pc)
3719706f2543Smrg{
3720706f2543Smrg    CALL_Minmax( GET_DISPATCH(), (
3721706f2543Smrg        *(GLenum   *)(pc +  0),
3722706f2543Smrg        *(GLenum   *)(pc +  4),
3723706f2543Smrg        *(GLboolean *)(pc +  8)
3724706f2543Smrg    ) );
3725706f2543Smrg}
3726706f2543Smrg
3727706f2543Smrgvoid __glXDisp_ResetHistogram(GLbyte * pc)
3728706f2543Smrg{
3729706f2543Smrg    CALL_ResetHistogram( GET_DISPATCH(), (
3730706f2543Smrg        *(GLenum   *)(pc +  0)
3731706f2543Smrg    ) );
3732706f2543Smrg}
3733706f2543Smrg
3734706f2543Smrgvoid __glXDisp_ResetMinmax(GLbyte * pc)
3735706f2543Smrg{
3736706f2543Smrg    CALL_ResetMinmax( GET_DISPATCH(), (
3737706f2543Smrg        *(GLenum   *)(pc +  0)
3738706f2543Smrg    ) );
3739706f2543Smrg}
3740706f2543Smrg
3741706f2543Smrgvoid __glXDisp_TexImage3D(GLbyte * pc)
3742706f2543Smrg{
3743706f2543Smrg    const CARD32 ptr_is_null = *(CARD32 *)(pc + 76);
3744706f2543Smrg    const GLvoid * const pixels = (const GLvoid *) ((ptr_is_null != 0) ? NULL : (pc + 80));
3745706f2543Smrg    __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);
3746706f2543Smrg
3747706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
3748706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
3749706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
3750706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_IMAGE_HEIGHT, (GLint) hdr->imageHeight) );
3751706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
3752706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_IMAGES,  (GLint) hdr->skipImages) );
3753706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
3754706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
3755706f2543Smrg
3756706f2543Smrg    CALL_TexImage3D( GET_DISPATCH(), (
3757706f2543Smrg        *(GLenum   *)(pc + 36),
3758706f2543Smrg        *(GLint    *)(pc + 40),
3759706f2543Smrg        *(GLint    *)(pc + 44),
3760706f2543Smrg        *(GLsizei  *)(pc + 48),
3761706f2543Smrg        *(GLsizei  *)(pc + 52),
3762706f2543Smrg        *(GLsizei  *)(pc + 56),
3763706f2543Smrg        *(GLint    *)(pc + 64),
3764706f2543Smrg        *(GLenum   *)(pc + 68),
3765706f2543Smrg        *(GLenum   *)(pc + 72),
3766706f2543Smrg        pixels
3767706f2543Smrg    ) );
3768706f2543Smrg}
3769706f2543Smrg
3770706f2543Smrgvoid __glXDisp_TexSubImage3D(GLbyte * pc)
3771706f2543Smrg{
3772706f2543Smrg    const GLvoid * const pixels = (const GLvoid *) (pc + 88);
3773706f2543Smrg    __GLXpixel3DHeader * const hdr = (__GLXpixel3DHeader *)(pc);
3774706f2543Smrg
3775706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SWAP_BYTES,   hdr->swapBytes) );
3776706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_LSB_FIRST,    hdr->lsbFirst) );
3777706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ROW_LENGTH,   (GLint) hdr->rowLength) );
3778706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_IMAGE_HEIGHT, (GLint) hdr->imageHeight) );
3779706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_ROWS,    (GLint) hdr->skipRows) );
3780706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_IMAGES,  (GLint) hdr->skipImages) );
3781706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_SKIP_PIXELS,  (GLint) hdr->skipPixels) );
3782706f2543Smrg    CALL_PixelStorei( GET_DISPATCH(), (GL_UNPACK_ALIGNMENT,    (GLint) hdr->alignment) );
3783706f2543Smrg
3784706f2543Smrg    CALL_TexSubImage3D( GET_DISPATCH(), (
3785706f2543Smrg        *(GLenum   *)(pc + 36),
3786706f2543Smrg        *(GLint    *)(pc + 40),
3787706f2543Smrg        *(GLint    *)(pc + 44),
3788706f2543Smrg        *(GLint    *)(pc + 48),
3789706f2543Smrg        *(GLint    *)(pc + 52),
3790706f2543Smrg        *(GLsizei  *)(pc + 60),
3791706f2543Smrg        *(GLsizei  *)(pc + 64),
3792706f2543Smrg        *(GLsizei  *)(pc + 68),
3793706f2543Smrg        *(GLenum   *)(pc + 76),
3794706f2543Smrg        *(GLenum   *)(pc + 80),
3795706f2543Smrg        pixels
3796706f2543Smrg    ) );
3797706f2543Smrg}
3798706f2543Smrg
3799706f2543Smrgvoid __glXDisp_CopyTexSubImage3D(GLbyte * pc)
3800706f2543Smrg{
3801706f2543Smrg    CALL_CopyTexSubImage3D( GET_DISPATCH(), (
3802706f2543Smrg        *(GLenum   *)(pc +  0),
3803706f2543Smrg        *(GLint    *)(pc +  4),
3804706f2543Smrg        *(GLint    *)(pc +  8),
3805706f2543Smrg        *(GLint    *)(pc + 12),
3806706f2543Smrg        *(GLint    *)(pc + 16),
3807706f2543Smrg        *(GLint    *)(pc + 20),
3808706f2543Smrg        *(GLint    *)(pc + 24),
3809706f2543Smrg        *(GLsizei  *)(pc + 28),
3810706f2543Smrg        *(GLsizei  *)(pc + 32)
3811706f2543Smrg    ) );
3812706f2543Smrg}
3813706f2543Smrg
3814706f2543Smrgvoid __glXDisp_ActiveTextureARB(GLbyte * pc)
3815706f2543Smrg{
3816706f2543Smrg    CALL_ActiveTextureARB( GET_DISPATCH(), (
3817706f2543Smrg        *(GLenum   *)(pc +  0)
3818706f2543Smrg    ) );
3819706f2543Smrg}
3820706f2543Smrg
3821706f2543Smrgvoid __glXDisp_MultiTexCoord1dvARB(GLbyte * pc)
3822706f2543Smrg{
3823706f2543Smrg#ifdef __GLX_ALIGN64
3824706f2543Smrg    if ((unsigned long)(pc) & 7) {
3825706f2543Smrg        (void) memmove(pc-4, pc, 12);
3826706f2543Smrg        pc -= 4;
3827706f2543Smrg    }
3828706f2543Smrg#endif
3829706f2543Smrg
3830706f2543Smrg    CALL_MultiTexCoord1dvARB( GET_DISPATCH(), (
3831706f2543Smrg        *(GLenum   *)(pc +  8),
3832706f2543Smrg         (const GLdouble *)(pc +  0)
3833706f2543Smrg    ) );
3834706f2543Smrg}
3835706f2543Smrg
3836706f2543Smrgvoid __glXDisp_MultiTexCoord1fvARB(GLbyte * pc)
3837706f2543Smrg{
3838706f2543Smrg    CALL_MultiTexCoord1fvARB( GET_DISPATCH(), (
3839706f2543Smrg        *(GLenum   *)(pc +  0),
3840706f2543Smrg         (const GLfloat *)(pc +  4)
3841706f2543Smrg    ) );
3842706f2543Smrg}
3843706f2543Smrg
3844706f2543Smrgvoid __glXDisp_MultiTexCoord1ivARB(GLbyte * pc)
3845706f2543Smrg{
3846706f2543Smrg    CALL_MultiTexCoord1ivARB( GET_DISPATCH(), (
3847706f2543Smrg        *(GLenum   *)(pc +  0),
3848706f2543Smrg         (const GLint *)(pc +  4)
3849706f2543Smrg    ) );
3850706f2543Smrg}
3851706f2543Smrg
3852706f2543Smrgvoid __glXDisp_MultiTexCoord1svARB(GLbyte * pc)
3853706f2543Smrg{
3854706f2543Smrg    CALL_MultiTexCoord1svARB( GET_DISPATCH(), (
3855706f2543Smrg        *(GLenum   *)(pc +  0),
3856706f2543Smrg         (const GLshort *)(pc +  4)
3857706f2543Smrg    ) );
3858706f2543Smrg}
3859706f2543Smrg
3860706f2543Smrgvoid __glXDisp_MultiTexCoord2dvARB(GLbyte * pc)
3861706f2543Smrg{
3862706f2543Smrg#ifdef __GLX_ALIGN64
3863706f2543Smrg    if ((unsigned long)(pc) & 7) {
3864706f2543Smrg        (void) memmove(pc-4, pc, 20);
3865706f2543Smrg        pc -= 4;
3866706f2543Smrg    }
3867706f2543Smrg#endif
3868706f2543Smrg
3869706f2543Smrg    CALL_MultiTexCoord2dvARB( GET_DISPATCH(), (
3870706f2543Smrg        *(GLenum   *)(pc + 16),
3871706f2543Smrg         (const GLdouble *)(pc +  0)
3872706f2543Smrg    ) );
3873706f2543Smrg}
3874706f2543Smrg
3875706f2543Smrgvoid __glXDisp_MultiTexCoord2fvARB(GLbyte * pc)
3876706f2543Smrg{
3877706f2543Smrg    CALL_MultiTexCoord2fvARB( GET_DISPATCH(), (
3878706f2543Smrg        *(GLenum   *)(pc +  0),
3879706f2543Smrg         (const GLfloat *)(pc +  4)
3880706f2543Smrg    ) );
3881706f2543Smrg}
3882706f2543Smrg
3883706f2543Smrgvoid __glXDisp_MultiTexCoord2ivARB(GLbyte * pc)
3884706f2543Smrg{
3885706f2543Smrg    CALL_MultiTexCoord2ivARB( GET_DISPATCH(), (
3886706f2543Smrg        *(GLenum   *)(pc +  0),
3887706f2543Smrg         (const GLint *)(pc +  4)
3888706f2543Smrg    ) );
3889706f2543Smrg}
3890706f2543Smrg
3891706f2543Smrgvoid __glXDisp_MultiTexCoord2svARB(GLbyte * pc)
3892706f2543Smrg{
3893706f2543Smrg    CALL_MultiTexCoord2svARB( GET_DISPATCH(), (
3894706f2543Smrg        *(GLenum   *)(pc +  0),
3895706f2543Smrg         (const GLshort *)(pc +  4)
3896706f2543Smrg    ) );
3897706f2543Smrg}
3898706f2543Smrg
3899706f2543Smrgvoid __glXDisp_MultiTexCoord3dvARB(GLbyte * pc)
3900706f2543Smrg{
3901706f2543Smrg#ifdef __GLX_ALIGN64
3902706f2543Smrg    if ((unsigned long)(pc) & 7) {
3903706f2543Smrg        (void) memmove(pc-4, pc, 28);
3904706f2543Smrg        pc -= 4;
3905706f2543Smrg    }
3906706f2543Smrg#endif
3907706f2543Smrg
3908706f2543Smrg    CALL_MultiTexCoord3dvARB( GET_DISPATCH(), (
3909706f2543Smrg        *(GLenum   *)(pc + 24),
3910706f2543Smrg         (const GLdouble *)(pc +  0)
3911706f2543Smrg    ) );
3912706f2543Smrg}
3913706f2543Smrg
3914706f2543Smrgvoid __glXDisp_MultiTexCoord3fvARB(GLbyte * pc)
3915706f2543Smrg{
3916706f2543Smrg    CALL_MultiTexCoord3fvARB( GET_DISPATCH(), (
3917706f2543Smrg        *(GLenum   *)(pc +  0),
3918706f2543Smrg         (const GLfloat *)(pc +  4)
3919706f2543Smrg    ) );
3920706f2543Smrg}
3921706f2543Smrg
3922706f2543Smrgvoid __glXDisp_MultiTexCoord3ivARB(GLbyte * pc)
3923706f2543Smrg{
3924706f2543Smrg    CALL_MultiTexCoord3ivARB( GET_DISPATCH(), (
3925706f2543Smrg        *(GLenum   *)(pc +  0),
3926706f2543Smrg         (const GLint *)(pc +  4)
3927706f2543Smrg    ) );
3928706f2543Smrg}
3929706f2543Smrg
3930706f2543Smrgvoid __glXDisp_MultiTexCoord3svARB(GLbyte * pc)
3931706f2543Smrg{
3932706f2543Smrg    CALL_MultiTexCoord3svARB( GET_DISPATCH(), (
3933706f2543Smrg        *(GLenum   *)(pc +  0),
3934706f2543Smrg         (const GLshort *)(pc +  4)
3935706f2543Smrg    ) );
3936706f2543Smrg}
3937706f2543Smrg
3938706f2543Smrgvoid __glXDisp_MultiTexCoord4dvARB(GLbyte * pc)
3939706f2543Smrg{
3940706f2543Smrg#ifdef __GLX_ALIGN64
3941706f2543Smrg    if ((unsigned long)(pc) & 7) {
3942706f2543Smrg        (void) memmove(pc-4, pc, 36);
3943706f2543Smrg        pc -= 4;
3944706f2543Smrg    }
3945706f2543Smrg#endif
3946706f2543Smrg
3947706f2543Smrg    CALL_MultiTexCoord4dvARB( GET_DISPATCH(), (
3948706f2543Smrg        *(GLenum   *)(pc + 32),
3949706f2543Smrg         (const GLdouble *)(pc +  0)
3950706f2543Smrg    ) );
3951706f2543Smrg}
3952706f2543Smrg
3953706f2543Smrgvoid __glXDisp_MultiTexCoord4fvARB(GLbyte * pc)
3954706f2543Smrg{
3955706f2543Smrg    CALL_MultiTexCoord4fvARB( GET_DISPATCH(), (
3956706f2543Smrg        *(GLenum   *)(pc +  0),
3957706f2543Smrg         (const GLfloat *)(pc +  4)
3958706f2543Smrg    ) );
3959706f2543Smrg}
3960706f2543Smrg
3961706f2543Smrgvoid __glXDisp_MultiTexCoord4ivARB(GLbyte * pc)
3962706f2543Smrg{
3963706f2543Smrg    CALL_MultiTexCoord4ivARB( GET_DISPATCH(), (
3964706f2543Smrg        *(GLenum   *)(pc +  0),
3965706f2543Smrg         (const GLint *)(pc +  4)
3966706f2543Smrg    ) );
3967706f2543Smrg}
3968706f2543Smrg
3969706f2543Smrgvoid __glXDisp_MultiTexCoord4svARB(GLbyte * pc)
3970706f2543Smrg{
3971706f2543Smrg    CALL_MultiTexCoord4svARB( GET_DISPATCH(), (
3972706f2543Smrg        *(GLenum   *)(pc +  0),
3973706f2543Smrg         (const GLshort *)(pc +  4)
3974706f2543Smrg    ) );
3975706f2543Smrg}
3976706f2543Smrg
3977706f2543Smrgvoid __glXDisp_SampleCoverageARB(GLbyte * pc)
3978706f2543Smrg{
3979706f2543Smrg    CALL_SampleCoverageARB( GET_DISPATCH(), (
3980706f2543Smrg        *(GLclampf *)(pc +  0),
3981706f2543Smrg        *(GLboolean *)(pc +  4)
3982706f2543Smrg    ) );
3983706f2543Smrg}
3984706f2543Smrg
3985706f2543Smrgvoid __glXDisp_CompressedTexImage1DARB(GLbyte * pc)
3986706f2543Smrg{
3987706f2543Smrg    const GLsizei imageSize = *(GLsizei  *)(pc + 20);
3988706f2543Smrg
3989706f2543Smrg    CALL_CompressedTexImage1DARB( GET_DISPATCH(), (
3990706f2543Smrg        *(GLenum   *)(pc +  0),
3991706f2543Smrg        *(GLint    *)(pc +  4),
3992706f2543Smrg        *(GLenum   *)(pc +  8),
3993706f2543Smrg        *(GLsizei  *)(pc + 12),
3994706f2543Smrg        *(GLint    *)(pc + 16),
3995706f2543Smrg        imageSize,
3996706f2543Smrg         (const GLvoid *)(pc + 24)
3997706f2543Smrg    ) );
3998706f2543Smrg}
3999706f2543Smrg
4000706f2543Smrgvoid __glXDisp_CompressedTexImage2DARB(GLbyte * pc)
4001706f2543Smrg{
4002706f2543Smrg    const GLsizei imageSize = *(GLsizei  *)(pc + 24);
4003706f2543Smrg
4004706f2543Smrg    CALL_CompressedTexImage2DARB( GET_DISPATCH(), (
4005706f2543Smrg        *(GLenum   *)(pc +  0),
4006706f2543Smrg        *(GLint    *)(pc +  4),
4007706f2543Smrg        *(GLenum   *)(pc +  8),
4008706f2543Smrg        *(GLsizei  *)(pc + 12),
4009706f2543Smrg        *(GLsizei  *)(pc + 16),
4010706f2543Smrg        *(GLint    *)(pc + 20),
4011706f2543Smrg        imageSize,
4012706f2543Smrg         (const GLvoid *)(pc + 28)
4013706f2543Smrg    ) );
4014706f2543Smrg}
4015706f2543Smrg
4016706f2543Smrgvoid __glXDisp_CompressedTexImage3DARB(GLbyte * pc)
4017706f2543Smrg{
4018706f2543Smrg    const GLsizei imageSize = *(GLsizei  *)(pc + 28);
4019706f2543Smrg
4020706f2543Smrg    CALL_CompressedTexImage3DARB( GET_DISPATCH(), (
4021706f2543Smrg        *(GLenum   *)(pc +  0),
4022706f2543Smrg        *(GLint    *)(pc +  4),
4023706f2543Smrg        *(GLenum   *)(pc +  8),
4024706f2543Smrg        *(GLsizei  *)(pc + 12),
4025706f2543Smrg        *(GLsizei  *)(pc + 16),
4026706f2543Smrg        *(GLsizei  *)(pc + 20),
4027706f2543Smrg        *(GLint    *)(pc + 24),
4028706f2543Smrg        imageSize,
4029706f2543Smrg         (const GLvoid *)(pc + 32)
4030706f2543Smrg    ) );
4031706f2543Smrg}
4032706f2543Smrg
4033706f2543Smrgvoid __glXDisp_CompressedTexSubImage1DARB(GLbyte * pc)
4034706f2543Smrg{
4035706f2543Smrg    const GLsizei imageSize = *(GLsizei  *)(pc + 20);
4036706f2543Smrg
4037706f2543Smrg    CALL_CompressedTexSubImage1DARB( GET_DISPATCH(), (
4038706f2543Smrg        *(GLenum   *)(pc +  0),
4039706f2543Smrg        *(GLint    *)(pc +  4),
4040706f2543Smrg        *(GLint    *)(pc +  8),
4041706f2543Smrg        *(GLsizei  *)(pc + 12),
4042706f2543Smrg        *(GLenum   *)(pc + 16),
4043706f2543Smrg        imageSize,
4044706f2543Smrg         (const GLvoid *)(pc + 24)
4045706f2543Smrg    ) );
4046706f2543Smrg}
4047706f2543Smrg
4048706f2543Smrgvoid __glXDisp_CompressedTexSubImage2DARB(GLbyte * pc)
4049706f2543Smrg{
4050706f2543Smrg    const GLsizei imageSize = *(GLsizei  *)(pc + 28);
4051706f2543Smrg
4052706f2543Smrg    CALL_CompressedTexSubImage2DARB( GET_DISPATCH(), (
4053706f2543Smrg        *(GLenum   *)(pc +  0),
4054706f2543Smrg        *(GLint    *)(pc +  4),
4055706f2543Smrg        *(GLint    *)(pc +  8),
4056706f2543Smrg        *(GLint    *)(pc + 12),
4057706f2543Smrg        *(GLsizei  *)(pc + 16),
4058706f2543Smrg        *(GLsizei  *)(pc + 20),
4059706f2543Smrg        *(GLenum   *)(pc + 24),
4060706f2543Smrg        imageSize,
4061706f2543Smrg         (const GLvoid *)(pc + 32)
4062706f2543Smrg    ) );
4063706f2543Smrg}
4064706f2543Smrg
4065706f2543Smrgvoid __glXDisp_CompressedTexSubImage3DARB(GLbyte * pc)
4066706f2543Smrg{
4067706f2543Smrg    const GLsizei imageSize = *(GLsizei  *)(pc + 36);
4068706f2543Smrg
4069706f2543Smrg    CALL_CompressedTexSubImage3DARB( GET_DISPATCH(), (
4070706f2543Smrg        *(GLenum   *)(pc +  0),
4071706f2543Smrg        *(GLint    *)(pc +  4),
4072706f2543Smrg        *(GLint    *)(pc +  8),
4073706f2543Smrg        *(GLint    *)(pc + 12),
4074706f2543Smrg        *(GLint    *)(pc + 16),
4075706f2543Smrg        *(GLsizei  *)(pc + 20),
4076706f2543Smrg        *(GLsizei  *)(pc + 24),
4077706f2543Smrg        *(GLsizei  *)(pc + 28),
4078706f2543Smrg        *(GLenum   *)(pc + 32),
4079706f2543Smrg        imageSize,
4080706f2543Smrg         (const GLvoid *)(pc + 40)
4081706f2543Smrg    ) );
4082706f2543Smrg}
4083706f2543Smrg
4084706f2543Smrgint __glXDisp_GetProgramEnvParameterdvARB(__GLXclientState *cl, GLbyte *pc)
4085706f2543Smrg{
4086706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4087706f2543Smrg    int error;
4088706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4089706f2543Smrg
4090706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4091706f2543Smrg    if ( cx != NULL ) {
4092706f2543Smrg        GLdouble params[4];
4093706f2543Smrg        CALL_GetProgramEnvParameterdvARB( GET_DISPATCH(), (
4094706f2543Smrg            *(GLenum   *)(pc +  0),
4095706f2543Smrg            *(GLuint   *)(pc +  4),
4096706f2543Smrg            params
4097706f2543Smrg        ) );
4098706f2543Smrg        __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
4099706f2543Smrg        error = Success;
4100706f2543Smrg    }
4101706f2543Smrg
4102706f2543Smrg    return error;
4103706f2543Smrg}
4104706f2543Smrg
4105706f2543Smrgint __glXDisp_GetProgramEnvParameterfvARB(__GLXclientState *cl, GLbyte *pc)
4106706f2543Smrg{
4107706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4108706f2543Smrg    int error;
4109706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4110706f2543Smrg
4111706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4112706f2543Smrg    if ( cx != NULL ) {
4113706f2543Smrg        GLfloat params[4];
4114706f2543Smrg        CALL_GetProgramEnvParameterfvARB( GET_DISPATCH(), (
4115706f2543Smrg            *(GLenum   *)(pc +  0),
4116706f2543Smrg            *(GLuint   *)(pc +  4),
4117706f2543Smrg            params
4118706f2543Smrg        ) );
4119706f2543Smrg        __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
4120706f2543Smrg        error = Success;
4121706f2543Smrg    }
4122706f2543Smrg
4123706f2543Smrg    return error;
4124706f2543Smrg}
4125706f2543Smrg
4126706f2543Smrgint __glXDisp_GetProgramLocalParameterdvARB(__GLXclientState *cl, GLbyte *pc)
4127706f2543Smrg{
4128706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4129706f2543Smrg    int error;
4130706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4131706f2543Smrg
4132706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4133706f2543Smrg    if ( cx != NULL ) {
4134706f2543Smrg        GLdouble params[4];
4135706f2543Smrg        CALL_GetProgramLocalParameterdvARB( GET_DISPATCH(), (
4136706f2543Smrg            *(GLenum   *)(pc +  0),
4137706f2543Smrg            *(GLuint   *)(pc +  4),
4138706f2543Smrg            params
4139706f2543Smrg        ) );
4140706f2543Smrg        __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
4141706f2543Smrg        error = Success;
4142706f2543Smrg    }
4143706f2543Smrg
4144706f2543Smrg    return error;
4145706f2543Smrg}
4146706f2543Smrg
4147706f2543Smrgint __glXDisp_GetProgramLocalParameterfvARB(__GLXclientState *cl, GLbyte *pc)
4148706f2543Smrg{
4149706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4150706f2543Smrg    int error;
4151706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4152706f2543Smrg
4153706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4154706f2543Smrg    if ( cx != NULL ) {
4155706f2543Smrg        GLfloat params[4];
4156706f2543Smrg        CALL_GetProgramLocalParameterfvARB( GET_DISPATCH(), (
4157706f2543Smrg            *(GLenum   *)(pc +  0),
4158706f2543Smrg            *(GLuint   *)(pc +  4),
4159706f2543Smrg            params
4160706f2543Smrg        ) );
4161706f2543Smrg        __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
4162706f2543Smrg        error = Success;
4163706f2543Smrg    }
4164706f2543Smrg
4165706f2543Smrg    return error;
4166706f2543Smrg}
4167706f2543Smrg
4168706f2543Smrgint __glXDisp_GetProgramivARB(__GLXclientState *cl, GLbyte *pc)
4169706f2543Smrg{
4170706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4171706f2543Smrg    int error;
4172706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4173706f2543Smrg
4174706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4175706f2543Smrg    if ( cx != NULL ) {
4176706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
4177706f2543Smrg
4178706f2543Smrg        const GLuint compsize = __glGetProgramivARB_size(pname);
4179706f2543Smrg        GLint answerBuffer[200];
4180706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
4181706f2543Smrg
4182706f2543Smrg        if (params == NULL) return BadAlloc;
4183706f2543Smrg        __glXClearErrorOccured();
4184706f2543Smrg
4185706f2543Smrg        CALL_GetProgramivARB( GET_DISPATCH(), (
4186706f2543Smrg            *(GLenum   *)(pc +  0),
4187706f2543Smrg            pname,
4188706f2543Smrg            params
4189706f2543Smrg        ) );
4190706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
4191706f2543Smrg        error = Success;
4192706f2543Smrg    }
4193706f2543Smrg
4194706f2543Smrg    return error;
4195706f2543Smrg}
4196706f2543Smrg
4197706f2543Smrgint __glXDisp_GetVertexAttribdvARB(__GLXclientState *cl, GLbyte *pc)
4198706f2543Smrg{
4199706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4200706f2543Smrg    int error;
4201706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4202706f2543Smrg
4203706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4204706f2543Smrg    if ( cx != NULL ) {
4205706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
4206706f2543Smrg
4207706f2543Smrg        const GLuint compsize = __glGetVertexAttribdvARB_size(pname);
4208706f2543Smrg        GLdouble answerBuffer[200];
4209706f2543Smrg        GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
4210706f2543Smrg
4211706f2543Smrg        if (params == NULL) return BadAlloc;
4212706f2543Smrg        __glXClearErrorOccured();
4213706f2543Smrg
4214706f2543Smrg        CALL_GetVertexAttribdvARB( GET_DISPATCH(), (
4215706f2543Smrg            *(GLuint   *)(pc +  0),
4216706f2543Smrg            pname,
4217706f2543Smrg            params
4218706f2543Smrg        ) );
4219706f2543Smrg        __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
4220706f2543Smrg        error = Success;
4221706f2543Smrg    }
4222706f2543Smrg
4223706f2543Smrg    return error;
4224706f2543Smrg}
4225706f2543Smrg
4226706f2543Smrgint __glXDisp_GetVertexAttribfvARB(__GLXclientState *cl, GLbyte *pc)
4227706f2543Smrg{
4228706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4229706f2543Smrg    int error;
4230706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4231706f2543Smrg
4232706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4233706f2543Smrg    if ( cx != NULL ) {
4234706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
4235706f2543Smrg
4236706f2543Smrg        const GLuint compsize = __glGetVertexAttribfvARB_size(pname);
4237706f2543Smrg        GLfloat answerBuffer[200];
4238706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
4239706f2543Smrg
4240706f2543Smrg        if (params == NULL) return BadAlloc;
4241706f2543Smrg        __glXClearErrorOccured();
4242706f2543Smrg
4243706f2543Smrg        CALL_GetVertexAttribfvARB( GET_DISPATCH(), (
4244706f2543Smrg            *(GLuint   *)(pc +  0),
4245706f2543Smrg            pname,
4246706f2543Smrg            params
4247706f2543Smrg        ) );
4248706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
4249706f2543Smrg        error = Success;
4250706f2543Smrg    }
4251706f2543Smrg
4252706f2543Smrg    return error;
4253706f2543Smrg}
4254706f2543Smrg
4255706f2543Smrgint __glXDisp_GetVertexAttribivARB(__GLXclientState *cl, GLbyte *pc)
4256706f2543Smrg{
4257706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4258706f2543Smrg    int error;
4259706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4260706f2543Smrg
4261706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4262706f2543Smrg    if ( cx != NULL ) {
4263706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
4264706f2543Smrg
4265706f2543Smrg        const GLuint compsize = __glGetVertexAttribivARB_size(pname);
4266706f2543Smrg        GLint answerBuffer[200];
4267706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
4268706f2543Smrg
4269706f2543Smrg        if (params == NULL) return BadAlloc;
4270706f2543Smrg        __glXClearErrorOccured();
4271706f2543Smrg
4272706f2543Smrg        CALL_GetVertexAttribivARB( GET_DISPATCH(), (
4273706f2543Smrg            *(GLuint   *)(pc +  0),
4274706f2543Smrg            pname,
4275706f2543Smrg            params
4276706f2543Smrg        ) );
4277706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
4278706f2543Smrg        error = Success;
4279706f2543Smrg    }
4280706f2543Smrg
4281706f2543Smrg    return error;
4282706f2543Smrg}
4283706f2543Smrg
4284706f2543Smrgvoid __glXDisp_ProgramEnvParameter4dvARB(GLbyte * pc)
4285706f2543Smrg{
4286706f2543Smrg#ifdef __GLX_ALIGN64
4287706f2543Smrg    if ((unsigned long)(pc) & 7) {
4288706f2543Smrg        (void) memmove(pc-4, pc, 40);
4289706f2543Smrg        pc -= 4;
4290706f2543Smrg    }
4291706f2543Smrg#endif
4292706f2543Smrg
4293706f2543Smrg    CALL_ProgramEnvParameter4dvARB( GET_DISPATCH(), (
4294706f2543Smrg        *(GLenum   *)(pc +  0),
4295706f2543Smrg        *(GLuint   *)(pc +  4),
4296706f2543Smrg         (const GLdouble *)(pc +  8)
4297706f2543Smrg    ) );
4298706f2543Smrg}
4299706f2543Smrg
4300706f2543Smrgvoid __glXDisp_ProgramEnvParameter4fvARB(GLbyte * pc)
4301706f2543Smrg{
4302706f2543Smrg    CALL_ProgramEnvParameter4fvARB( GET_DISPATCH(), (
4303706f2543Smrg        *(GLenum   *)(pc +  0),
4304706f2543Smrg        *(GLuint   *)(pc +  4),
4305706f2543Smrg         (const GLfloat *)(pc +  8)
4306706f2543Smrg    ) );
4307706f2543Smrg}
4308706f2543Smrg
4309706f2543Smrgvoid __glXDisp_ProgramLocalParameter4dvARB(GLbyte * pc)
4310706f2543Smrg{
4311706f2543Smrg#ifdef __GLX_ALIGN64
4312706f2543Smrg    if ((unsigned long)(pc) & 7) {
4313706f2543Smrg        (void) memmove(pc-4, pc, 40);
4314706f2543Smrg        pc -= 4;
4315706f2543Smrg    }
4316706f2543Smrg#endif
4317706f2543Smrg
4318706f2543Smrg    CALL_ProgramLocalParameter4dvARB( GET_DISPATCH(), (
4319706f2543Smrg        *(GLenum   *)(pc +  0),
4320706f2543Smrg        *(GLuint   *)(pc +  4),
4321706f2543Smrg         (const GLdouble *)(pc +  8)
4322706f2543Smrg    ) );
4323706f2543Smrg}
4324706f2543Smrg
4325706f2543Smrgvoid __glXDisp_ProgramLocalParameter4fvARB(GLbyte * pc)
4326706f2543Smrg{
4327706f2543Smrg    CALL_ProgramLocalParameter4fvARB( GET_DISPATCH(), (
4328706f2543Smrg        *(GLenum   *)(pc +  0),
4329706f2543Smrg        *(GLuint   *)(pc +  4),
4330706f2543Smrg         (const GLfloat *)(pc +  8)
4331706f2543Smrg    ) );
4332706f2543Smrg}
4333706f2543Smrg
4334706f2543Smrgvoid __glXDisp_ProgramStringARB(GLbyte * pc)
4335706f2543Smrg{
4336706f2543Smrg    const GLsizei len = *(GLsizei  *)(pc +  8);
4337706f2543Smrg
4338706f2543Smrg    CALL_ProgramStringARB( GET_DISPATCH(), (
4339706f2543Smrg        *(GLenum   *)(pc +  0),
4340706f2543Smrg        *(GLenum   *)(pc +  4),
4341706f2543Smrg        len,
4342706f2543Smrg         (const GLvoid *)(pc + 12)
4343706f2543Smrg    ) );
4344706f2543Smrg}
4345706f2543Smrg
4346706f2543Smrgvoid __glXDisp_VertexAttrib1dvARB(GLbyte * pc)
4347706f2543Smrg{
4348706f2543Smrg#ifdef __GLX_ALIGN64
4349706f2543Smrg    if ((unsigned long)(pc) & 7) {
4350706f2543Smrg        (void) memmove(pc-4, pc, 12);
4351706f2543Smrg        pc -= 4;
4352706f2543Smrg    }
4353706f2543Smrg#endif
4354706f2543Smrg
4355706f2543Smrg    CALL_VertexAttrib1dvARB( GET_DISPATCH(), (
4356706f2543Smrg        *(GLuint   *)(pc +  0),
4357706f2543Smrg         (const GLdouble *)(pc +  4)
4358706f2543Smrg    ) );
4359706f2543Smrg}
4360706f2543Smrg
4361706f2543Smrgvoid __glXDisp_VertexAttrib1fvARB(GLbyte * pc)
4362706f2543Smrg{
4363706f2543Smrg    CALL_VertexAttrib1fvARB( GET_DISPATCH(), (
4364706f2543Smrg        *(GLuint   *)(pc +  0),
4365706f2543Smrg         (const GLfloat *)(pc +  4)
4366706f2543Smrg    ) );
4367706f2543Smrg}
4368706f2543Smrg
4369706f2543Smrgvoid __glXDisp_VertexAttrib1svARB(GLbyte * pc)
4370706f2543Smrg{
4371706f2543Smrg    CALL_VertexAttrib1svARB( GET_DISPATCH(), (
4372706f2543Smrg        *(GLuint   *)(pc +  0),
4373706f2543Smrg         (const GLshort *)(pc +  4)
4374706f2543Smrg    ) );
4375706f2543Smrg}
4376706f2543Smrg
4377706f2543Smrgvoid __glXDisp_VertexAttrib2dvARB(GLbyte * pc)
4378706f2543Smrg{
4379706f2543Smrg#ifdef __GLX_ALIGN64
4380706f2543Smrg    if ((unsigned long)(pc) & 7) {
4381706f2543Smrg        (void) memmove(pc-4, pc, 20);
4382706f2543Smrg        pc -= 4;
4383706f2543Smrg    }
4384706f2543Smrg#endif
4385706f2543Smrg
4386706f2543Smrg    CALL_VertexAttrib2dvARB( GET_DISPATCH(), (
4387706f2543Smrg        *(GLuint   *)(pc +  0),
4388706f2543Smrg         (const GLdouble *)(pc +  4)
4389706f2543Smrg    ) );
4390706f2543Smrg}
4391706f2543Smrg
4392706f2543Smrgvoid __glXDisp_VertexAttrib2fvARB(GLbyte * pc)
4393706f2543Smrg{
4394706f2543Smrg    CALL_VertexAttrib2fvARB( GET_DISPATCH(), (
4395706f2543Smrg        *(GLuint   *)(pc +  0),
4396706f2543Smrg         (const GLfloat *)(pc +  4)
4397706f2543Smrg    ) );
4398706f2543Smrg}
4399706f2543Smrg
4400706f2543Smrgvoid __glXDisp_VertexAttrib2svARB(GLbyte * pc)
4401706f2543Smrg{
4402706f2543Smrg    CALL_VertexAttrib2svARB( GET_DISPATCH(), (
4403706f2543Smrg        *(GLuint   *)(pc +  0),
4404706f2543Smrg         (const GLshort *)(pc +  4)
4405706f2543Smrg    ) );
4406706f2543Smrg}
4407706f2543Smrg
4408706f2543Smrgvoid __glXDisp_VertexAttrib3dvARB(GLbyte * pc)
4409706f2543Smrg{
4410706f2543Smrg#ifdef __GLX_ALIGN64
4411706f2543Smrg    if ((unsigned long)(pc) & 7) {
4412706f2543Smrg        (void) memmove(pc-4, pc, 28);
4413706f2543Smrg        pc -= 4;
4414706f2543Smrg    }
4415706f2543Smrg#endif
4416706f2543Smrg
4417706f2543Smrg    CALL_VertexAttrib3dvARB( GET_DISPATCH(), (
4418706f2543Smrg        *(GLuint   *)(pc +  0),
4419706f2543Smrg         (const GLdouble *)(pc +  4)
4420706f2543Smrg    ) );
4421706f2543Smrg}
4422706f2543Smrg
4423706f2543Smrgvoid __glXDisp_VertexAttrib3fvARB(GLbyte * pc)
4424706f2543Smrg{
4425706f2543Smrg    CALL_VertexAttrib3fvARB( GET_DISPATCH(), (
4426706f2543Smrg        *(GLuint   *)(pc +  0),
4427706f2543Smrg         (const GLfloat *)(pc +  4)
4428706f2543Smrg    ) );
4429706f2543Smrg}
4430706f2543Smrg
4431706f2543Smrgvoid __glXDisp_VertexAttrib3svARB(GLbyte * pc)
4432706f2543Smrg{
4433706f2543Smrg    CALL_VertexAttrib3svARB( GET_DISPATCH(), (
4434706f2543Smrg        *(GLuint   *)(pc +  0),
4435706f2543Smrg         (const GLshort *)(pc +  4)
4436706f2543Smrg    ) );
4437706f2543Smrg}
4438706f2543Smrg
4439706f2543Smrgvoid __glXDisp_VertexAttrib4NbvARB(GLbyte * pc)
4440706f2543Smrg{
4441706f2543Smrg    CALL_VertexAttrib4NbvARB( GET_DISPATCH(), (
4442706f2543Smrg        *(GLuint   *)(pc +  0),
4443706f2543Smrg         (const GLbyte *)(pc +  4)
4444706f2543Smrg    ) );
4445706f2543Smrg}
4446706f2543Smrg
4447706f2543Smrgvoid __glXDisp_VertexAttrib4NivARB(GLbyte * pc)
4448706f2543Smrg{
4449706f2543Smrg    CALL_VertexAttrib4NivARB( GET_DISPATCH(), (
4450706f2543Smrg        *(GLuint   *)(pc +  0),
4451706f2543Smrg         (const GLint *)(pc +  4)
4452706f2543Smrg    ) );
4453706f2543Smrg}
4454706f2543Smrg
4455706f2543Smrgvoid __glXDisp_VertexAttrib4NsvARB(GLbyte * pc)
4456706f2543Smrg{
4457706f2543Smrg    CALL_VertexAttrib4NsvARB( GET_DISPATCH(), (
4458706f2543Smrg        *(GLuint   *)(pc +  0),
4459706f2543Smrg         (const GLshort *)(pc +  4)
4460706f2543Smrg    ) );
4461706f2543Smrg}
4462706f2543Smrg
4463706f2543Smrgvoid __glXDisp_VertexAttrib4NubvARB(GLbyte * pc)
4464706f2543Smrg{
4465706f2543Smrg    CALL_VertexAttrib4NubvARB( GET_DISPATCH(), (
4466706f2543Smrg        *(GLuint   *)(pc +  0),
4467706f2543Smrg         (const GLubyte *)(pc +  4)
4468706f2543Smrg    ) );
4469706f2543Smrg}
4470706f2543Smrg
4471706f2543Smrgvoid __glXDisp_VertexAttrib4NuivARB(GLbyte * pc)
4472706f2543Smrg{
4473706f2543Smrg    CALL_VertexAttrib4NuivARB( GET_DISPATCH(), (
4474706f2543Smrg        *(GLuint   *)(pc +  0),
4475706f2543Smrg         (const GLuint *)(pc +  4)
4476706f2543Smrg    ) );
4477706f2543Smrg}
4478706f2543Smrg
4479706f2543Smrgvoid __glXDisp_VertexAttrib4NusvARB(GLbyte * pc)
4480706f2543Smrg{
4481706f2543Smrg    CALL_VertexAttrib4NusvARB( GET_DISPATCH(), (
4482706f2543Smrg        *(GLuint   *)(pc +  0),
4483706f2543Smrg         (const GLushort *)(pc +  4)
4484706f2543Smrg    ) );
4485706f2543Smrg}
4486706f2543Smrg
4487706f2543Smrgvoid __glXDisp_VertexAttrib4bvARB(GLbyte * pc)
4488706f2543Smrg{
4489706f2543Smrg    CALL_VertexAttrib4bvARB( GET_DISPATCH(), (
4490706f2543Smrg        *(GLuint   *)(pc +  0),
4491706f2543Smrg         (const GLbyte *)(pc +  4)
4492706f2543Smrg    ) );
4493706f2543Smrg}
4494706f2543Smrg
4495706f2543Smrgvoid __glXDisp_VertexAttrib4dvARB(GLbyte * pc)
4496706f2543Smrg{
4497706f2543Smrg#ifdef __GLX_ALIGN64
4498706f2543Smrg    if ((unsigned long)(pc) & 7) {
4499706f2543Smrg        (void) memmove(pc-4, pc, 36);
4500706f2543Smrg        pc -= 4;
4501706f2543Smrg    }
4502706f2543Smrg#endif
4503706f2543Smrg
4504706f2543Smrg    CALL_VertexAttrib4dvARB( GET_DISPATCH(), (
4505706f2543Smrg        *(GLuint   *)(pc +  0),
4506706f2543Smrg         (const GLdouble *)(pc +  4)
4507706f2543Smrg    ) );
4508706f2543Smrg}
4509706f2543Smrg
4510706f2543Smrgvoid __glXDisp_VertexAttrib4fvARB(GLbyte * pc)
4511706f2543Smrg{
4512706f2543Smrg    CALL_VertexAttrib4fvARB( GET_DISPATCH(), (
4513706f2543Smrg        *(GLuint   *)(pc +  0),
4514706f2543Smrg         (const GLfloat *)(pc +  4)
4515706f2543Smrg    ) );
4516706f2543Smrg}
4517706f2543Smrg
4518706f2543Smrgvoid __glXDisp_VertexAttrib4ivARB(GLbyte * pc)
4519706f2543Smrg{
4520706f2543Smrg    CALL_VertexAttrib4ivARB( GET_DISPATCH(), (
4521706f2543Smrg        *(GLuint   *)(pc +  0),
4522706f2543Smrg         (const GLint *)(pc +  4)
4523706f2543Smrg    ) );
4524706f2543Smrg}
4525706f2543Smrg
4526706f2543Smrgvoid __glXDisp_VertexAttrib4svARB(GLbyte * pc)
4527706f2543Smrg{
4528706f2543Smrg    CALL_VertexAttrib4svARB( GET_DISPATCH(), (
4529706f2543Smrg        *(GLuint   *)(pc +  0),
4530706f2543Smrg         (const GLshort *)(pc +  4)
4531706f2543Smrg    ) );
4532706f2543Smrg}
4533706f2543Smrg
4534706f2543Smrgvoid __glXDisp_VertexAttrib4ubvARB(GLbyte * pc)
4535706f2543Smrg{
4536706f2543Smrg    CALL_VertexAttrib4ubvARB( GET_DISPATCH(), (
4537706f2543Smrg        *(GLuint   *)(pc +  0),
4538706f2543Smrg         (const GLubyte *)(pc +  4)
4539706f2543Smrg    ) );
4540706f2543Smrg}
4541706f2543Smrg
4542706f2543Smrgvoid __glXDisp_VertexAttrib4uivARB(GLbyte * pc)
4543706f2543Smrg{
4544706f2543Smrg    CALL_VertexAttrib4uivARB( GET_DISPATCH(), (
4545706f2543Smrg        *(GLuint   *)(pc +  0),
4546706f2543Smrg         (const GLuint *)(pc +  4)
4547706f2543Smrg    ) );
4548706f2543Smrg}
4549706f2543Smrg
4550706f2543Smrgvoid __glXDisp_VertexAttrib4usvARB(GLbyte * pc)
4551706f2543Smrg{
4552706f2543Smrg    CALL_VertexAttrib4usvARB( GET_DISPATCH(), (
4553706f2543Smrg        *(GLuint   *)(pc +  0),
4554706f2543Smrg         (const GLushort *)(pc +  4)
4555706f2543Smrg    ) );
4556706f2543Smrg}
4557706f2543Smrg
4558706f2543Smrgvoid __glXDisp_BeginQueryARB(GLbyte * pc)
4559706f2543Smrg{
4560706f2543Smrg    CALL_BeginQueryARB( GET_DISPATCH(), (
4561706f2543Smrg        *(GLenum   *)(pc +  0),
4562706f2543Smrg        *(GLuint   *)(pc +  4)
4563706f2543Smrg    ) );
4564706f2543Smrg}
4565706f2543Smrg
4566706f2543Smrgint __glXDisp_DeleteQueriesARB(__GLXclientState *cl, GLbyte *pc)
4567706f2543Smrg{
4568706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
4569706f2543Smrg    int error;
4570706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4571706f2543Smrg
4572706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
4573706f2543Smrg    if ( cx != NULL ) {
4574706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
4575706f2543Smrg
4576706f2543Smrg        CALL_DeleteQueriesARB( GET_DISPATCH(), (
4577706f2543Smrg            n,
4578706f2543Smrg             (const GLuint *)(pc +  4)
4579706f2543Smrg        ) );
4580706f2543Smrg        error = Success;
4581706f2543Smrg    }
4582706f2543Smrg
4583706f2543Smrg    return error;
4584706f2543Smrg}
4585706f2543Smrg
4586706f2543Smrgvoid __glXDisp_EndQueryARB(GLbyte * pc)
4587706f2543Smrg{
4588706f2543Smrg    CALL_EndQueryARB( GET_DISPATCH(), (
4589706f2543Smrg        *(GLenum   *)(pc +  0)
4590706f2543Smrg    ) );
4591706f2543Smrg}
4592706f2543Smrg
4593706f2543Smrgint __glXDisp_GenQueriesARB(__GLXclientState *cl, GLbyte *pc)
4594706f2543Smrg{
4595706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
4596706f2543Smrg    int error;
4597706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4598706f2543Smrg
4599706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
4600706f2543Smrg    if ( cx != NULL ) {
4601706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
4602706f2543Smrg
4603706f2543Smrg        GLuint answerBuffer[200];
4604706f2543Smrg        GLuint * ids = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
4605706f2543Smrg        CALL_GenQueriesARB( GET_DISPATCH(), (
4606706f2543Smrg            n,
4607706f2543Smrg            ids
4608706f2543Smrg        ) );
4609706f2543Smrg        __glXSendReply(cl->client, ids, n, 4, GL_TRUE, 0);
4610706f2543Smrg        error = Success;
4611706f2543Smrg    }
4612706f2543Smrg
4613706f2543Smrg    return error;
4614706f2543Smrg}
4615706f2543Smrg
4616706f2543Smrgint __glXDisp_GetQueryObjectivARB(__GLXclientState *cl, GLbyte *pc)
4617706f2543Smrg{
4618706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
4619706f2543Smrg    int error;
4620706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4621706f2543Smrg
4622706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
4623706f2543Smrg    if ( cx != NULL ) {
4624706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
4625706f2543Smrg
4626706f2543Smrg        const GLuint compsize = __glGetQueryObjectivARB_size(pname);
4627706f2543Smrg        GLint answerBuffer[200];
4628706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
4629706f2543Smrg
4630706f2543Smrg        if (params == NULL) return BadAlloc;
4631706f2543Smrg        __glXClearErrorOccured();
4632706f2543Smrg
4633706f2543Smrg        CALL_GetQueryObjectivARB( GET_DISPATCH(), (
4634706f2543Smrg            *(GLuint   *)(pc +  0),
4635706f2543Smrg            pname,
4636706f2543Smrg            params
4637706f2543Smrg        ) );
4638706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
4639706f2543Smrg        error = Success;
4640706f2543Smrg    }
4641706f2543Smrg
4642706f2543Smrg    return error;
4643706f2543Smrg}
4644706f2543Smrg
4645706f2543Smrgint __glXDisp_GetQueryObjectuivARB(__GLXclientState *cl, GLbyte *pc)
4646706f2543Smrg{
4647706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
4648706f2543Smrg    int error;
4649706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4650706f2543Smrg
4651706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
4652706f2543Smrg    if ( cx != NULL ) {
4653706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
4654706f2543Smrg
4655706f2543Smrg        const GLuint compsize = __glGetQueryObjectuivARB_size(pname);
4656706f2543Smrg        GLuint answerBuffer[200];
4657706f2543Smrg        GLuint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
4658706f2543Smrg
4659706f2543Smrg        if (params == NULL) return BadAlloc;
4660706f2543Smrg        __glXClearErrorOccured();
4661706f2543Smrg
4662706f2543Smrg        CALL_GetQueryObjectuivARB( GET_DISPATCH(), (
4663706f2543Smrg            *(GLuint   *)(pc +  0),
4664706f2543Smrg            pname,
4665706f2543Smrg            params
4666706f2543Smrg        ) );
4667706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
4668706f2543Smrg        error = Success;
4669706f2543Smrg    }
4670706f2543Smrg
4671706f2543Smrg    return error;
4672706f2543Smrg}
4673706f2543Smrg
4674706f2543Smrgint __glXDisp_GetQueryivARB(__GLXclientState *cl, GLbyte *pc)
4675706f2543Smrg{
4676706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
4677706f2543Smrg    int error;
4678706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4679706f2543Smrg
4680706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
4681706f2543Smrg    if ( cx != NULL ) {
4682706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
4683706f2543Smrg
4684706f2543Smrg        const GLuint compsize = __glGetQueryivARB_size(pname);
4685706f2543Smrg        GLint answerBuffer[200];
4686706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
4687706f2543Smrg
4688706f2543Smrg        if (params == NULL) return BadAlloc;
4689706f2543Smrg        __glXClearErrorOccured();
4690706f2543Smrg
4691706f2543Smrg        CALL_GetQueryivARB( GET_DISPATCH(), (
4692706f2543Smrg            *(GLenum   *)(pc +  0),
4693706f2543Smrg            pname,
4694706f2543Smrg            params
4695706f2543Smrg        ) );
4696706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
4697706f2543Smrg        error = Success;
4698706f2543Smrg    }
4699706f2543Smrg
4700706f2543Smrg    return error;
4701706f2543Smrg}
4702706f2543Smrg
4703706f2543Smrgint __glXDisp_IsQueryARB(__GLXclientState *cl, GLbyte *pc)
4704706f2543Smrg{
4705706f2543Smrg    xGLXSingleReq * const req = (xGLXSingleReq *) pc;
4706706f2543Smrg    int error;
4707706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4708706f2543Smrg
4709706f2543Smrg    pc += __GLX_SINGLE_HDR_SIZE;
4710706f2543Smrg    if ( cx != NULL ) {
4711706f2543Smrg        GLboolean retval;
4712706f2543Smrg        retval = CALL_IsQueryARB( GET_DISPATCH(), (
4713706f2543Smrg            *(GLuint   *)(pc +  0)
4714706f2543Smrg        ) );
4715706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
4716706f2543Smrg        error = Success;
4717706f2543Smrg    }
4718706f2543Smrg
4719706f2543Smrg    return error;
4720706f2543Smrg}
4721706f2543Smrg
4722706f2543Smrgvoid __glXDisp_DrawBuffersARB(GLbyte * pc)
4723706f2543Smrg{
4724706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  0);
4725706f2543Smrg
4726706f2543Smrg    CALL_DrawBuffersARB( GET_DISPATCH(), (
4727706f2543Smrg        n,
4728706f2543Smrg         (const GLenum *)(pc +  4)
4729706f2543Smrg    ) );
4730706f2543Smrg}
4731706f2543Smrg
4732706f2543Smrgvoid __glXDisp_SampleMaskSGIS(GLbyte * pc)
4733706f2543Smrg{
4734706f2543Smrg    CALL_SampleMaskSGIS( GET_DISPATCH(), (
4735706f2543Smrg        *(GLclampf *)(pc +  0),
4736706f2543Smrg        *(GLboolean *)(pc +  4)
4737706f2543Smrg    ) );
4738706f2543Smrg}
4739706f2543Smrg
4740706f2543Smrgvoid __glXDisp_SamplePatternSGIS(GLbyte * pc)
4741706f2543Smrg{
4742706f2543Smrg    CALL_SamplePatternSGIS( GET_DISPATCH(), (
4743706f2543Smrg        *(GLenum   *)(pc +  0)
4744706f2543Smrg    ) );
4745706f2543Smrg}
4746706f2543Smrg
4747706f2543Smrgvoid __glXDisp_PointParameterfEXT(GLbyte * pc)
4748706f2543Smrg{
4749706f2543Smrg    CALL_PointParameterfEXT( GET_DISPATCH(), (
4750706f2543Smrg        *(GLenum   *)(pc +  0),
4751706f2543Smrg        *(GLfloat  *)(pc +  4)
4752706f2543Smrg    ) );
4753706f2543Smrg}
4754706f2543Smrg
4755706f2543Smrgvoid __glXDisp_PointParameterfvEXT(GLbyte * pc)
4756706f2543Smrg{
4757706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  0);
4758706f2543Smrg    const GLfloat * params;
4759706f2543Smrg
4760706f2543Smrg    params = (const GLfloat *) (pc + 4);
4761706f2543Smrg
4762706f2543Smrg    CALL_PointParameterfvEXT( GET_DISPATCH(), (
4763706f2543Smrg        pname,
4764706f2543Smrg        params
4765706f2543Smrg    ) );
4766706f2543Smrg}
4767706f2543Smrg
4768706f2543Smrgvoid __glXDisp_SecondaryColor3bvEXT(GLbyte * pc)
4769706f2543Smrg{
4770706f2543Smrg    CALL_SecondaryColor3bvEXT( GET_DISPATCH(), (
4771706f2543Smrg         (const GLbyte *)(pc +  0)
4772706f2543Smrg    ) );
4773706f2543Smrg}
4774706f2543Smrg
4775706f2543Smrgvoid __glXDisp_SecondaryColor3dvEXT(GLbyte * pc)
4776706f2543Smrg{
4777706f2543Smrg#ifdef __GLX_ALIGN64
4778706f2543Smrg    if ((unsigned long)(pc) & 7) {
4779706f2543Smrg        (void) memmove(pc-4, pc, 24);
4780706f2543Smrg        pc -= 4;
4781706f2543Smrg    }
4782706f2543Smrg#endif
4783706f2543Smrg
4784706f2543Smrg    CALL_SecondaryColor3dvEXT( GET_DISPATCH(), (
4785706f2543Smrg         (const GLdouble *)(pc +  0)
4786706f2543Smrg    ) );
4787706f2543Smrg}
4788706f2543Smrg
4789706f2543Smrgvoid __glXDisp_SecondaryColor3fvEXT(GLbyte * pc)
4790706f2543Smrg{
4791706f2543Smrg    CALL_SecondaryColor3fvEXT( GET_DISPATCH(), (
4792706f2543Smrg         (const GLfloat *)(pc +  0)
4793706f2543Smrg    ) );
4794706f2543Smrg}
4795706f2543Smrg
4796706f2543Smrgvoid __glXDisp_SecondaryColor3ivEXT(GLbyte * pc)
4797706f2543Smrg{
4798706f2543Smrg    CALL_SecondaryColor3ivEXT( GET_DISPATCH(), (
4799706f2543Smrg         (const GLint *)(pc +  0)
4800706f2543Smrg    ) );
4801706f2543Smrg}
4802706f2543Smrg
4803706f2543Smrgvoid __glXDisp_SecondaryColor3svEXT(GLbyte * pc)
4804706f2543Smrg{
4805706f2543Smrg    CALL_SecondaryColor3svEXT( GET_DISPATCH(), (
4806706f2543Smrg         (const GLshort *)(pc +  0)
4807706f2543Smrg    ) );
4808706f2543Smrg}
4809706f2543Smrg
4810706f2543Smrgvoid __glXDisp_SecondaryColor3ubvEXT(GLbyte * pc)
4811706f2543Smrg{
4812706f2543Smrg    CALL_SecondaryColor3ubvEXT( GET_DISPATCH(), (
4813706f2543Smrg         (const GLubyte *)(pc +  0)
4814706f2543Smrg    ) );
4815706f2543Smrg}
4816706f2543Smrg
4817706f2543Smrgvoid __glXDisp_SecondaryColor3uivEXT(GLbyte * pc)
4818706f2543Smrg{
4819706f2543Smrg    CALL_SecondaryColor3uivEXT( GET_DISPATCH(), (
4820706f2543Smrg         (const GLuint *)(pc +  0)
4821706f2543Smrg    ) );
4822706f2543Smrg}
4823706f2543Smrg
4824706f2543Smrgvoid __glXDisp_SecondaryColor3usvEXT(GLbyte * pc)
4825706f2543Smrg{
4826706f2543Smrg    CALL_SecondaryColor3usvEXT( GET_DISPATCH(), (
4827706f2543Smrg         (const GLushort *)(pc +  0)
4828706f2543Smrg    ) );
4829706f2543Smrg}
4830706f2543Smrg
4831706f2543Smrgvoid __glXDisp_FogCoorddvEXT(GLbyte * pc)
4832706f2543Smrg{
4833706f2543Smrg#ifdef __GLX_ALIGN64
4834706f2543Smrg    if ((unsigned long)(pc) & 7) {
4835706f2543Smrg        (void) memmove(pc-4, pc, 8);
4836706f2543Smrg        pc -= 4;
4837706f2543Smrg    }
4838706f2543Smrg#endif
4839706f2543Smrg
4840706f2543Smrg    CALL_FogCoorddvEXT( GET_DISPATCH(), (
4841706f2543Smrg         (const GLdouble *)(pc +  0)
4842706f2543Smrg    ) );
4843706f2543Smrg}
4844706f2543Smrg
4845706f2543Smrgvoid __glXDisp_FogCoordfvEXT(GLbyte * pc)
4846706f2543Smrg{
4847706f2543Smrg    CALL_FogCoordfvEXT( GET_DISPATCH(), (
4848706f2543Smrg         (const GLfloat *)(pc +  0)
4849706f2543Smrg    ) );
4850706f2543Smrg}
4851706f2543Smrg
4852706f2543Smrgvoid __glXDisp_BlendFuncSeparateEXT(GLbyte * pc)
4853706f2543Smrg{
4854706f2543Smrg    CALL_BlendFuncSeparateEXT( GET_DISPATCH(), (
4855706f2543Smrg        *(GLenum   *)(pc +  0),
4856706f2543Smrg        *(GLenum   *)(pc +  4),
4857706f2543Smrg        *(GLenum   *)(pc +  8),
4858706f2543Smrg        *(GLenum   *)(pc + 12)
4859706f2543Smrg    ) );
4860706f2543Smrg}
4861706f2543Smrg
4862706f2543Smrgvoid __glXDisp_WindowPos3fvMESA(GLbyte * pc)
4863706f2543Smrg{
4864706f2543Smrg    CALL_WindowPos3fvMESA( GET_DISPATCH(), (
4865706f2543Smrg         (const GLfloat *)(pc +  0)
4866706f2543Smrg    ) );
4867706f2543Smrg}
4868706f2543Smrg
4869706f2543Smrgint __glXDisp_AreProgramsResidentNV(__GLXclientState *cl, GLbyte *pc)
4870706f2543Smrg{
4871706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4872706f2543Smrg    int error;
4873706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4874706f2543Smrg
4875706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4876706f2543Smrg    if ( cx != NULL ) {
4877706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
4878706f2543Smrg
4879706f2543Smrg        GLboolean retval;
4880706f2543Smrg        GLboolean answerBuffer[200];
4881706f2543Smrg        GLboolean * residences = __glXGetAnswerBuffer(cl, n, answerBuffer, sizeof(answerBuffer), 1);
4882706f2543Smrg        retval = CALL_AreProgramsResidentNV( GET_DISPATCH(), (
4883706f2543Smrg            n,
4884706f2543Smrg             (const GLuint *)(pc +  4),
4885706f2543Smrg            residences
4886706f2543Smrg        ) );
4887706f2543Smrg        __glXSendReply(cl->client, residences, n, 1, GL_FALSE, retval);
4888706f2543Smrg        error = Success;
4889706f2543Smrg    }
4890706f2543Smrg
4891706f2543Smrg    return error;
4892706f2543Smrg}
4893706f2543Smrg
4894706f2543Smrgvoid __glXDisp_BindProgramNV(GLbyte * pc)
4895706f2543Smrg{
4896706f2543Smrg    CALL_BindProgramNV( GET_DISPATCH(), (
4897706f2543Smrg        *(GLenum   *)(pc +  0),
4898706f2543Smrg        *(GLuint   *)(pc +  4)
4899706f2543Smrg    ) );
4900706f2543Smrg}
4901706f2543Smrg
4902706f2543Smrgint __glXDisp_DeleteProgramsNV(__GLXclientState *cl, GLbyte *pc)
4903706f2543Smrg{
4904706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4905706f2543Smrg    int error;
4906706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4907706f2543Smrg
4908706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4909706f2543Smrg    if ( cx != NULL ) {
4910706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
4911706f2543Smrg
4912706f2543Smrg        CALL_DeleteProgramsNV( GET_DISPATCH(), (
4913706f2543Smrg            n,
4914706f2543Smrg             (const GLuint *)(pc +  4)
4915706f2543Smrg        ) );
4916706f2543Smrg        error = Success;
4917706f2543Smrg    }
4918706f2543Smrg
4919706f2543Smrg    return error;
4920706f2543Smrg}
4921706f2543Smrg
4922706f2543Smrgvoid __glXDisp_ExecuteProgramNV(GLbyte * pc)
4923706f2543Smrg{
4924706f2543Smrg    CALL_ExecuteProgramNV( GET_DISPATCH(), (
4925706f2543Smrg        *(GLenum   *)(pc +  0),
4926706f2543Smrg        *(GLuint   *)(pc +  4),
4927706f2543Smrg         (const GLfloat *)(pc +  8)
4928706f2543Smrg    ) );
4929706f2543Smrg}
4930706f2543Smrg
4931706f2543Smrgint __glXDisp_GenProgramsNV(__GLXclientState *cl, GLbyte *pc)
4932706f2543Smrg{
4933706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4934706f2543Smrg    int error;
4935706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4936706f2543Smrg
4937706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4938706f2543Smrg    if ( cx != NULL ) {
4939706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
4940706f2543Smrg
4941706f2543Smrg        GLuint answerBuffer[200];
4942706f2543Smrg        GLuint * programs = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
4943706f2543Smrg        CALL_GenProgramsNV( GET_DISPATCH(), (
4944706f2543Smrg            n,
4945706f2543Smrg            programs
4946706f2543Smrg        ) );
4947706f2543Smrg        __glXSendReply(cl->client, programs, n, 4, GL_TRUE, 0);
4948706f2543Smrg        error = Success;
4949706f2543Smrg    }
4950706f2543Smrg
4951706f2543Smrg    return error;
4952706f2543Smrg}
4953706f2543Smrg
4954706f2543Smrgint __glXDisp_GetProgramParameterdvNV(__GLXclientState *cl, GLbyte *pc)
4955706f2543Smrg{
4956706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4957706f2543Smrg    int error;
4958706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4959706f2543Smrg
4960706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4961706f2543Smrg    if ( cx != NULL ) {
4962706f2543Smrg        GLdouble params[4];
4963706f2543Smrg        CALL_GetProgramParameterdvNV( GET_DISPATCH(), (
4964706f2543Smrg            *(GLenum   *)(pc +  0),
4965706f2543Smrg            *(GLuint   *)(pc +  4),
4966706f2543Smrg            *(GLenum   *)(pc +  8),
4967706f2543Smrg            params
4968706f2543Smrg        ) );
4969706f2543Smrg        __glXSendReply(cl->client, params, 4, 8, GL_FALSE, 0);
4970706f2543Smrg        error = Success;
4971706f2543Smrg    }
4972706f2543Smrg
4973706f2543Smrg    return error;
4974706f2543Smrg}
4975706f2543Smrg
4976706f2543Smrgint __glXDisp_GetProgramParameterfvNV(__GLXclientState *cl, GLbyte *pc)
4977706f2543Smrg{
4978706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
4979706f2543Smrg    int error;
4980706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
4981706f2543Smrg
4982706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
4983706f2543Smrg    if ( cx != NULL ) {
4984706f2543Smrg        GLfloat params[4];
4985706f2543Smrg        CALL_GetProgramParameterfvNV( GET_DISPATCH(), (
4986706f2543Smrg            *(GLenum   *)(pc +  0),
4987706f2543Smrg            *(GLuint   *)(pc +  4),
4988706f2543Smrg            *(GLenum   *)(pc +  8),
4989706f2543Smrg            params
4990706f2543Smrg        ) );
4991706f2543Smrg        __glXSendReply(cl->client, params, 4, 4, GL_FALSE, 0);
4992706f2543Smrg        error = Success;
4993706f2543Smrg    }
4994706f2543Smrg
4995706f2543Smrg    return error;
4996706f2543Smrg}
4997706f2543Smrg
4998706f2543Smrgint __glXDisp_GetProgramivNV(__GLXclientState *cl, GLbyte *pc)
4999706f2543Smrg{
5000706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5001706f2543Smrg    int error;
5002706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5003706f2543Smrg
5004706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5005706f2543Smrg    if ( cx != NULL ) {
5006706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
5007706f2543Smrg
5008706f2543Smrg        const GLuint compsize = __glGetProgramivNV_size(pname);
5009706f2543Smrg        GLint answerBuffer[200];
5010706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
5011706f2543Smrg
5012706f2543Smrg        if (params == NULL) return BadAlloc;
5013706f2543Smrg        __glXClearErrorOccured();
5014706f2543Smrg
5015706f2543Smrg        CALL_GetProgramivNV( GET_DISPATCH(), (
5016706f2543Smrg            *(GLuint   *)(pc +  0),
5017706f2543Smrg            pname,
5018706f2543Smrg            params
5019706f2543Smrg        ) );
5020706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
5021706f2543Smrg        error = Success;
5022706f2543Smrg    }
5023706f2543Smrg
5024706f2543Smrg    return error;
5025706f2543Smrg}
5026706f2543Smrg
5027706f2543Smrgint __glXDisp_GetTrackMatrixivNV(__GLXclientState *cl, GLbyte *pc)
5028706f2543Smrg{
5029706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5030706f2543Smrg    int error;
5031706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5032706f2543Smrg
5033706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5034706f2543Smrg    if ( cx != NULL ) {
5035706f2543Smrg        GLint params[1];
5036706f2543Smrg        CALL_GetTrackMatrixivNV( GET_DISPATCH(), (
5037706f2543Smrg            *(GLenum   *)(pc +  0),
5038706f2543Smrg            *(GLuint   *)(pc +  4),
5039706f2543Smrg            *(GLenum   *)(pc +  8),
5040706f2543Smrg            params
5041706f2543Smrg        ) );
5042706f2543Smrg        __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
5043706f2543Smrg        error = Success;
5044706f2543Smrg    }
5045706f2543Smrg
5046706f2543Smrg    return error;
5047706f2543Smrg}
5048706f2543Smrg
5049706f2543Smrgint __glXDisp_GetVertexAttribdvNV(__GLXclientState *cl, GLbyte *pc)
5050706f2543Smrg{
5051706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5052706f2543Smrg    int error;
5053706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5054706f2543Smrg
5055706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5056706f2543Smrg    if ( cx != NULL ) {
5057706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
5058706f2543Smrg
5059706f2543Smrg        const GLuint compsize = __glGetVertexAttribdvNV_size(pname);
5060706f2543Smrg        GLdouble answerBuffer[200];
5061706f2543Smrg        GLdouble * params = __glXGetAnswerBuffer(cl, compsize * 8, answerBuffer, sizeof(answerBuffer), 8);
5062706f2543Smrg
5063706f2543Smrg        if (params == NULL) return BadAlloc;
5064706f2543Smrg        __glXClearErrorOccured();
5065706f2543Smrg
5066706f2543Smrg        CALL_GetVertexAttribdvNV( GET_DISPATCH(), (
5067706f2543Smrg            *(GLuint   *)(pc +  0),
5068706f2543Smrg            pname,
5069706f2543Smrg            params
5070706f2543Smrg        ) );
5071706f2543Smrg        __glXSendReply(cl->client, params, compsize, 8, GL_FALSE, 0);
5072706f2543Smrg        error = Success;
5073706f2543Smrg    }
5074706f2543Smrg
5075706f2543Smrg    return error;
5076706f2543Smrg}
5077706f2543Smrg
5078706f2543Smrgint __glXDisp_GetVertexAttribfvNV(__GLXclientState *cl, GLbyte *pc)
5079706f2543Smrg{
5080706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5081706f2543Smrg    int error;
5082706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5083706f2543Smrg
5084706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5085706f2543Smrg    if ( cx != NULL ) {
5086706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
5087706f2543Smrg
5088706f2543Smrg        const GLuint compsize = __glGetVertexAttribfvNV_size(pname);
5089706f2543Smrg        GLfloat answerBuffer[200];
5090706f2543Smrg        GLfloat * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
5091706f2543Smrg
5092706f2543Smrg        if (params == NULL) return BadAlloc;
5093706f2543Smrg        __glXClearErrorOccured();
5094706f2543Smrg
5095706f2543Smrg        CALL_GetVertexAttribfvNV( GET_DISPATCH(), (
5096706f2543Smrg            *(GLuint   *)(pc +  0),
5097706f2543Smrg            pname,
5098706f2543Smrg            params
5099706f2543Smrg        ) );
5100706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
5101706f2543Smrg        error = Success;
5102706f2543Smrg    }
5103706f2543Smrg
5104706f2543Smrg    return error;
5105706f2543Smrg}
5106706f2543Smrg
5107706f2543Smrgint __glXDisp_GetVertexAttribivNV(__GLXclientState *cl, GLbyte *pc)
5108706f2543Smrg{
5109706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5110706f2543Smrg    int error;
5111706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5112706f2543Smrg
5113706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5114706f2543Smrg    if ( cx != NULL ) {
5115706f2543Smrg        const GLenum pname = *(GLenum   *)(pc +  4);
5116706f2543Smrg
5117706f2543Smrg        const GLuint compsize = __glGetVertexAttribivNV_size(pname);
5118706f2543Smrg        GLint answerBuffer[200];
5119706f2543Smrg        GLint * params = __glXGetAnswerBuffer(cl, compsize * 4, answerBuffer, sizeof(answerBuffer), 4);
5120706f2543Smrg
5121706f2543Smrg        if (params == NULL) return BadAlloc;
5122706f2543Smrg        __glXClearErrorOccured();
5123706f2543Smrg
5124706f2543Smrg        CALL_GetVertexAttribivNV( GET_DISPATCH(), (
5125706f2543Smrg            *(GLuint   *)(pc +  0),
5126706f2543Smrg            pname,
5127706f2543Smrg            params
5128706f2543Smrg        ) );
5129706f2543Smrg        __glXSendReply(cl->client, params, compsize, 4, GL_FALSE, 0);
5130706f2543Smrg        error = Success;
5131706f2543Smrg    }
5132706f2543Smrg
5133706f2543Smrg    return error;
5134706f2543Smrg}
5135706f2543Smrg
5136706f2543Smrgint __glXDisp_IsProgramNV(__GLXclientState *cl, GLbyte *pc)
5137706f2543Smrg{
5138706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5139706f2543Smrg    int error;
5140706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5141706f2543Smrg
5142706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5143706f2543Smrg    if ( cx != NULL ) {
5144706f2543Smrg        GLboolean retval;
5145706f2543Smrg        retval = CALL_IsProgramNV( GET_DISPATCH(), (
5146706f2543Smrg            *(GLuint   *)(pc +  0)
5147706f2543Smrg        ) );
5148706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
5149706f2543Smrg        error = Success;
5150706f2543Smrg    }
5151706f2543Smrg
5152706f2543Smrg    return error;
5153706f2543Smrg}
5154706f2543Smrg
5155706f2543Smrgvoid __glXDisp_LoadProgramNV(GLbyte * pc)
5156706f2543Smrg{
5157706f2543Smrg    const GLsizei len = *(GLsizei  *)(pc +  8);
5158706f2543Smrg
5159706f2543Smrg    CALL_LoadProgramNV( GET_DISPATCH(), (
5160706f2543Smrg        *(GLenum   *)(pc +  0),
5161706f2543Smrg        *(GLuint   *)(pc +  4),
5162706f2543Smrg        len,
5163706f2543Smrg         (const GLubyte *)(pc + 12)
5164706f2543Smrg    ) );
5165706f2543Smrg}
5166706f2543Smrg
5167706f2543Smrgvoid __glXDisp_ProgramParameters4dvNV(GLbyte * pc)
5168706f2543Smrg{
5169706f2543Smrg    const GLuint num = *(GLuint   *)(pc +  8);
5170706f2543Smrg
5171706f2543Smrg#ifdef __GLX_ALIGN64
5172706f2543Smrg    const GLuint cmdlen = 16 + __GLX_PAD((num * 32)) - 4;
5173706f2543Smrg    if ((unsigned long)(pc) & 7) {
5174706f2543Smrg        (void) memmove(pc-4, pc, cmdlen);
5175706f2543Smrg        pc -= 4;
5176706f2543Smrg    }
5177706f2543Smrg#endif
5178706f2543Smrg
5179706f2543Smrg    CALL_ProgramParameters4dvNV( GET_DISPATCH(), (
5180706f2543Smrg        *(GLenum   *)(pc +  0),
5181706f2543Smrg        *(GLuint   *)(pc +  4),
5182706f2543Smrg        num,
5183706f2543Smrg         (const GLdouble *)(pc + 12)
5184706f2543Smrg    ) );
5185706f2543Smrg}
5186706f2543Smrg
5187706f2543Smrgvoid __glXDisp_ProgramParameters4fvNV(GLbyte * pc)
5188706f2543Smrg{
5189706f2543Smrg    const GLuint num = *(GLuint   *)(pc +  8);
5190706f2543Smrg
5191706f2543Smrg    CALL_ProgramParameters4fvNV( GET_DISPATCH(), (
5192706f2543Smrg        *(GLenum   *)(pc +  0),
5193706f2543Smrg        *(GLuint   *)(pc +  4),
5194706f2543Smrg        num,
5195706f2543Smrg         (const GLfloat *)(pc + 12)
5196706f2543Smrg    ) );
5197706f2543Smrg}
5198706f2543Smrg
5199706f2543Smrgvoid __glXDisp_RequestResidentProgramsNV(GLbyte * pc)
5200706f2543Smrg{
5201706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  0);
5202706f2543Smrg
5203706f2543Smrg    CALL_RequestResidentProgramsNV( GET_DISPATCH(), (
5204706f2543Smrg        n,
5205706f2543Smrg         (const GLuint *)(pc +  4)
5206706f2543Smrg    ) );
5207706f2543Smrg}
5208706f2543Smrg
5209706f2543Smrgvoid __glXDisp_TrackMatrixNV(GLbyte * pc)
5210706f2543Smrg{
5211706f2543Smrg    CALL_TrackMatrixNV( GET_DISPATCH(), (
5212706f2543Smrg        *(GLenum   *)(pc +  0),
5213706f2543Smrg        *(GLuint   *)(pc +  4),
5214706f2543Smrg        *(GLenum   *)(pc +  8),
5215706f2543Smrg        *(GLenum   *)(pc + 12)
5216706f2543Smrg    ) );
5217706f2543Smrg}
5218706f2543Smrg
5219706f2543Smrgvoid __glXDisp_VertexAttrib1dvNV(GLbyte * pc)
5220706f2543Smrg{
5221706f2543Smrg#ifdef __GLX_ALIGN64
5222706f2543Smrg    if ((unsigned long)(pc) & 7) {
5223706f2543Smrg        (void) memmove(pc-4, pc, 12);
5224706f2543Smrg        pc -= 4;
5225706f2543Smrg    }
5226706f2543Smrg#endif
5227706f2543Smrg
5228706f2543Smrg    CALL_VertexAttrib1dvNV( GET_DISPATCH(), (
5229706f2543Smrg        *(GLuint   *)(pc +  0),
5230706f2543Smrg         (const GLdouble *)(pc +  4)
5231706f2543Smrg    ) );
5232706f2543Smrg}
5233706f2543Smrg
5234706f2543Smrgvoid __glXDisp_VertexAttrib1fvNV(GLbyte * pc)
5235706f2543Smrg{
5236706f2543Smrg    CALL_VertexAttrib1fvNV( GET_DISPATCH(), (
5237706f2543Smrg        *(GLuint   *)(pc +  0),
5238706f2543Smrg         (const GLfloat *)(pc +  4)
5239706f2543Smrg    ) );
5240706f2543Smrg}
5241706f2543Smrg
5242706f2543Smrgvoid __glXDisp_VertexAttrib1svNV(GLbyte * pc)
5243706f2543Smrg{
5244706f2543Smrg    CALL_VertexAttrib1svNV( GET_DISPATCH(), (
5245706f2543Smrg        *(GLuint   *)(pc +  0),
5246706f2543Smrg         (const GLshort *)(pc +  4)
5247706f2543Smrg    ) );
5248706f2543Smrg}
5249706f2543Smrg
5250706f2543Smrgvoid __glXDisp_VertexAttrib2dvNV(GLbyte * pc)
5251706f2543Smrg{
5252706f2543Smrg#ifdef __GLX_ALIGN64
5253706f2543Smrg    if ((unsigned long)(pc) & 7) {
5254706f2543Smrg        (void) memmove(pc-4, pc, 20);
5255706f2543Smrg        pc -= 4;
5256706f2543Smrg    }
5257706f2543Smrg#endif
5258706f2543Smrg
5259706f2543Smrg    CALL_VertexAttrib2dvNV( GET_DISPATCH(), (
5260706f2543Smrg        *(GLuint   *)(pc +  0),
5261706f2543Smrg         (const GLdouble *)(pc +  4)
5262706f2543Smrg    ) );
5263706f2543Smrg}
5264706f2543Smrg
5265706f2543Smrgvoid __glXDisp_VertexAttrib2fvNV(GLbyte * pc)
5266706f2543Smrg{
5267706f2543Smrg    CALL_VertexAttrib2fvNV( GET_DISPATCH(), (
5268706f2543Smrg        *(GLuint   *)(pc +  0),
5269706f2543Smrg         (const GLfloat *)(pc +  4)
5270706f2543Smrg    ) );
5271706f2543Smrg}
5272706f2543Smrg
5273706f2543Smrgvoid __glXDisp_VertexAttrib2svNV(GLbyte * pc)
5274706f2543Smrg{
5275706f2543Smrg    CALL_VertexAttrib2svNV( GET_DISPATCH(), (
5276706f2543Smrg        *(GLuint   *)(pc +  0),
5277706f2543Smrg         (const GLshort *)(pc +  4)
5278706f2543Smrg    ) );
5279706f2543Smrg}
5280706f2543Smrg
5281706f2543Smrgvoid __glXDisp_VertexAttrib3dvNV(GLbyte * pc)
5282706f2543Smrg{
5283706f2543Smrg#ifdef __GLX_ALIGN64
5284706f2543Smrg    if ((unsigned long)(pc) & 7) {
5285706f2543Smrg        (void) memmove(pc-4, pc, 28);
5286706f2543Smrg        pc -= 4;
5287706f2543Smrg    }
5288706f2543Smrg#endif
5289706f2543Smrg
5290706f2543Smrg    CALL_VertexAttrib3dvNV( GET_DISPATCH(), (
5291706f2543Smrg        *(GLuint   *)(pc +  0),
5292706f2543Smrg         (const GLdouble *)(pc +  4)
5293706f2543Smrg    ) );
5294706f2543Smrg}
5295706f2543Smrg
5296706f2543Smrgvoid __glXDisp_VertexAttrib3fvNV(GLbyte * pc)
5297706f2543Smrg{
5298706f2543Smrg    CALL_VertexAttrib3fvNV( GET_DISPATCH(), (
5299706f2543Smrg        *(GLuint   *)(pc +  0),
5300706f2543Smrg         (const GLfloat *)(pc +  4)
5301706f2543Smrg    ) );
5302706f2543Smrg}
5303706f2543Smrg
5304706f2543Smrgvoid __glXDisp_VertexAttrib3svNV(GLbyte * pc)
5305706f2543Smrg{
5306706f2543Smrg    CALL_VertexAttrib3svNV( GET_DISPATCH(), (
5307706f2543Smrg        *(GLuint   *)(pc +  0),
5308706f2543Smrg         (const GLshort *)(pc +  4)
5309706f2543Smrg    ) );
5310706f2543Smrg}
5311706f2543Smrg
5312706f2543Smrgvoid __glXDisp_VertexAttrib4dvNV(GLbyte * pc)
5313706f2543Smrg{
5314706f2543Smrg#ifdef __GLX_ALIGN64
5315706f2543Smrg    if ((unsigned long)(pc) & 7) {
5316706f2543Smrg        (void) memmove(pc-4, pc, 36);
5317706f2543Smrg        pc -= 4;
5318706f2543Smrg    }
5319706f2543Smrg#endif
5320706f2543Smrg
5321706f2543Smrg    CALL_VertexAttrib4dvNV( GET_DISPATCH(), (
5322706f2543Smrg        *(GLuint   *)(pc +  0),
5323706f2543Smrg         (const GLdouble *)(pc +  4)
5324706f2543Smrg    ) );
5325706f2543Smrg}
5326706f2543Smrg
5327706f2543Smrgvoid __glXDisp_VertexAttrib4fvNV(GLbyte * pc)
5328706f2543Smrg{
5329706f2543Smrg    CALL_VertexAttrib4fvNV( GET_DISPATCH(), (
5330706f2543Smrg        *(GLuint   *)(pc +  0),
5331706f2543Smrg         (const GLfloat *)(pc +  4)
5332706f2543Smrg    ) );
5333706f2543Smrg}
5334706f2543Smrg
5335706f2543Smrgvoid __glXDisp_VertexAttrib4svNV(GLbyte * pc)
5336706f2543Smrg{
5337706f2543Smrg    CALL_VertexAttrib4svNV( GET_DISPATCH(), (
5338706f2543Smrg        *(GLuint   *)(pc +  0),
5339706f2543Smrg         (const GLshort *)(pc +  4)
5340706f2543Smrg    ) );
5341706f2543Smrg}
5342706f2543Smrg
5343706f2543Smrgvoid __glXDisp_VertexAttrib4ubvNV(GLbyte * pc)
5344706f2543Smrg{
5345706f2543Smrg    CALL_VertexAttrib4ubvNV( GET_DISPATCH(), (
5346706f2543Smrg        *(GLuint   *)(pc +  0),
5347706f2543Smrg         (const GLubyte *)(pc +  4)
5348706f2543Smrg    ) );
5349706f2543Smrg}
5350706f2543Smrg
5351706f2543Smrgvoid __glXDisp_VertexAttribs1dvNV(GLbyte * pc)
5352706f2543Smrg{
5353706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5354706f2543Smrg
5355706f2543Smrg#ifdef __GLX_ALIGN64
5356706f2543Smrg    const GLuint cmdlen = 12 + __GLX_PAD((n * 8)) - 4;
5357706f2543Smrg    if ((unsigned long)(pc) & 7) {
5358706f2543Smrg        (void) memmove(pc-4, pc, cmdlen);
5359706f2543Smrg        pc -= 4;
5360706f2543Smrg    }
5361706f2543Smrg#endif
5362706f2543Smrg
5363706f2543Smrg    CALL_VertexAttribs1dvNV( GET_DISPATCH(), (
5364706f2543Smrg        *(GLuint   *)(pc +  0),
5365706f2543Smrg        n,
5366706f2543Smrg         (const GLdouble *)(pc +  8)
5367706f2543Smrg    ) );
5368706f2543Smrg}
5369706f2543Smrg
5370706f2543Smrgvoid __glXDisp_VertexAttribs1fvNV(GLbyte * pc)
5371706f2543Smrg{
5372706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5373706f2543Smrg
5374706f2543Smrg    CALL_VertexAttribs1fvNV( GET_DISPATCH(), (
5375706f2543Smrg        *(GLuint   *)(pc +  0),
5376706f2543Smrg        n,
5377706f2543Smrg         (const GLfloat *)(pc +  8)
5378706f2543Smrg    ) );
5379706f2543Smrg}
5380706f2543Smrg
5381706f2543Smrgvoid __glXDisp_VertexAttribs1svNV(GLbyte * pc)
5382706f2543Smrg{
5383706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5384706f2543Smrg
5385706f2543Smrg    CALL_VertexAttribs1svNV( GET_DISPATCH(), (
5386706f2543Smrg        *(GLuint   *)(pc +  0),
5387706f2543Smrg        n,
5388706f2543Smrg         (const GLshort *)(pc +  8)
5389706f2543Smrg    ) );
5390706f2543Smrg}
5391706f2543Smrg
5392706f2543Smrgvoid __glXDisp_VertexAttribs2dvNV(GLbyte * pc)
5393706f2543Smrg{
5394706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5395706f2543Smrg
5396706f2543Smrg#ifdef __GLX_ALIGN64
5397706f2543Smrg    const GLuint cmdlen = 12 + __GLX_PAD((n * 16)) - 4;
5398706f2543Smrg    if ((unsigned long)(pc) & 7) {
5399706f2543Smrg        (void) memmove(pc-4, pc, cmdlen);
5400706f2543Smrg        pc -= 4;
5401706f2543Smrg    }
5402706f2543Smrg#endif
5403706f2543Smrg
5404706f2543Smrg    CALL_VertexAttribs2dvNV( GET_DISPATCH(), (
5405706f2543Smrg        *(GLuint   *)(pc +  0),
5406706f2543Smrg        n,
5407706f2543Smrg         (const GLdouble *)(pc +  8)
5408706f2543Smrg    ) );
5409706f2543Smrg}
5410706f2543Smrg
5411706f2543Smrgvoid __glXDisp_VertexAttribs2fvNV(GLbyte * pc)
5412706f2543Smrg{
5413706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5414706f2543Smrg
5415706f2543Smrg    CALL_VertexAttribs2fvNV( GET_DISPATCH(), (
5416706f2543Smrg        *(GLuint   *)(pc +  0),
5417706f2543Smrg        n,
5418706f2543Smrg         (const GLfloat *)(pc +  8)
5419706f2543Smrg    ) );
5420706f2543Smrg}
5421706f2543Smrg
5422706f2543Smrgvoid __glXDisp_VertexAttribs2svNV(GLbyte * pc)
5423706f2543Smrg{
5424706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5425706f2543Smrg
5426706f2543Smrg    CALL_VertexAttribs2svNV( GET_DISPATCH(), (
5427706f2543Smrg        *(GLuint   *)(pc +  0),
5428706f2543Smrg        n,
5429706f2543Smrg         (const GLshort *)(pc +  8)
5430706f2543Smrg    ) );
5431706f2543Smrg}
5432706f2543Smrg
5433706f2543Smrgvoid __glXDisp_VertexAttribs3dvNV(GLbyte * pc)
5434706f2543Smrg{
5435706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5436706f2543Smrg
5437706f2543Smrg#ifdef __GLX_ALIGN64
5438706f2543Smrg    const GLuint cmdlen = 12 + __GLX_PAD((n * 24)) - 4;
5439706f2543Smrg    if ((unsigned long)(pc) & 7) {
5440706f2543Smrg        (void) memmove(pc-4, pc, cmdlen);
5441706f2543Smrg        pc -= 4;
5442706f2543Smrg    }
5443706f2543Smrg#endif
5444706f2543Smrg
5445706f2543Smrg    CALL_VertexAttribs3dvNV( GET_DISPATCH(), (
5446706f2543Smrg        *(GLuint   *)(pc +  0),
5447706f2543Smrg        n,
5448706f2543Smrg         (const GLdouble *)(pc +  8)
5449706f2543Smrg    ) );
5450706f2543Smrg}
5451706f2543Smrg
5452706f2543Smrgvoid __glXDisp_VertexAttribs3fvNV(GLbyte * pc)
5453706f2543Smrg{
5454706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5455706f2543Smrg
5456706f2543Smrg    CALL_VertexAttribs3fvNV( GET_DISPATCH(), (
5457706f2543Smrg        *(GLuint   *)(pc +  0),
5458706f2543Smrg        n,
5459706f2543Smrg         (const GLfloat *)(pc +  8)
5460706f2543Smrg    ) );
5461706f2543Smrg}
5462706f2543Smrg
5463706f2543Smrgvoid __glXDisp_VertexAttribs3svNV(GLbyte * pc)
5464706f2543Smrg{
5465706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5466706f2543Smrg
5467706f2543Smrg    CALL_VertexAttribs3svNV( GET_DISPATCH(), (
5468706f2543Smrg        *(GLuint   *)(pc +  0),
5469706f2543Smrg        n,
5470706f2543Smrg         (const GLshort *)(pc +  8)
5471706f2543Smrg    ) );
5472706f2543Smrg}
5473706f2543Smrg
5474706f2543Smrgvoid __glXDisp_VertexAttribs4dvNV(GLbyte * pc)
5475706f2543Smrg{
5476706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5477706f2543Smrg
5478706f2543Smrg#ifdef __GLX_ALIGN64
5479706f2543Smrg    const GLuint cmdlen = 12 + __GLX_PAD((n * 32)) - 4;
5480706f2543Smrg    if ((unsigned long)(pc) & 7) {
5481706f2543Smrg        (void) memmove(pc-4, pc, cmdlen);
5482706f2543Smrg        pc -= 4;
5483706f2543Smrg    }
5484706f2543Smrg#endif
5485706f2543Smrg
5486706f2543Smrg    CALL_VertexAttribs4dvNV( GET_DISPATCH(), (
5487706f2543Smrg        *(GLuint   *)(pc +  0),
5488706f2543Smrg        n,
5489706f2543Smrg         (const GLdouble *)(pc +  8)
5490706f2543Smrg    ) );
5491706f2543Smrg}
5492706f2543Smrg
5493706f2543Smrgvoid __glXDisp_VertexAttribs4fvNV(GLbyte * pc)
5494706f2543Smrg{
5495706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5496706f2543Smrg
5497706f2543Smrg    CALL_VertexAttribs4fvNV( GET_DISPATCH(), (
5498706f2543Smrg        *(GLuint   *)(pc +  0),
5499706f2543Smrg        n,
5500706f2543Smrg         (const GLfloat *)(pc +  8)
5501706f2543Smrg    ) );
5502706f2543Smrg}
5503706f2543Smrg
5504706f2543Smrgvoid __glXDisp_VertexAttribs4svNV(GLbyte * pc)
5505706f2543Smrg{
5506706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5507706f2543Smrg
5508706f2543Smrg    CALL_VertexAttribs4svNV( GET_DISPATCH(), (
5509706f2543Smrg        *(GLuint   *)(pc +  0),
5510706f2543Smrg        n,
5511706f2543Smrg         (const GLshort *)(pc +  8)
5512706f2543Smrg    ) );
5513706f2543Smrg}
5514706f2543Smrg
5515706f2543Smrgvoid __glXDisp_VertexAttribs4ubvNV(GLbyte * pc)
5516706f2543Smrg{
5517706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  4);
5518706f2543Smrg
5519706f2543Smrg    CALL_VertexAttribs4ubvNV( GET_DISPATCH(), (
5520706f2543Smrg        *(GLuint   *)(pc +  0),
5521706f2543Smrg        n,
5522706f2543Smrg         (const GLubyte *)(pc +  8)
5523706f2543Smrg    ) );
5524706f2543Smrg}
5525706f2543Smrg
5526706f2543Smrgvoid __glXDisp_PointParameteriNV(GLbyte * pc)
5527706f2543Smrg{
5528706f2543Smrg    CALL_PointParameteriNV( GET_DISPATCH(), (
5529706f2543Smrg        *(GLenum   *)(pc +  0),
5530706f2543Smrg        *(GLint    *)(pc +  4)
5531706f2543Smrg    ) );
5532706f2543Smrg}
5533706f2543Smrg
5534706f2543Smrgvoid __glXDisp_PointParameterivNV(GLbyte * pc)
5535706f2543Smrg{
5536706f2543Smrg    const GLenum pname = *(GLenum   *)(pc +  0);
5537706f2543Smrg    const GLint * params;
5538706f2543Smrg
5539706f2543Smrg    params = (const GLint *) (pc + 4);
5540706f2543Smrg
5541706f2543Smrg    CALL_PointParameterivNV( GET_DISPATCH(), (
5542706f2543Smrg        pname,
5543706f2543Smrg        params
5544706f2543Smrg    ) );
5545706f2543Smrg}
5546706f2543Smrg
5547706f2543Smrgvoid __glXDisp_ActiveStencilFaceEXT(GLbyte * pc)
5548706f2543Smrg{
5549706f2543Smrg    CALL_ActiveStencilFaceEXT( GET_DISPATCH(), (
5550706f2543Smrg        *(GLenum   *)(pc +  0)
5551706f2543Smrg    ) );
5552706f2543Smrg}
5553706f2543Smrg
5554706f2543Smrgint __glXDisp_GetProgramNamedParameterdvNV(__GLXclientState *cl, GLbyte *pc)
5555706f2543Smrg{
5556706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5557706f2543Smrg    int error;
5558706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5559706f2543Smrg
5560706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5561706f2543Smrg    if ( cx != NULL ) {
5562706f2543Smrg        const GLsizei len = *(GLsizei  *)(pc +  4);
5563706f2543Smrg
5564706f2543Smrg        GLdouble params[4];
5565706f2543Smrg        CALL_GetProgramNamedParameterdvNV( GET_DISPATCH(), (
5566706f2543Smrg            *(GLuint   *)(pc +  0),
5567706f2543Smrg            len,
5568706f2543Smrg             (const GLubyte *)(pc +  8),
5569706f2543Smrg            params
5570706f2543Smrg        ) );
5571706f2543Smrg        __glXSendReply(cl->client, params, 4, 8, GL_TRUE, 0);
5572706f2543Smrg        error = Success;
5573706f2543Smrg    }
5574706f2543Smrg
5575706f2543Smrg    return error;
5576706f2543Smrg}
5577706f2543Smrg
5578706f2543Smrgint __glXDisp_GetProgramNamedParameterfvNV(__GLXclientState *cl, GLbyte *pc)
5579706f2543Smrg{
5580706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5581706f2543Smrg    int error;
5582706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5583706f2543Smrg
5584706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5585706f2543Smrg    if ( cx != NULL ) {
5586706f2543Smrg        const GLsizei len = *(GLsizei  *)(pc +  4);
5587706f2543Smrg
5588706f2543Smrg        GLfloat params[4];
5589706f2543Smrg        CALL_GetProgramNamedParameterfvNV( GET_DISPATCH(), (
5590706f2543Smrg            *(GLuint   *)(pc +  0),
5591706f2543Smrg            len,
5592706f2543Smrg             (const GLubyte *)(pc +  8),
5593706f2543Smrg            params
5594706f2543Smrg        ) );
5595706f2543Smrg        __glXSendReply(cl->client, params, 4, 4, GL_TRUE, 0);
5596706f2543Smrg        error = Success;
5597706f2543Smrg    }
5598706f2543Smrg
5599706f2543Smrg    return error;
5600706f2543Smrg}
5601706f2543Smrg
5602706f2543Smrgvoid __glXDisp_ProgramNamedParameter4dvNV(GLbyte * pc)
5603706f2543Smrg{
5604706f2543Smrg    const GLsizei len = *(GLsizei  *)(pc + 36);
5605706f2543Smrg
5606706f2543Smrg#ifdef __GLX_ALIGN64
5607706f2543Smrg    const GLuint cmdlen = 44 + __GLX_PAD(len) - 4;
5608706f2543Smrg    if ((unsigned long)(pc) & 7) {
5609706f2543Smrg        (void) memmove(pc-4, pc, cmdlen);
5610706f2543Smrg        pc -= 4;
5611706f2543Smrg    }
5612706f2543Smrg#endif
5613706f2543Smrg
5614706f2543Smrg    CALL_ProgramNamedParameter4dvNV( GET_DISPATCH(), (
5615706f2543Smrg        *(GLuint   *)(pc + 32),
5616706f2543Smrg        len,
5617706f2543Smrg         (const GLubyte *)(pc + 40),
5618706f2543Smrg         (const GLdouble *)(pc +  0)
5619706f2543Smrg    ) );
5620706f2543Smrg}
5621706f2543Smrg
5622706f2543Smrgvoid __glXDisp_ProgramNamedParameter4fvNV(GLbyte * pc)
5623706f2543Smrg{
5624706f2543Smrg    const GLsizei len = *(GLsizei  *)(pc +  4);
5625706f2543Smrg
5626706f2543Smrg    CALL_ProgramNamedParameter4fvNV( GET_DISPATCH(), (
5627706f2543Smrg        *(GLuint   *)(pc +  0),
5628706f2543Smrg        len,
5629706f2543Smrg         (const GLubyte *)(pc + 24),
5630706f2543Smrg         (const GLfloat *)(pc +  8)
5631706f2543Smrg    ) );
5632706f2543Smrg}
5633706f2543Smrg
5634706f2543Smrgvoid __glXDisp_BlendEquationSeparateEXT(GLbyte * pc)
5635706f2543Smrg{
5636706f2543Smrg    CALL_BlendEquationSeparateEXT( GET_DISPATCH(), (
5637706f2543Smrg        *(GLenum   *)(pc +  0),
5638706f2543Smrg        *(GLenum   *)(pc +  4)
5639706f2543Smrg    ) );
5640706f2543Smrg}
5641706f2543Smrg
5642706f2543Smrgvoid __glXDisp_BindFramebufferEXT(GLbyte * pc)
5643706f2543Smrg{
5644706f2543Smrg    CALL_BindFramebufferEXT( GET_DISPATCH(), (
5645706f2543Smrg        *(GLenum   *)(pc +  0),
5646706f2543Smrg        *(GLuint   *)(pc +  4)
5647706f2543Smrg    ) );
5648706f2543Smrg}
5649706f2543Smrg
5650706f2543Smrgvoid __glXDisp_BindRenderbufferEXT(GLbyte * pc)
5651706f2543Smrg{
5652706f2543Smrg    CALL_BindRenderbufferEXT( GET_DISPATCH(), (
5653706f2543Smrg        *(GLenum   *)(pc +  0),
5654706f2543Smrg        *(GLuint   *)(pc +  4)
5655706f2543Smrg    ) );
5656706f2543Smrg}
5657706f2543Smrg
5658706f2543Smrgint __glXDisp_CheckFramebufferStatusEXT(__GLXclientState *cl, GLbyte *pc)
5659706f2543Smrg{
5660706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5661706f2543Smrg    int error;
5662706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5663706f2543Smrg
5664706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5665706f2543Smrg    if ( cx != NULL ) {
5666706f2543Smrg        GLenum retval;
5667706f2543Smrg        retval = CALL_CheckFramebufferStatusEXT( GET_DISPATCH(), (
5668706f2543Smrg            *(GLenum   *)(pc +  0)
5669706f2543Smrg        ) );
5670706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
5671706f2543Smrg        error = Success;
5672706f2543Smrg    }
5673706f2543Smrg
5674706f2543Smrg    return error;
5675706f2543Smrg}
5676706f2543Smrg
5677706f2543Smrgvoid __glXDisp_DeleteFramebuffersEXT(GLbyte * pc)
5678706f2543Smrg{
5679706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  0);
5680706f2543Smrg
5681706f2543Smrg    CALL_DeleteFramebuffersEXT( GET_DISPATCH(), (
5682706f2543Smrg        n,
5683706f2543Smrg         (const GLuint *)(pc +  4)
5684706f2543Smrg    ) );
5685706f2543Smrg}
5686706f2543Smrg
5687706f2543Smrgvoid __glXDisp_DeleteRenderbuffersEXT(GLbyte * pc)
5688706f2543Smrg{
5689706f2543Smrg    const GLsizei n = *(GLsizei  *)(pc +  0);
5690706f2543Smrg
5691706f2543Smrg    CALL_DeleteRenderbuffersEXT( GET_DISPATCH(), (
5692706f2543Smrg        n,
5693706f2543Smrg         (const GLuint *)(pc +  4)
5694706f2543Smrg    ) );
5695706f2543Smrg}
5696706f2543Smrg
5697706f2543Smrgvoid __glXDisp_FramebufferRenderbufferEXT(GLbyte * pc)
5698706f2543Smrg{
5699706f2543Smrg    CALL_FramebufferRenderbufferEXT( GET_DISPATCH(), (
5700706f2543Smrg        *(GLenum   *)(pc +  0),
5701706f2543Smrg        *(GLenum   *)(pc +  4),
5702706f2543Smrg        *(GLenum   *)(pc +  8),
5703706f2543Smrg        *(GLuint   *)(pc + 12)
5704706f2543Smrg    ) );
5705706f2543Smrg}
5706706f2543Smrg
5707706f2543Smrgvoid __glXDisp_FramebufferTexture1DEXT(GLbyte * pc)
5708706f2543Smrg{
5709706f2543Smrg    CALL_FramebufferTexture1DEXT( GET_DISPATCH(), (
5710706f2543Smrg        *(GLenum   *)(pc +  0),
5711706f2543Smrg        *(GLenum   *)(pc +  4),
5712706f2543Smrg        *(GLenum   *)(pc +  8),
5713706f2543Smrg        *(GLuint   *)(pc + 12),
5714706f2543Smrg        *(GLint    *)(pc + 16)
5715706f2543Smrg    ) );
5716706f2543Smrg}
5717706f2543Smrg
5718706f2543Smrgvoid __glXDisp_FramebufferTexture2DEXT(GLbyte * pc)
5719706f2543Smrg{
5720706f2543Smrg    CALL_FramebufferTexture2DEXT( GET_DISPATCH(), (
5721706f2543Smrg        *(GLenum   *)(pc +  0),
5722706f2543Smrg        *(GLenum   *)(pc +  4),
5723706f2543Smrg        *(GLenum   *)(pc +  8),
5724706f2543Smrg        *(GLuint   *)(pc + 12),
5725706f2543Smrg        *(GLint    *)(pc + 16)
5726706f2543Smrg    ) );
5727706f2543Smrg}
5728706f2543Smrg
5729706f2543Smrgvoid __glXDisp_FramebufferTexture3DEXT(GLbyte * pc)
5730706f2543Smrg{
5731706f2543Smrg    CALL_FramebufferTexture3DEXT( GET_DISPATCH(), (
5732706f2543Smrg        *(GLenum   *)(pc +  0),
5733706f2543Smrg        *(GLenum   *)(pc +  4),
5734706f2543Smrg        *(GLenum   *)(pc +  8),
5735706f2543Smrg        *(GLuint   *)(pc + 12),
5736706f2543Smrg        *(GLint    *)(pc + 16),
5737706f2543Smrg        *(GLint    *)(pc + 20)
5738706f2543Smrg    ) );
5739706f2543Smrg}
5740706f2543Smrg
5741706f2543Smrgint __glXDisp_GenFramebuffersEXT(__GLXclientState *cl, GLbyte *pc)
5742706f2543Smrg{
5743706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5744706f2543Smrg    int error;
5745706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5746706f2543Smrg
5747706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5748706f2543Smrg    if ( cx != NULL ) {
5749706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
5750706f2543Smrg
5751706f2543Smrg        GLuint answerBuffer[200];
5752706f2543Smrg        GLuint * framebuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
5753706f2543Smrg        CALL_GenFramebuffersEXT( GET_DISPATCH(), (
5754706f2543Smrg            n,
5755706f2543Smrg            framebuffers
5756706f2543Smrg        ) );
5757706f2543Smrg        __glXSendReply(cl->client, framebuffers, n, 4, GL_TRUE, 0);
5758706f2543Smrg        error = Success;
5759706f2543Smrg    }
5760706f2543Smrg
5761706f2543Smrg    return error;
5762706f2543Smrg}
5763706f2543Smrg
5764706f2543Smrgint __glXDisp_GenRenderbuffersEXT(__GLXclientState *cl, GLbyte *pc)
5765706f2543Smrg{
5766706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5767706f2543Smrg    int error;
5768706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5769706f2543Smrg
5770706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5771706f2543Smrg    if ( cx != NULL ) {
5772706f2543Smrg        const GLsizei n = *(GLsizei  *)(pc +  0);
5773706f2543Smrg
5774706f2543Smrg        GLuint answerBuffer[200];
5775706f2543Smrg        GLuint * renderbuffers = __glXGetAnswerBuffer(cl, n * 4, answerBuffer, sizeof(answerBuffer), 4);
5776706f2543Smrg        CALL_GenRenderbuffersEXT( GET_DISPATCH(), (
5777706f2543Smrg            n,
5778706f2543Smrg            renderbuffers
5779706f2543Smrg        ) );
5780706f2543Smrg        __glXSendReply(cl->client, renderbuffers, n, 4, GL_TRUE, 0);
5781706f2543Smrg        error = Success;
5782706f2543Smrg    }
5783706f2543Smrg
5784706f2543Smrg    return error;
5785706f2543Smrg}
5786706f2543Smrg
5787706f2543Smrgvoid __glXDisp_GenerateMipmapEXT(GLbyte * pc)
5788706f2543Smrg{
5789706f2543Smrg    CALL_GenerateMipmapEXT( GET_DISPATCH(), (
5790706f2543Smrg        *(GLenum   *)(pc +  0)
5791706f2543Smrg    ) );
5792706f2543Smrg}
5793706f2543Smrg
5794706f2543Smrgint __glXDisp_GetFramebufferAttachmentParameterivEXT(__GLXclientState *cl, GLbyte *pc)
5795706f2543Smrg{
5796706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5797706f2543Smrg    int error;
5798706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5799706f2543Smrg
5800706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5801706f2543Smrg    if ( cx != NULL ) {
5802706f2543Smrg        GLint params[1];
5803706f2543Smrg        CALL_GetFramebufferAttachmentParameterivEXT( GET_DISPATCH(), (
5804706f2543Smrg            *(GLenum   *)(pc +  0),
5805706f2543Smrg            *(GLenum   *)(pc +  4),
5806706f2543Smrg            *(GLenum   *)(pc +  8),
5807706f2543Smrg            params
5808706f2543Smrg        ) );
5809706f2543Smrg        __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
5810706f2543Smrg        error = Success;
5811706f2543Smrg    }
5812706f2543Smrg
5813706f2543Smrg    return error;
5814706f2543Smrg}
5815706f2543Smrg
5816706f2543Smrgint __glXDisp_GetRenderbufferParameterivEXT(__GLXclientState *cl, GLbyte *pc)
5817706f2543Smrg{
5818706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5819706f2543Smrg    int error;
5820706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5821706f2543Smrg
5822706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5823706f2543Smrg    if ( cx != NULL ) {
5824706f2543Smrg        GLint params[1];
5825706f2543Smrg        CALL_GetRenderbufferParameterivEXT( GET_DISPATCH(), (
5826706f2543Smrg            *(GLenum   *)(pc +  0),
5827706f2543Smrg            *(GLenum   *)(pc +  4),
5828706f2543Smrg            params
5829706f2543Smrg        ) );
5830706f2543Smrg        __glXSendReply(cl->client, params, 1, 4, GL_FALSE, 0);
5831706f2543Smrg        error = Success;
5832706f2543Smrg    }
5833706f2543Smrg
5834706f2543Smrg    return error;
5835706f2543Smrg}
5836706f2543Smrg
5837706f2543Smrgint __glXDisp_IsFramebufferEXT(__GLXclientState *cl, GLbyte *pc)
5838706f2543Smrg{
5839706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5840706f2543Smrg    int error;
5841706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5842706f2543Smrg
5843706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5844706f2543Smrg    if ( cx != NULL ) {
5845706f2543Smrg        GLboolean retval;
5846706f2543Smrg        retval = CALL_IsFramebufferEXT( GET_DISPATCH(), (
5847706f2543Smrg            *(GLuint   *)(pc +  0)
5848706f2543Smrg        ) );
5849706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
5850706f2543Smrg        error = Success;
5851706f2543Smrg    }
5852706f2543Smrg
5853706f2543Smrg    return error;
5854706f2543Smrg}
5855706f2543Smrg
5856706f2543Smrgint __glXDisp_IsRenderbufferEXT(__GLXclientState *cl, GLbyte *pc)
5857706f2543Smrg{
5858706f2543Smrg    xGLXVendorPrivateReq * const req = (xGLXVendorPrivateReq *) pc;
5859706f2543Smrg    int error;
5860706f2543Smrg    __GLXcontext * const cx = __glXForceCurrent(cl, req->contextTag, &error);
5861706f2543Smrg
5862706f2543Smrg    pc += __GLX_VENDPRIV_HDR_SIZE;
5863706f2543Smrg    if ( cx != NULL ) {
5864706f2543Smrg        GLboolean retval;
5865706f2543Smrg        retval = CALL_IsRenderbufferEXT( GET_DISPATCH(), (
5866706f2543Smrg            *(GLuint   *)(pc +  0)
5867706f2543Smrg        ) );
5868706f2543Smrg        __glXSendReply(cl->client, dummy_answer, 0, 0, GL_FALSE, retval);
5869706f2543Smrg        error = Success;
5870706f2543Smrg    }
5871706f2543Smrg
5872706f2543Smrg    return error;
5873706f2543Smrg}
5874706f2543Smrg
5875706f2543Smrgvoid __glXDisp_RenderbufferStorageEXT(GLbyte * pc)
5876706f2543Smrg{
5877706f2543Smrg    CALL_RenderbufferStorageEXT( GET_DISPATCH(), (
5878706f2543Smrg        *(GLenum   *)(pc +  0),
5879706f2543Smrg        *(GLenum   *)(pc +  4),
5880706f2543Smrg        *(GLsizei  *)(pc +  8),
5881706f2543Smrg        *(GLsizei  *)(pc + 12)
5882706f2543Smrg    ) );
5883706f2543Smrg}
5884706f2543Smrg
5885