/* * Macros used in this file: * NAME(x) Name of the function * TYPE Type to use * TYPEIDX Type constant (FLAG_BYTE, FLAG_UBYTE, etc) */ static void NAME(normal_element_3)(GLcontext context, struct GLarray_t *array, GLuint i, GLuint unit) { TYPE *cur = (TYPE *)((uint8 *)array->pointer + array->stride * i); context->current.CurrentNormal.x = (GLfloat)cur[0]; context->current.CurrentNormal.y = (GLfloat)cur[1]; context->current.CurrentNormal.z = (GLfloat)cur[2]; }; static void NAME(normal_fetch_3)(GLcontext context, struct GLarray_t *array, GLvoid *pos, GLuint unit) { TYPE *cur = (TYPE *)pos; THIS_VERTEX.Normal.x = (GLfloat)cur[0]; THIS_VERTEX.Normal.y = (GLfloat)cur[1]; THIS_VERTEX.Normal.z = (GLfloat)cur[2]; } static void NAME(normal_fetch_idx_3)(GLcontext context, struct GLarray_t *array, GLuint i, GLuint unit) { TYPE *cur = (TYPE *)((uint8 *)array->pointer + array->stride * i); THIS_VERTEX.Normal.x = (GLfloat)cur[0]; THIS_VERTEX.Normal.y = (GLfloat)cur[1]; THIS_VERTEX.Normal.z = (GLfloat)cur[2]; } static void NAME(normal_init)(void) { normal_fetchElement[TYPEIDX] = NAME(normal_element_3); normal_fetch[TYPEIDX] = NAME(normal_fetch_3); normal_fetchIdx[TYPEIDX] = NAME(normal_fetch_idx_3); } #undef NAME #undef TYPE #undef TYPEIDX