Example #1
0
void
__indirect_glIndexPointerEXT(GLenum type, GLsizei stride,
                             GLsizei count, const GLvoid * pointer)
{
   (void) count;
   __indirect_glIndexPointer(type, stride, pointer);
}
void
__glXPopArrayState( __GLXattribute * state )
{
    struct array_state_vector * arrays = state->array_state;
    struct array_stack_state * stack;
    unsigned  i;


    arrays->stack_index--;
    stack = & arrays->stack[ (arrays->stack_index * arrays->num_arrays) ];

    for ( i = 0 ; i < arrays->num_arrays ; i++ ) {
	switch ( stack[i].key ) {
	case GL_NORMAL_ARRAY:
	    __indirect_glNormalPointer( stack[i].data_type,
					stack[i].user_stride,
					stack[i].data );
	    break;
	case GL_COLOR_ARRAY:
	    __indirect_glColorPointer( stack[i].count,
				       stack[i].data_type,
				       stack[i].user_stride,
				       stack[i].data );
	    break;
	case GL_INDEX_ARRAY:
	    __indirect_glIndexPointer( stack[i].data_type,
				       stack[i].user_stride,
				       stack[i].data );
	    break;
	case GL_EDGE_FLAG_ARRAY:
	    __indirect_glEdgeFlagPointer( stack[i].user_stride,
					  stack[i].data );
	    break;
	case GL_TEXTURE_COORD_ARRAY:
	    arrays->active_texture_unit = stack[i].index;
	    __indirect_glTexCoordPointer( stack[i].count,
					  stack[i].data_type,
					  stack[i].user_stride,
					  stack[i].data );
	    break;
	case GL_SECONDARY_COLOR_ARRAY:
	    __indirect_glSecondaryColorPointerEXT( stack[i].count,
						   stack[i].data_type,
						   stack[i].user_stride,
						   stack[i].data );
	    break;
	case GL_FOG_COORDINATE_ARRAY:
	    __indirect_glFogCoordPointerEXT( stack[i].data_type,
					     stack[i].user_stride,
					     stack[i].data );
	    break;

	}
	
	__glXSetArrayEnable( state, stack[i].key, stack[i].index,
			     stack[i].enabled );
    }

    arrays->active_texture_unit = 
      arrays->active_texture_unit_stack[ arrays->stack_index ];
}