void AddVertexPointers(int vertexElementCount, CPUTBufferElementInfo *pVertexDataInfo) { int vertexStride = pVertexDataInfo[vertexElementCount-1].mOffset + pVertexDataInfo[vertexElementCount-1].mElementSizeInBytes; // size in bytes of a single vertex block //Enable(); for (int i = 0; i < vertexElementCount; i++) { switch (pVertexDataInfo[i].mElementType) { case CPUT_F32: AddVertexPointer(pVertexDataInfo[i].mBindPoint, pVertexDataInfo[i].mElementComponentCount, ConvertToOpenGLFormat(pVertexDataInfo[i].mElementType), GL_FALSE, vertexStride, (void *)(pVertexDataInfo[i].mOffset)); break; #ifndef CPUT_FOR_OGLES case CPUT_DOUBLE: AddVertexLPointer(pVertexDataInfo[i].mBindPoint, pVertexDataInfo[i].mElementComponentCount, ConvertToOpenGLFormat(pVertexDataInfo[i].mElementType), vertexStride, (void *)(pVertexDataInfo[i].mOffset)); break; #endif case CPUT_U32: case CPUT_I32: case CPUT_U16: case CPUT_I16: case CPUT_U8: case CPUT_I8: AddVertexIPointer(pVertexDataInfo[i].mBindPoint, pVertexDataInfo[i].mElementComponentCount, ConvertToOpenGLFormat(pVertexDataInfo[i].mElementType), vertexStride, (void *)(pVertexDataInfo[i].mOffset)); break; default: // unrecognized type // DEBUG_PRINT("Unrecognised type for vertex data"); break; } } Disable(); };
/** * Method is used to add vertex pointer. * @param pPointer is pointer to vertex. */ void VertexPointerSet::add(Vertex* pPointer) { AddVertexPointer(pPointer); }