10
10
static void __handleMaterialData( GLenum face, GLenum pname, const GLfloat *params )
12
GET_PACKER_CONTEXT(pc);
13
unsigned int packet_length = sizeof( int ) + sizeof( face ) + sizeof( pname );
14
unsigned int params_length = 0;
15
unsigned char *data_ptr;
22
case GL_AMBIENT_AND_DIFFUSE:
23
params_length = 4*sizeof( *params );
25
case GL_COLOR_INDEXES:
26
params_length = 3*sizeof( *params );
29
params_length = sizeof( *params );
32
__PackError(__LINE__, __FILE__, GL_INVALID_ENUM, "glMaterial(pname)");
35
packet_length += params_length;
12
CR_GET_PACKER_CONTEXT(pc);
13
unsigned int packet_length = sizeof( int ) + sizeof( face ) + sizeof( pname );
14
unsigned int params_length = 0;
15
unsigned char *data_ptr;
22
case GL_AMBIENT_AND_DIFFUSE:
23
params_length = 4*sizeof( *params );
25
case GL_COLOR_INDEXES:
26
params_length = 3*sizeof( *params );
29
params_length = sizeof( *params );
32
__PackError(__LINE__, __FILE__, GL_INVALID_ENUM, "glMaterial(pname)");
35
packet_length += params_length;
37
GET_BUFFERED_POINTER(pc, packet_length );
38
WRITE_DATA( 0, int, packet_length );
39
WRITE_DATA( sizeof( int ) + 0, GLenum, face );
40
WRITE_DATA( sizeof( int ) + 4, GLenum, pname );
41
WRITE_DATA( sizeof( int ) + 8, GLfloat, params[0] );
42
if (params_length > sizeof( *params ))
44
WRITE_DATA( sizeof( int ) + 12, GLfloat, params[1] );
45
WRITE_DATA( sizeof( int ) + 16, GLfloat, params[2] );
47
if (packet_length > 3*sizeof( *params ) )
49
WRITE_DATA( sizeof( int ) + 20, GLfloat, params[3] );
37
CR_GET_BUFFERED_POINTER(pc, packet_length );
38
WRITE_DATA( 0, int, packet_length );
39
WRITE_DATA( sizeof( int ) + 0, GLenum, face );
40
WRITE_DATA( sizeof( int ) + 4, GLenum, pname );
41
WRITE_DATA( sizeof( int ) + 8, GLfloat, params[0] );
42
if (params_length > sizeof( *params ))
44
WRITE_DATA( sizeof( int ) + 12, GLfloat, params[1] );
45
WRITE_DATA( sizeof( int ) + 16, GLfloat, params[2] );
47
if (packet_length > 3*sizeof( *params ) )
49
WRITE_DATA( sizeof( int ) + 20, GLfloat, params[3] );
53
53
void PACK_APIENTRY crPackMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
55
GET_PACKER_CONTEXT(pc);
56
__handleMaterialData( face, pname, params );
57
WRITE_OPCODE( pc, CR_MATERIALFV_OPCODE );
55
CR_GET_PACKER_CONTEXT(pc);
56
__handleMaterialData( face, pname, params );
57
WRITE_OPCODE( pc, CR_MATERIALFV_OPCODE );
58
CR_UNLOCK_PACKER_CONTEXT(pc);
60
61
void PACK_APIENTRY crPackMaterialiv(GLenum face, GLenum pname, const GLint *params)
62
/* floats and ints are the same size, so the packing should be the same */
63
GET_PACKER_CONTEXT(pc);
64
__handleMaterialData( face, pname, (const GLfloat *) params );
65
WRITE_OPCODE( pc, CR_MATERIALIV_OPCODE );
63
/* floats and ints are the same size, so the packing should be the same */
64
CR_GET_PACKER_CONTEXT(pc);
65
__handleMaterialData( face, pname, (const GLfloat *) params );
66
WRITE_OPCODE( pc, CR_MATERIALIV_OPCODE );
67
CR_UNLOCK_PACKER_CONTEXT(pc);