void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { __GLFBcontext *gc = __glFBGetCurrentContext(); __GLFBvertexArrayPointerState *vertexPointer = &gc->state.vertArray.vertex; /* Check arguments */ if (size < 2 || size > 4 || stride < 0) { __glFBSetError(gc, GL_INVALID_VALUE); return; } /* Choose appropriate api proc */ switch(type) { __GL_VERTEX_FUNC(SHORT, s); __GL_VERTEX_FUNC(INT, i); __GL_VERTEX_FUNC(FLOAT, f); __GL_VERTEX_FUNC(DOUBLE, d); default: __glFBSetError(gc, GL_INVALID_ENUM); return; } vertexPointer->size = size; vertexPointer->type = type; vertexPointer->stride = stride; vertexPointer->ptr = pointer; /* Set internal state */ if (stride == 0) { vertexPointer->skip = __glFBTypeSize(type) * size; } else { vertexPointer->skip = stride; } }
void __indirect_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { __GLXcontext *gc = __glXGetCurrentContext(); __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); __GLXvertexArrayPointerState *vertexPointer = &state->vertArray.arrays[ vertex_ARRAY ]; /* Check arguments */ if (size < 2 || size > 4 || stride < 0) { __glXSetError(gc, GL_INVALID_VALUE); return; } /* Choose appropriate api proc */ switch(type) { __GL_VERTEX_FUNC(SHORT, s); __GL_VERTEX_FUNC(INT, i); __GL_VERTEX_FUNC(FLOAT, f); __GL_VERTEX_FUNC(DOUBLE, d); default: __glXSetError(gc, GL_INVALID_ENUM); return; } vertexPointer->size = size; vertexPointer->type = type; vertexPointer->stride = stride; vertexPointer->ptr = pointer; /* Set internal state */ if (stride == 0) { vertexPointer->skip = __glXTypeSize(type) * size; } else { vertexPointer->skip = stride; } }