rendered paste bodyas per-http://msdn.microsoft.com/archive/en-us/dx8_c/directx_cpp/images/fvfmem.gifstruct SVertexFormatOffsets{ u32 Size; bool HasTcoord0; u32 TCOORD0Offset; bool HasTcoord1; u32 TCOORD1Offset; bool HasTcoord2; u32 TCOORD2Offset; bool HasTcoord3; u32 TCOORD3Offset; bool HasTcoord4; u32 TCOORD4Offset; bool HasPosition; u32 PositionOffset; bool HasNormal; u32 NormalOffset; bool HasSpecular; u32 ColorOffset; // etc}class CVertexList, public IVertexList{ vector3df& getNormal(u32 idx) { return *((vector3df*)((format.size*idx) + offsets.Normal)); }}// BlindSides idea:enum E_VERTEX_PARAM_TYPE{TCOORDS1,TCOORDS2,TCOORDS3,TCOORDS4,NORMAL,POSITION,COLOR,EVRT_COUNT};struct VertexParam{ E_VERTEX_PARAM_TYPE type; u32 offset;};struct VertexType{ array<VertexParam> params;};struct DerivedVertexType : public VertexType{DerivedVertexType(){ VertexParam tcoords1 = {TCOORDS1,12}; params.push_back(tcoords1);}};