void CResourceManager::ED_UpdateMatrix (LPCSTR Name, CMatrix* data) { CMatrix* M = _CreateMatrix (Name); *M = *data; }
void CResourceManager::OnDeviceCreate (IReader* F) { if (!RDEVICE.b_is_Ready) return; string256 name; #ifndef _EDITOR // scripting LS_Load (); #endif IReader* fs = 0; // Load constants fs = F->open_chunk (0); if (fs){ while (!fs->eof()) { fs->r_stringZ (name,sizeof(name)); CConstant* C = _CreateConstant (name); C->Load (fs); } fs->close (); } // Load matrices fs = F->open_chunk(1); if (fs){ while (!fs->eof()) { fs->r_stringZ (name,sizeof(name)); CMatrix* M = _CreateMatrix (name); M->Load (fs); } fs->close (); } // Load blenders fs = F->open_chunk (2); if (fs){ IReader* chunk = NULL; int chunk_id= 0; while ((chunk=fs->open_chunk(chunk_id))!=NULL){ CBlender_DESC desc; chunk->r (&desc,sizeof(desc)); IBlender* B = IBlender::Create(desc.CLS); if (0==B) { Msg ("! Renderer doesn't support blender '%s'",desc.cName); } else { if (B->getDescription().version != desc.version) { Msg ("! Version conflict in shader '%s'",desc.cName); } chunk->seek (0); B->Load (*chunk,desc.version); std::pair<map_BlenderIt, bool> I = m_blenders.insert (mk_pair(xr_strdup(desc.cName),B)); R_ASSERT2 (I.second,"shader.xr - found duplicate name!!!"); } chunk->close (); chunk_id += 1; } fs->close(); } m_textures_description.Load (); }