Esempio n. 1
0
    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;
    }
Esempio n. 2
0
 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;
 }