void RAS_StorageIM::TexCoord(const RAS_TexVert &tv) { int unit; if (GLEW_ARB_multitexture) { for (unit = 0; unit < *m_texco_num; unit++) { switch (m_texco[unit]) { case RAS_IRasterizer::RAS_TEXCO_ORCO: case RAS_IRasterizer::RAS_TEXCO_GLOB: glMultiTexCoord3fvARB(GL_TEXTURE0_ARB + unit, tv.getXYZ()); break; case RAS_IRasterizer::RAS_TEXCO_UV: glMultiTexCoord2fvARB(GL_TEXTURE0_ARB + unit, tv.getUV(unit)); break; case RAS_IRasterizer::RAS_TEXCO_NORM: glMultiTexCoord3fvARB(GL_TEXTURE0_ARB + unit, tv.getNormal()); break; case RAS_IRasterizer::RAS_TEXTANGENT: glMultiTexCoord4fvARB(GL_TEXTURE0_ARB + unit, tv.getTangent()); break; default: break; } } } if (GLEW_ARB_vertex_program) { for (unit = 0; unit < *m_attrib_num; unit++) { switch (m_attrib[unit]) { case RAS_IRasterizer::RAS_TEXCO_ORCO: case RAS_IRasterizer::RAS_TEXCO_GLOB: glVertexAttrib3fvARB(unit, tv.getXYZ()); break; case RAS_IRasterizer::RAS_TEXCO_UV: glVertexAttrib2fvARB(unit, tv.getUV(m_attrib_layer[unit])); break; case RAS_IRasterizer::RAS_TEXCO_NORM: glVertexAttrib3fvARB(unit, tv.getNormal()); break; case RAS_IRasterizer::RAS_TEXTANGENT: glVertexAttrib4fvARB(unit, tv.getTangent()); break; case RAS_IRasterizer::RAS_TEXCO_VCOL: glVertexAttrib4ubvARB(unit, tv.getRGBA()); break; default: break; } } } }
void __glXDisp_MultiTexCoord3fvARB(GLbyte *pc) { glMultiTexCoord3fvARB( *(GLenum *)(pc + 0), (GLfloat *)(pc + 4) ); }
void __stdcall glMultiTexCoord3fv(GLenum target, const GLfloat *v ) { if (!ARB_multitexture) return; glMultiTexCoord3fvARB(target, v); }