void OgreXmlSerializer::ReadGeometry(VertexDataXml *dest) { dest->count = ReadAttribute<uint32_t>("vertexcount"); DefaultLogger::get()->debug(Formatter::format() << " - Reading geometry of " << dest->count << " vertices"); NextNode(); while(m_currentNodeName == nnVertexBuffer) { ReadGeometryVertexBuffer(dest); } }
void DiMeshSerializerImpl::ReadGeometry( DiDataStreamPtr& stream, DiSubMesh* pMesh ) { DI_SERIAL_LOG("Reading geometry data..."); unsigned int vertexCount = 0; ReadInts(stream, &vertexCount, 1); pMesh->SetVerticeNum(vertexCount); DI_SERIAL_LOG("Vertices count: %d", vertexCount); unsigned int faceCount = 0; ReadInts(stream, &faceCount, 1); pMesh->SetPrimitiveCount(faceCount); DI_SERIAL_LOG("Face count: %d", faceCount); if (!stream->Eof()) { unsigned short streamID = ReadChunk(stream); while(!stream->Eof() && (streamID == DI_GEOMETRY_VERTEX_BUFFER || streamID == DI_GEOMETRY_VERTEX_DECLARATION)) { switch (streamID) { case DI_GEOMETRY_VERTEX_DECLARATION: ReadGeometryVertexDeclaration(stream, pMesh); break; case DI_GEOMETRY_VERTEX_BUFFER: ReadGeometryVertexBuffer(stream, pMesh); break; } if (!stream->Eof()) { streamID = ReadChunk(stream); } } if (!stream->Eof()) { stream->Skip(-MSTREAM_OVERHEAD_SIZE); } } }