When using GLSL shaders the input attributes of the vertex shader must be mapped using the following semantic tables.
The name of the individual arrays correspond to the ElementSemantic used, the index of individual strings in the array correspond to the VertexElement::semanticIndex field.
const char * PositionSemantics[] = {
"aPosition",
"aPosition1",
"aPosition2",
"aPosition3",
"aPosition4",
"aPosition5",
"aPosition6",
"aPosition7",
};
const char * ColorSemantics[] = {
"aColor",
"aColor1",
"aColor2",
"aColor3",
"aColor4",
"aColor5",
"aColor6",
"aColor7",
};
const char * NormalSemantics[] = {
"aNormal",
"aNormal1",
"aNormal2",
"aNormal3",
"aNormal4",
"aNormal5",
"aNormal6",
"aNormal7",
};
const char * TexCoordSemantics[] = {
"aTexCoord",
"aTexCoord1",
"aTexCoord2",
"aTexCoord3",
"aTexCoord4",
"aTexCoord5",
"aTexCoord6",
"aTexCoord7",
};
const char * TangentSemantics[] = {
"aTangent",
"aTangent1",
"aTangent2",
"aTangent3",
"aTangent4",
"aTangent5",
"aTangent6",
"aTangent7",
};
const char * VectorSemantics[] = {
"aVector",
"aVector1",
"aVector2",
"aVector3",
"aVector4",
"aVector5",
"aVector6",
"aVector7",
};
const char * MatrixSemantics[] = {
"aMatrix",
"aMatrix1",
"aMatrix2",
"aMatrix3",
"aMatrix4",
"aMatrix5",
"aMatrix6",
"aMatrix7",
};