예제 #1
0
	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();
	};
예제 #2
0
		/**
		 * Method is used to add vertex pointer.
		 * @param	pPointer is pointer to vertex.
		 */
		void VertexPointerSet::add(Vertex* pPointer)
		{
			AddVertexPointer(pPointer);
		}