glx: indent -br -i3 -npcs --no-tabs single2.c

This commit is contained in:
RALOVICH, Kristóf 2008-10-13 14:35:18 +02:00 committed by Alan Hourihane
parent 750f497713
commit ee88fff432
1 changed files with 668 additions and 631 deletions

View File

@ -38,53 +38,57 @@
#include "indirect_vertex_array.h" #include "indirect_vertex_array.h"
/* Used for GL_ARB_transpose_matrix */ /* Used for GL_ARB_transpose_matrix */
static void TransposeMatrixf(GLfloat m[16]) static void
TransposeMatrixf(GLfloat m[16])
{ {
int i, j; int i, j;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
for (j = 0; j < i; j++) { for (j = 0; j < i; j++) {
GLfloat tmp = m[i*4+j]; GLfloat tmp = m[i * 4 + j];
m[i*4+j] = m[j*4+i]; m[i * 4 + j] = m[j * 4 + i];
m[j*4+i] = tmp; m[j * 4 + i] = tmp;
} }
} }
} }
/* Used for GL_ARB_transpose_matrix */ /* Used for GL_ARB_transpose_matrix */
static void TransposeMatrixb(GLboolean m[16]) static void
TransposeMatrixb(GLboolean m[16])
{ {
int i, j; int i, j;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
for (j = 0; j < i; j++) { for (j = 0; j < i; j++) {
GLboolean tmp = m[i*4+j]; GLboolean tmp = m[i * 4 + j];
m[i*4+j] = m[j*4+i]; m[i * 4 + j] = m[j * 4 + i];
m[j*4+i] = tmp; m[j * 4 + i] = tmp;
} }
} }
} }
/* Used for GL_ARB_transpose_matrix */ /* Used for GL_ARB_transpose_matrix */
static void TransposeMatrixd(GLdouble m[16]) static void
TransposeMatrixd(GLdouble m[16])
{ {
int i, j; int i, j;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
for (j = 0; j < i; j++) { for (j = 0; j < i; j++) {
GLdouble tmp = m[i*4+j]; GLdouble tmp = m[i * 4 + j];
m[i*4+j] = m[j*4+i]; m[i * 4 + j] = m[j * 4 + i];
m[j*4+i] = tmp; m[j * 4 + i] = tmp;
} }
} }
} }
/* Used for GL_ARB_transpose_matrix */ /* Used for GL_ARB_transpose_matrix */
static void TransposeMatrixi(GLint m[16]) static void
TransposeMatrixi(GLint m[16])
{ {
int i, j; int i, j;
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
for (j = 0; j < i; j++) { for (j = 0; j < i; j++) {
GLint tmp = m[i*4+j]; GLint tmp = m[i * 4 + j];
m[i*4+j] = m[j*4+i]; m[i * 4 + j] = m[j * 4 + i];
m[j*4+i] = tmp; m[j * 4 + i] = tmp;
} }
} }
} }
@ -95,9 +99,9 @@ static void TransposeMatrixi(GLint m[16])
* that are not transpose-matrix enums are unaffected. * that are not transpose-matrix enums are unaffected.
*/ */
static GLenum static GLenum
RemapTransposeEnum( GLenum e ) RemapTransposeEnum(GLenum e)
{ {
switch( e ) { switch (e) {
case GL_TRANSPOSE_MODELVIEW_MATRIX: case GL_TRANSPOSE_MODELVIEW_MATRIX:
case GL_TRANSPOSE_PROJECTION_MATRIX: case GL_TRANSPOSE_PROJECTION_MATRIX:
case GL_TRANSPOSE_TEXTURE_MATRIX: case GL_TRANSPOSE_TEXTURE_MATRIX:
@ -110,7 +114,8 @@ RemapTransposeEnum( GLenum e )
} }
GLenum __indirect_glGetError(void) GLenum
__indirect_glGetError(void)
{ {
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
GLuint retval = GL_NO_ERROR; GLuint retval = GL_NO_ERROR;
@ -124,7 +129,7 @@ GLenum __indirect_glGetError(void)
} }
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetError,0); __GLX_SINGLE_BEGIN(X_GLsop_GetError, 0);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
retval = reply.error; retval = reply.error;
__GLX_SINGLE_END(); __GLX_SINGLE_END();
@ -140,14 +145,14 @@ GLenum __indirect_glGetError(void)
* On success \c GL_TRUE is returned. Otherwise, \c GL_FALSE is returned. * On success \c GL_TRUE is returned. Otherwise, \c GL_FALSE is returned.
*/ */
static GLboolean static GLboolean
get_client_data( __GLXcontext * gc, GLenum cap, GLintptr * data ) get_client_data(__GLXcontext * gc, GLenum cap, GLintptr * data)
{ {
GLboolean retval = GL_TRUE; GLboolean retval = GL_TRUE;
__GLXattribute * state = (__GLXattribute *)(gc->client_state_private); __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
const GLint tex_unit = __glXGetActiveTextureUnit( state ); const GLint tex_unit = __glXGetActiveTextureUnit(state);
switch( cap ) { switch (cap) {
case GL_VERTEX_ARRAY: case GL_VERTEX_ARRAY:
case GL_NORMAL_ARRAY: case GL_NORMAL_ARRAY:
case GL_COLOR_ARRAY: case GL_COLOR_ARRAY:
@ -155,71 +160,75 @@ get_client_data( __GLXcontext * gc, GLenum cap, GLintptr * data )
case GL_EDGE_FLAG_ARRAY: case GL_EDGE_FLAG_ARRAY:
case GL_SECONDARY_COLOR_ARRAY: case GL_SECONDARY_COLOR_ARRAY:
case GL_FOG_COORD_ARRAY: case GL_FOG_COORD_ARRAY:
retval = __glXGetArrayEnable( state, cap, 0, data ); retval = __glXGetArrayEnable(state, cap, 0, data);
break; break;
case GL_VERTEX_ARRAY_SIZE: case GL_VERTEX_ARRAY_SIZE:
retval = __glXGetArraySize( state, GL_VERTEX_ARRAY, 0, data ); retval = __glXGetArraySize(state, GL_VERTEX_ARRAY, 0, data);
break; break;
case GL_COLOR_ARRAY_SIZE: case GL_COLOR_ARRAY_SIZE:
retval = __glXGetArraySize( state, GL_COLOR_ARRAY, 0, data ); retval = __glXGetArraySize(state, GL_COLOR_ARRAY, 0, data);
break; break;
case GL_SECONDARY_COLOR_ARRAY_SIZE: case GL_SECONDARY_COLOR_ARRAY_SIZE:
retval = __glXGetArraySize( state, GL_SECONDARY_COLOR_ARRAY, 0, data ); retval = __glXGetArraySize(state, GL_SECONDARY_COLOR_ARRAY, 0, data);
break; break;
case GL_VERTEX_ARRAY_TYPE: case GL_VERTEX_ARRAY_TYPE:
retval = __glXGetArrayType( state, GL_VERTEX_ARRAY, 0, data ); retval = __glXGetArrayType(state, GL_VERTEX_ARRAY, 0, data);
break; break;
case GL_NORMAL_ARRAY_TYPE: case GL_NORMAL_ARRAY_TYPE:
retval = __glXGetArrayType( state, GL_NORMAL_ARRAY, 0, data ); retval = __glXGetArrayType(state, GL_NORMAL_ARRAY, 0, data);
break; break;
case GL_INDEX_ARRAY_TYPE: case GL_INDEX_ARRAY_TYPE:
retval = __glXGetArrayType( state, GL_INDEX_ARRAY, 0, data ); retval = __glXGetArrayType(state, GL_INDEX_ARRAY, 0, data);
break; break;
case GL_COLOR_ARRAY_TYPE: case GL_COLOR_ARRAY_TYPE:
retval = __glXGetArrayType( state, GL_COLOR_ARRAY, 0, data ); retval = __glXGetArrayType(state, GL_COLOR_ARRAY, 0, data);
break; break;
case GL_SECONDARY_COLOR_ARRAY_TYPE: case GL_SECONDARY_COLOR_ARRAY_TYPE:
retval = __glXGetArrayType( state, GL_SECONDARY_COLOR_ARRAY, 0, data ); retval = __glXGetArrayType(state, GL_SECONDARY_COLOR_ARRAY, 0, data);
break; break;
case GL_FOG_COORD_ARRAY_TYPE: case GL_FOG_COORD_ARRAY_TYPE:
retval = __glXGetArrayType( state, GL_FOG_COORD_ARRAY, 0, data ); retval = __glXGetArrayType(state, GL_FOG_COORD_ARRAY, 0, data);
break; break;
case GL_VERTEX_ARRAY_STRIDE: case GL_VERTEX_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_VERTEX_ARRAY, 0, data ); retval = __glXGetArrayStride(state, GL_VERTEX_ARRAY, 0, data);
break; break;
case GL_NORMAL_ARRAY_STRIDE: case GL_NORMAL_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_NORMAL_ARRAY, 0, data ); retval = __glXGetArrayStride(state, GL_NORMAL_ARRAY, 0, data);
break; break;
case GL_INDEX_ARRAY_STRIDE: case GL_INDEX_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_INDEX_ARRAY, 0, data ); retval = __glXGetArrayStride(state, GL_INDEX_ARRAY, 0, data);
break; break;
case GL_EDGE_FLAG_ARRAY_STRIDE: case GL_EDGE_FLAG_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_EDGE_FLAG_ARRAY, 0, data ); retval = __glXGetArrayStride(state, GL_EDGE_FLAG_ARRAY, 0, data);
break; break;
case GL_COLOR_ARRAY_STRIDE: case GL_COLOR_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_COLOR_ARRAY, 0, data ); retval = __glXGetArrayStride(state, GL_COLOR_ARRAY, 0, data);
break; break;
case GL_SECONDARY_COLOR_ARRAY_STRIDE: case GL_SECONDARY_COLOR_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_SECONDARY_COLOR_ARRAY, 0, data ); retval = __glXGetArrayStride(state, GL_SECONDARY_COLOR_ARRAY, 0, data);
break; break;
case GL_FOG_COORD_ARRAY_STRIDE: case GL_FOG_COORD_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_FOG_COORD_ARRAY, 0, data ); retval = __glXGetArrayStride(state, GL_FOG_COORD_ARRAY, 0, data);
break; break;
case GL_TEXTURE_COORD_ARRAY: case GL_TEXTURE_COORD_ARRAY:
retval = __glXGetArrayEnable( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); retval =
__glXGetArrayEnable(state, GL_TEXTURE_COORD_ARRAY, tex_unit, data);
break; break;
case GL_TEXTURE_COORD_ARRAY_SIZE: case GL_TEXTURE_COORD_ARRAY_SIZE:
retval = __glXGetArraySize( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); retval =
__glXGetArraySize(state, GL_TEXTURE_COORD_ARRAY, tex_unit, data);
break; break;
case GL_TEXTURE_COORD_ARRAY_TYPE: case GL_TEXTURE_COORD_ARRAY_TYPE:
retval = __glXGetArrayType( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); retval =
__glXGetArrayType(state, GL_TEXTURE_COORD_ARRAY, tex_unit, data);
break; break;
case GL_TEXTURE_COORD_ARRAY_STRIDE: case GL_TEXTURE_COORD_ARRAY_STRIDE:
retval = __glXGetArrayStride( state, GL_TEXTURE_COORD_ARRAY, tex_unit, data ); retval =
__glXGetArrayStride(state, GL_TEXTURE_COORD_ARRAY, tex_unit, data);
break; break;
case GL_MAX_ELEMENTS_VERTICES: case GL_MAX_ELEMENTS_VERTICES:
@ -230,61 +239,61 @@ get_client_data( __GLXcontext * gc, GLenum cap, GLintptr * data )
case GL_PACK_ROW_LENGTH: case GL_PACK_ROW_LENGTH:
*data = (GLintptr)state->storePack.rowLength; *data = (GLintptr) state->storePack.rowLength;
break; break;
case GL_PACK_IMAGE_HEIGHT: case GL_PACK_IMAGE_HEIGHT:
*data = (GLintptr)state->storePack.imageHeight; *data = (GLintptr) state->storePack.imageHeight;
break; break;
case GL_PACK_SKIP_ROWS: case GL_PACK_SKIP_ROWS:
*data = (GLintptr)state->storePack.skipRows; *data = (GLintptr) state->storePack.skipRows;
break; break;
case GL_PACK_SKIP_PIXELS: case GL_PACK_SKIP_PIXELS:
*data = (GLintptr)state->storePack.skipPixels; *data = (GLintptr) state->storePack.skipPixels;
break; break;
case GL_PACK_SKIP_IMAGES: case GL_PACK_SKIP_IMAGES:
*data = (GLintptr)state->storePack.skipImages; *data = (GLintptr) state->storePack.skipImages;
break; break;
case GL_PACK_ALIGNMENT: case GL_PACK_ALIGNMENT:
*data = (GLintptr)state->storePack.alignment; *data = (GLintptr) state->storePack.alignment;
break; break;
case GL_PACK_SWAP_BYTES: case GL_PACK_SWAP_BYTES:
*data = (GLintptr)state->storePack.swapEndian; *data = (GLintptr) state->storePack.swapEndian;
break; break;
case GL_PACK_LSB_FIRST: case GL_PACK_LSB_FIRST:
*data = (GLintptr)state->storePack.lsbFirst; *data = (GLintptr) state->storePack.lsbFirst;
break; break;
case GL_UNPACK_ROW_LENGTH: case GL_UNPACK_ROW_LENGTH:
*data = (GLintptr)state->storeUnpack.rowLength; *data = (GLintptr) state->storeUnpack.rowLength;
break; break;
case GL_UNPACK_IMAGE_HEIGHT: case GL_UNPACK_IMAGE_HEIGHT:
*data = (GLintptr)state->storeUnpack.imageHeight; *data = (GLintptr) state->storeUnpack.imageHeight;
break; break;
case GL_UNPACK_SKIP_ROWS: case GL_UNPACK_SKIP_ROWS:
*data = (GLintptr)state->storeUnpack.skipRows; *data = (GLintptr) state->storeUnpack.skipRows;
break; break;
case GL_UNPACK_SKIP_PIXELS: case GL_UNPACK_SKIP_PIXELS:
*data = (GLintptr)state->storeUnpack.skipPixels; *data = (GLintptr) state->storeUnpack.skipPixels;
break; break;
case GL_UNPACK_SKIP_IMAGES: case GL_UNPACK_SKIP_IMAGES:
*data = (GLintptr)state->storeUnpack.skipImages; *data = (GLintptr) state->storeUnpack.skipImages;
break; break;
case GL_UNPACK_ALIGNMENT: case GL_UNPACK_ALIGNMENT:
*data = (GLintptr)state->storeUnpack.alignment; *data = (GLintptr) state->storeUnpack.alignment;
break; break;
case GL_UNPACK_SWAP_BYTES: case GL_UNPACK_SWAP_BYTES:
*data = (GLintptr)state->storeUnpack.swapEndian; *data = (GLintptr) state->storeUnpack.swapEndian;
break; break;
case GL_UNPACK_LSB_FIRST: case GL_UNPACK_LSB_FIRST:
*data = (GLintptr)state->storeUnpack.lsbFirst; *data = (GLintptr) state->storeUnpack.lsbFirst;
break; break;
case GL_CLIENT_ATTRIB_STACK_DEPTH: case GL_CLIENT_ATTRIB_STACK_DEPTH:
*data = (GLintptr)(gc->attributes.stackPointer - gc->attributes.stack); *data = (GLintptr) (gc->attributes.stackPointer - gc->attributes.stack);
break; break;
case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH: case GL_MAX_CLIENT_ATTRIB_STACK_DEPTH:
*data = (GLintptr)__GL_CLIENT_ATTRIB_STACK_DEPTH; *data = (GLintptr) __GL_CLIENT_ATTRIB_STACK_DEPTH;
break; break;
case GL_CLIENT_ACTIVE_TEXTURE: case GL_CLIENT_ACTIVE_TEXTURE:
*data = (GLintptr)(tex_unit + GL_TEXTURE0); *data = (GLintptr) (tex_unit + GL_TEXTURE0);
break; break;
default: default:
@ -297,17 +306,18 @@ get_client_data( __GLXcontext * gc, GLenum cap, GLintptr * data )
} }
void __indirect_glGetBooleanv(GLenum val, GLboolean *b) void
__indirect_glGetBooleanv(GLenum val, GLboolean * b)
{ {
const GLenum origVal = val; const GLenum origVal = val;
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
xGLXSingleReply reply; xGLXSingleReply reply;
val = RemapTransposeEnum( val ); val = RemapTransposeEnum(val);
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetBooleanv,4); __GLX_SINGLE_BEGIN(X_GLsop_GetBooleanv, 4);
__GLX_SINGLE_PUT_LONG(0,val); __GLX_SINGLE_PUT_LONG(0, val);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
__GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_SIZE(compsize);
@ -315,7 +325,8 @@ void __indirect_glGetBooleanv(GLenum val, GLboolean *b)
/* /*
** Error occured; don't modify user's buffer. ** Error occured; don't modify user's buffer.
*/ */
} else { }
else {
GLintptr data; GLintptr data;
/* /*
@ -324,7 +335,7 @@ void __indirect_glGetBooleanv(GLenum val, GLboolean *b)
** for example, to call a query between glBegin() and glEnd()). ** for example, to call a query between glBegin() and glEnd()).
*/ */
if ( get_client_data( gc, val, & data ) ) { if (get_client_data(gc, val, &data)) {
*b = (GLboolean) data; *b = (GLboolean) data;
} }
else { else {
@ -333,8 +344,9 @@ void __indirect_glGetBooleanv(GLenum val, GLboolean *b)
*/ */
if (compsize == 1) { if (compsize == 1) {
__GLX_SINGLE_GET_CHAR(b); __GLX_SINGLE_GET_CHAR(b);
} else { }
__GLX_SINGLE_GET_CHAR_ARRAY(b,compsize); else {
__GLX_SINGLE_GET_CHAR_ARRAY(b, compsize);
if (val != origVal) { if (val != origVal) {
/* matrix transpose */ /* matrix transpose */
TransposeMatrixb(b); TransposeMatrixb(b);
@ -345,17 +357,18 @@ void __indirect_glGetBooleanv(GLenum val, GLboolean *b)
__GLX_SINGLE_END(); __GLX_SINGLE_END();
} }
void __indirect_glGetDoublev(GLenum val, GLdouble *d) void
__indirect_glGetDoublev(GLenum val, GLdouble * d)
{ {
const GLenum origVal = val; const GLenum origVal = val;
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
xGLXSingleReply reply; xGLXSingleReply reply;
val = RemapTransposeEnum( val ); val = RemapTransposeEnum(val);
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetDoublev,4); __GLX_SINGLE_BEGIN(X_GLsop_GetDoublev, 4);
__GLX_SINGLE_PUT_LONG(0,val); __GLX_SINGLE_PUT_LONG(0, val);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
__GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_SIZE(compsize);
@ -363,7 +376,8 @@ void __indirect_glGetDoublev(GLenum val, GLdouble *d)
/* /*
** Error occured; don't modify user's buffer. ** Error occured; don't modify user's buffer.
*/ */
} else { }
else {
GLintptr data; GLintptr data;
/* /*
@ -372,7 +386,7 @@ void __indirect_glGetDoublev(GLenum val, GLdouble *d)
** for example, to call a query between glBegin() and glEnd()). ** for example, to call a query between glBegin() and glEnd()).
*/ */
if ( get_client_data( gc, val, & data ) ) { if (get_client_data(gc, val, &data)) {
*d = (GLdouble) data; *d = (GLdouble) data;
} }
else { else {
@ -381,8 +395,9 @@ void __indirect_glGetDoublev(GLenum val, GLdouble *d)
*/ */
if (compsize == 1) { if (compsize == 1) {
__GLX_SINGLE_GET_DOUBLE(d); __GLX_SINGLE_GET_DOUBLE(d);
} else { }
__GLX_SINGLE_GET_DOUBLE_ARRAY(d,compsize); else {
__GLX_SINGLE_GET_DOUBLE_ARRAY(d, compsize);
if (val != origVal) { if (val != origVal) {
/* matrix transpose */ /* matrix transpose */
TransposeMatrixd(d); TransposeMatrixd(d);
@ -393,17 +408,18 @@ void __indirect_glGetDoublev(GLenum val, GLdouble *d)
__GLX_SINGLE_END(); __GLX_SINGLE_END();
} }
void __indirect_glGetFloatv(GLenum val, GLfloat *f) void
__indirect_glGetFloatv(GLenum val, GLfloat * f)
{ {
const GLenum origVal = val; const GLenum origVal = val;
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
xGLXSingleReply reply; xGLXSingleReply reply;
val = RemapTransposeEnum( val ); val = RemapTransposeEnum(val);
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetFloatv,4); __GLX_SINGLE_BEGIN(X_GLsop_GetFloatv, 4);
__GLX_SINGLE_PUT_LONG(0,val); __GLX_SINGLE_PUT_LONG(0, val);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
__GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_SIZE(compsize);
@ -411,7 +427,8 @@ void __indirect_glGetFloatv(GLenum val, GLfloat *f)
/* /*
** Error occured; don't modify user's buffer. ** Error occured; don't modify user's buffer.
*/ */
} else { }
else {
GLintptr data; GLintptr data;
/* /*
@ -420,7 +437,7 @@ void __indirect_glGetFloatv(GLenum val, GLfloat *f)
** for example, to call a query between glBegin() and glEnd()). ** for example, to call a query between glBegin() and glEnd()).
*/ */
if ( get_client_data( gc, val, & data ) ) { if (get_client_data(gc, val, &data)) {
*f = (GLfloat) data; *f = (GLfloat) data;
} }
else { else {
@ -429,8 +446,9 @@ void __indirect_glGetFloatv(GLenum val, GLfloat *f)
*/ */
if (compsize == 1) { if (compsize == 1) {
__GLX_SINGLE_GET_FLOAT(f); __GLX_SINGLE_GET_FLOAT(f);
} else { }
__GLX_SINGLE_GET_FLOAT_ARRAY(f,compsize); else {
__GLX_SINGLE_GET_FLOAT_ARRAY(f, compsize);
if (val != origVal) { if (val != origVal) {
/* matrix transpose */ /* matrix transpose */
TransposeMatrixf(f); TransposeMatrixf(f);
@ -441,17 +459,18 @@ void __indirect_glGetFloatv(GLenum val, GLfloat *f)
__GLX_SINGLE_END(); __GLX_SINGLE_END();
} }
void __indirect_glGetIntegerv(GLenum val, GLint *i) void
__indirect_glGetIntegerv(GLenum val, GLint * i)
{ {
const GLenum origVal = val; const GLenum origVal = val;
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
xGLXSingleReply reply; xGLXSingleReply reply;
val = RemapTransposeEnum( val ); val = RemapTransposeEnum(val);
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_GetIntegerv,4); __GLX_SINGLE_BEGIN(X_GLsop_GetIntegerv, 4);
__GLX_SINGLE_PUT_LONG(0,val); __GLX_SINGLE_PUT_LONG(0, val);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
__GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_SIZE(compsize);
@ -459,7 +478,8 @@ void __indirect_glGetIntegerv(GLenum val, GLint *i)
/* /*
** Error occured; don't modify user's buffer. ** Error occured; don't modify user's buffer.
*/ */
} else { }
else {
GLintptr data; GLintptr data;
/* /*
@ -468,7 +488,7 @@ void __indirect_glGetIntegerv(GLenum val, GLint *i)
** for example, to call a query between glBegin() and glEnd()). ** for example, to call a query between glBegin() and glEnd()).
*/ */
if ( get_client_data( gc, val, & data ) ) { if (get_client_data(gc, val, &data)) {
*i = (GLint) data; *i = (GLint) data;
} }
else { else {
@ -477,8 +497,9 @@ void __indirect_glGetIntegerv(GLenum val, GLint *i)
*/ */
if (compsize == 1) { if (compsize == 1) {
__GLX_SINGLE_GET_LONG(i); __GLX_SINGLE_GET_LONG(i);
} else { }
__GLX_SINGLE_GET_LONG_ARRAY(i,compsize); else {
__GLX_SINGLE_GET_LONG_ARRAY(i, compsize);
if (val != origVal) { if (val != origVal) {
/* matrix transpose */ /* matrix transpose */
TransposeMatrixi(i); TransposeMatrixi(i);
@ -492,62 +513,70 @@ void __indirect_glGetIntegerv(GLenum val, GLint *i)
/* /*
** Send all pending commands to server. ** Send all pending commands to server.
*/ */
void __indirect_glFlush(void) void
__indirect_glFlush(void)
{ {
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
if (!dpy) return; if (!dpy)
return;
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_Flush,0); __GLX_SINGLE_BEGIN(X_GLsop_Flush, 0);
__GLX_SINGLE_END(); __GLX_SINGLE_END();
/* And finally flush the X protocol data */ /* And finally flush the X protocol data */
XFlush(dpy); XFlush(dpy);
} }
void __indirect_glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer) void
__indirect_glFeedbackBuffer(GLsizei size, GLenum type, GLfloat * buffer)
{ {
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
if (!dpy) return; if (!dpy)
return;
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_FeedbackBuffer,8); __GLX_SINGLE_BEGIN(X_GLsop_FeedbackBuffer, 8);
__GLX_SINGLE_PUT_LONG(0,size); __GLX_SINGLE_PUT_LONG(0, size);
__GLX_SINGLE_PUT_LONG(4,type); __GLX_SINGLE_PUT_LONG(4, type);
__GLX_SINGLE_END(); __GLX_SINGLE_END();
gc->feedbackBuf = buffer; gc->feedbackBuf = buffer;
} }
void __indirect_glSelectBuffer(GLsizei numnames, GLuint *buffer) void
__indirect_glSelectBuffer(GLsizei numnames, GLuint * buffer)
{ {
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
if (!dpy) return; if (!dpy)
return;
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_SelectBuffer,4); __GLX_SINGLE_BEGIN(X_GLsop_SelectBuffer, 4);
__GLX_SINGLE_PUT_LONG(0,numnames); __GLX_SINGLE_PUT_LONG(0, numnames);
__GLX_SINGLE_END(); __GLX_SINGLE_END();
gc->selectBuf = buffer; gc->selectBuf = buffer;
} }
GLint __indirect_glRenderMode(GLenum mode) GLint
__indirect_glRenderMode(GLenum mode)
{ {
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
GLint retval = 0; GLint retval = 0;
xGLXRenderModeReply reply; xGLXRenderModeReply reply;
if (!dpy) return -1; if (!dpy)
return -1;
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_RenderMode,4); __GLX_SINGLE_BEGIN(X_GLsop_RenderMode, 4);
__GLX_SINGLE_PUT_LONG(0,mode); __GLX_SINGLE_PUT_LONG(0, mode);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
__GLX_SINGLE_GET_RETVAL(retval,GLint); __GLX_SINGLE_GET_RETVAL(retval, GLint);
if (reply.newMode != mode) { if (reply.newMode != mode) {
/* /*
@ -555,13 +584,14 @@ GLint __indirect_glRenderMode(GLenum mode)
** occured. When an error happens the server won't send us any ** occured. When an error happens the server won't send us any
** other data. ** other data.
*/ */
} else { }
else {
/* Read the feedback or selection data */ /* Read the feedback or selection data */
if (gc->renderMode == GL_FEEDBACK) { if (gc->renderMode == GL_FEEDBACK) {
__GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_SIZE(compsize);
__GLX_SINGLE_GET_FLOAT_ARRAY(gc->feedbackBuf, compsize); __GLX_SINGLE_GET_FLOAT_ARRAY(gc->feedbackBuf, compsize);
} else }
if (gc->renderMode == GL_SELECT) { else if (gc->renderMode == GL_SELECT) {
__GLX_SINGLE_GET_SIZE(compsize); __GLX_SINGLE_GET_SIZE(compsize);
__GLX_SINGLE_GET_LONG_ARRAY(gc->selectBuf, compsize); __GLX_SINGLE_GET_LONG_ARRAY(gc->selectBuf, compsize);
} }
@ -572,13 +602,14 @@ GLint __indirect_glRenderMode(GLenum mode)
return retval; return retval;
} }
void __indirect_glFinish(void) void
__indirect_glFinish(void)
{ {
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
xGLXSingleReply reply; xGLXSingleReply reply;
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_Finish,0); __GLX_SINGLE_BEGIN(X_GLsop_Finish, 0);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
__GLX_SINGLE_END(); __GLX_SINGLE_END();
} }
@ -588,43 +619,48 @@ void __indirect_glFinish(void)
* Extract the major and minor version numbers from a version string. * Extract the major and minor version numbers from a version string.
*/ */
static void static void
version_from_string( const char * ver, version_from_string(const char *ver, int *major_version, int *minor_version)
int * major_version, int * minor_version )
{ {
const char * end; const char *end;
long major; long major;
long minor; long minor;
major = strtol( ver, (char **) & end, 10 ); major = strtol(ver, (char **) &end, 10);
minor = strtol( end + 1, NULL, 10 ); minor = strtol(end + 1, NULL, 10);
*major_version = major; *major_version = major;
*minor_version = minor; *minor_version = minor;
} }
const GLubyte *__indirect_glGetString(GLenum name) const GLubyte *
__indirect_glGetString(GLenum name)
{ {
__GLXcontext *gc = __glXGetCurrentContext(); __GLXcontext *gc = __glXGetCurrentContext();
Display *dpy = gc->currentDpy; Display *dpy = gc->currentDpy;
GLubyte *s = NULL; GLubyte *s = NULL;
if (!dpy) return 0; if (!dpy)
return 0;
/* /*
** Return the cached copy if the string has already been fetched ** Return the cached copy if the string has already been fetched
*/ */
switch(name) { switch (name) {
case GL_VENDOR: case GL_VENDOR:
if (gc->vendor) return gc->vendor; if (gc->vendor)
return gc->vendor;
break; break;
case GL_RENDERER: case GL_RENDERER:
if (gc->renderer) return gc->renderer; if (gc->renderer)
return gc->renderer;
break; break;
case GL_VERSION: case GL_VERSION:
if (gc->version) return gc->version; if (gc->version)
return gc->version;
break; break;
case GL_EXTENSIONS: case GL_EXTENSIONS:
if (gc->extensions) return gc->extensions; if (gc->extensions)
return gc->extensions;
break; break;
default: default:
__glXSetError(gc, GL_INVALID_ENUM); __glXSetError(gc, GL_INVALID_ENUM);
@ -635,18 +671,19 @@ const GLubyte *__indirect_glGetString(GLenum name)
** Get requested string from server ** Get requested string from server
*/ */
(void) __glXFlushRenderBuffer( gc, gc->pc ); (void) __glXFlushRenderBuffer(gc, gc->pc);
s = (GLubyte *) __glXGetStringFromServer( dpy, gc->majorOpcode, s = (GLubyte *) __glXGetStringFromServer(dpy, gc->majorOpcode,
X_GLsop_GetString, gc->currentContextTag, X_GLsop_GetString,
name ); gc->currentContextTag, name);
if (!s) { if (!s) {
/* Throw data on the floor */ /* Throw data on the floor */
__glXSetError(gc, GL_OUT_OF_MEMORY); __glXSetError(gc, GL_OUT_OF_MEMORY);
} else { }
else {
/* /*
** Update local cache ** Update local cache
*/ */
switch(name) { switch (name) {
case GL_VENDOR: case GL_VENDOR:
gc->vendor = s; gc->vendor = s;
break; break;
@ -655,17 +692,17 @@ const GLubyte *__indirect_glGetString(GLenum name)
gc->renderer = s; gc->renderer = s;
break; break;
case GL_VERSION: { case GL_VERSION:{
int client_major; int client_major;
int client_minor; int client_minor;
version_from_string( (char *) s, version_from_string((char *) s,
& gc->server_major, & gc->server_minor ); &gc->server_major, &gc->server_minor);
__glXGetGLVersion( & client_major, & client_minor ); __glXGetGLVersion(&client_major, &client_minor);
if ( (gc->server_major < client_major) if ((gc->server_major < client_major)
|| ((gc->server_major == client_major) || ((gc->server_major == client_major)
&& (gc->server_minor <= client_minor)) ) { && (gc->server_minor <= client_minor))) {
gc->version = s; gc->version = s;
} }
else { else {
@ -674,10 +711,10 @@ const GLubyte *__indirect_glGetString(GLenum name)
* that one! The extra 4 is for the ' ()\0' that will be * that one! The extra 4 is for the ' ()\0' that will be
* added. * added.
*/ */
const size_t size = 7 + strlen( (char *) s ) + 4; const size_t size = 7 + strlen((char *) s) + 4;
gc->version = Xmalloc( size ); gc->version = Xmalloc(size);
if ( gc->version == NULL ) { if (gc->version == NULL) {
/* If we couldn't allocate memory for the new string, /* If we couldn't allocate memory for the new string,
* make a best-effort and just copy the client-side version * make a best-effort and just copy the client-side version
* to the string and use that. It probably doesn't * to the string and use that. It probably doesn't
@ -685,21 +722,21 @@ const GLubyte *__indirect_glGetString(GLenum name)
* for a short string, the system is probably going to die * for a short string, the system is probably going to die
* soon anyway. * soon anyway.
*/ */
snprintf( (char *) s, strlen( (char *) s ) + 1, "%u.%u", snprintf((char *) s, strlen((char *) s) + 1, "%u.%u",
client_major, client_minor ); client_major, client_minor);
gc->version = s; gc->version = s;
} }
else { else {
snprintf( (char *)gc->version, size, "%u.%u (%s)", snprintf((char *) gc->version, size, "%u.%u (%s)",
client_major, client_minor, s ); client_major, client_minor, s);
Xfree( s ); Xfree(s);
s = gc->version; s = gc->version;
} }
} }
break; break;
} }
case GL_EXTENSIONS: { case GL_EXTENSIONS:{
int major = 1; int major = 1;
int minor = 0; int minor = 0;
@ -732,13 +769,12 @@ const GLubyte *__indirect_glGetString(GLenum name)
* 1.3, but does not report all of those extensions, we will * 1.3, but does not report all of those extensions, we will
* enable them. * enable them.
*/ */
(void *) glGetString( GL_VERSION ); (void *) glGetString(GL_VERSION);
major = gc->server_major, major = gc->server_major, minor = gc->server_minor;
minor = gc->server_minor;
#endif #endif
__glXCalculateUsableGLExtensions( gc, (char *) s, major, minor ); __glXCalculateUsableGLExtensions(gc, (char *) s, major, minor);
XFree( s ); XFree(s);
s = gc->extensions; s = gc->extensions;
break; break;
} }
@ -747,17 +783,19 @@ const GLubyte *__indirect_glGetString(GLenum name)
return s; return s;
} }
GLboolean __indirect_glIsEnabled(GLenum cap) GLboolean
__indirect_glIsEnabled(GLenum cap)
{ {
__GLX_SINGLE_DECLARE_VARIABLES(); __GLX_SINGLE_DECLARE_VARIABLES();
__GLXattribute * state = (__GLXattribute *)(gc->client_state_private); __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
xGLXSingleReply reply; xGLXSingleReply reply;
GLboolean retval = 0; GLboolean retval = 0;
GLintptr enable; GLintptr enable;
if (!dpy) return 0; if (!dpy)
return 0;
switch(cap) { switch (cap) {
case GL_VERTEX_ARRAY: case GL_VERTEX_ARRAY:
case GL_NORMAL_ARRAY: case GL_NORMAL_ARRAY:
case GL_COLOR_ARRAY: case GL_COLOR_ARRAY:
@ -765,64 +803,63 @@ GLboolean __indirect_glIsEnabled(GLenum cap)
case GL_EDGE_FLAG_ARRAY: case GL_EDGE_FLAG_ARRAY:
case GL_SECONDARY_COLOR_ARRAY: case GL_SECONDARY_COLOR_ARRAY:
case GL_FOG_COORD_ARRAY: case GL_FOG_COORD_ARRAY:
retval = __glXGetArrayEnable( state, cap, 0, & enable ); retval = __glXGetArrayEnable(state, cap, 0, &enable);
assert( retval ); assert(retval);
return (GLboolean) enable; return (GLboolean) enable;
break; break;
case GL_TEXTURE_COORD_ARRAY: case GL_TEXTURE_COORD_ARRAY:
retval = __glXGetArrayEnable( state, GL_TEXTURE_COORD_ARRAY, retval = __glXGetArrayEnable(state, GL_TEXTURE_COORD_ARRAY,
__glXGetActiveTextureUnit( state ), & enable ); __glXGetActiveTextureUnit(state), &enable);
assert( retval ); assert(retval);
return (GLboolean) enable; return (GLboolean) enable;
break; break;
} }
__GLX_SINGLE_LOAD_VARIABLES(); __GLX_SINGLE_LOAD_VARIABLES();
__GLX_SINGLE_BEGIN(X_GLsop_IsEnabled,4); __GLX_SINGLE_BEGIN(X_GLsop_IsEnabled, 4);
__GLX_SINGLE_PUT_LONG(0,cap); __GLX_SINGLE_PUT_LONG(0, cap);
__GLX_SINGLE_READ_XREPLY(); __GLX_SINGLE_READ_XREPLY();
__GLX_SINGLE_GET_RETVAL(retval, GLboolean); __GLX_SINGLE_GET_RETVAL(retval, GLboolean);
__GLX_SINGLE_END(); __GLX_SINGLE_END();
return retval; return retval;
} }
void __indirect_glGetPointerv(GLenum pname, void **params) void
__indirect_glGetPointerv(GLenum pname, void **params)
{ {
__GLXcontext *gc = __glXGetCurrentContext(); __GLXcontext *gc = __glXGetCurrentContext();
__GLXattribute * state = (__GLXattribute *)(gc->client_state_private); __GLXattribute *state = (__GLXattribute *) (gc->client_state_private);
Display *dpy = gc->currentDpy; Display *dpy = gc->currentDpy;
if (!dpy) return; if (!dpy)
return;
switch(pname) { switch (pname) {
case GL_VERTEX_ARRAY_POINTER: case GL_VERTEX_ARRAY_POINTER:
case GL_NORMAL_ARRAY_POINTER: case GL_NORMAL_ARRAY_POINTER:
case GL_COLOR_ARRAY_POINTER: case GL_COLOR_ARRAY_POINTER:
case GL_INDEX_ARRAY_POINTER: case GL_INDEX_ARRAY_POINTER:
case GL_EDGE_FLAG_ARRAY_POINTER: case GL_EDGE_FLAG_ARRAY_POINTER:
__glXGetArrayPointer( state, pname - GL_VERTEX_ARRAY_POINTER __glXGetArrayPointer(state, pname - GL_VERTEX_ARRAY_POINTER
+ GL_VERTEX_ARRAY, + GL_VERTEX_ARRAY, 0, params);
0, params );
return; return;
case GL_TEXTURE_COORD_ARRAY_POINTER: case GL_TEXTURE_COORD_ARRAY_POINTER:
__glXGetArrayPointer( state, GL_TEXTURE_COORD_ARRAY, __glXGetArrayPointer(state, GL_TEXTURE_COORD_ARRAY,
__glXGetActiveTextureUnit( state ), params ); __glXGetActiveTextureUnit(state), params);
return; return;
case GL_SECONDARY_COLOR_ARRAY_POINTER: case GL_SECONDARY_COLOR_ARRAY_POINTER:
case GL_FOG_COORD_ARRAY_POINTER: case GL_FOG_COORD_ARRAY_POINTER:
__glXGetArrayPointer( state, pname - GL_FOG_COORD_ARRAY_POINTER __glXGetArrayPointer(state, pname - GL_FOG_COORD_ARRAY_POINTER
+ GL_FOG_COORD_ARRAY, + GL_FOG_COORD_ARRAY, 0, params);
0, params );
return; return;
case GL_FEEDBACK_BUFFER_POINTER: case GL_FEEDBACK_BUFFER_POINTER:
*params = (void *)gc->feedbackBuf; *params = (void *) gc->feedbackBuf;
return; return;
case GL_SELECTION_BUFFER_POINTER: case GL_SELECTION_BUFFER_POINTER:
*params = (void *)gc->selectBuf; *params = (void *) gc->selectBuf;
return; return;
default: default:
__glXSetError(gc, GL_INVALID_ENUM); __glXSetError(gc, GL_INVALID_ENUM);
return; return;
} }
} }