void glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) { __GLFBcontext *gc = __glFBGetCurrentContext(); __GLFBvertexArrayPointerState *normalPointer = &gc->state.vertArray.normal; /* Check arguments */ if (stride < 0) { __glFBSetError(gc, GL_INVALID_VALUE); return; } /* Choose appropriate api proc */ switch(type) { __GL_NORMAL_FUNC(BYTE, b); __GL_NORMAL_FUNC(SHORT, s); __GL_NORMAL_FUNC(INT, i); __GL_NORMAL_FUNC(FLOAT, f); __GL_NORMAL_FUNC(DOUBLE, d); default: __glFBSetError(gc, GL_INVALID_ENUM); return; } normalPointer->type = type; normalPointer->stride = stride; normalPointer->ptr = pointer; /* Set internal state */ if (stride == 0) { normalPointer->skip = 3 * __glFBTypeSize(type); } else { normalPointer->skip = stride; } }
void __indirect_glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) { __GLXcontext *gc = __glXGetCurrentContext(); __GLXattribute * state = (__GLXattribute *)(gc->client_state_private); __GLXvertexArrayPointerState *normalPointer = &state->vertArray.arrays[ normal_ARRAY ]; /* Check arguments */ if (stride < 0) { __glXSetError(gc, GL_INVALID_VALUE); return; } /* Choose appropriate api proc */ switch(type) { __GL_NORMAL_FUNC(BYTE, b); __GL_NORMAL_FUNC(SHORT, s); __GL_NORMAL_FUNC(INT, i); __GL_NORMAL_FUNC(FLOAT, f); __GL_NORMAL_FUNC(DOUBLE, d); default: __glXSetError(gc, GL_INVALID_ENUM); return; } normalPointer->type = type; normalPointer->stride = stride; normalPointer->ptr = pointer; /* Set internal state */ if (stride == 0) { normalPointer->skip = 3 * __glXTypeSize(type); } else { normalPointer->skip = stride; } }