void DiMeshSerializer::ImportMesh( DiDataStreamPtr& stream, DiMesh* pDest ) { DI_SERIAL_LOG("Loading mesh : %s", stream->GetName().c_str()); char sign[4]; stream->Read(sign,4); if (CheckHead(sign)) { uint16 version; stream->Read(&version,sizeof(uint16)); DI_SERIAL_LOG("Mesh version: %d", version); if (version >= MODEL_SERIAL_VERSION_NUM) { DI_ERROR("Unknow mesh version."); return; } DiMeshSerializerImpl* impl = GetImplemention((DiMeshSerialVersion)version); if (impl) { impl->ImportMesh(stream,pDest); } DI_DELETE impl; return; } DI_ERROR("Invalid mesh file head."); return; }
bool DiMaterial::Load( DiDataStreamPtr data ) { DiMaterialSerializer ms; if(ms.ParseMaterial(data,this) == false) { DI_WARNING("Failed to load the material : %s",data->GetName().c_str()); return false; } return true; }