void release() { delete redMat; delete greenMat; delete planeMat; delete sphereMat; delete emiMat; delete matSampler; delete camera; ReleaseWorld(); releaseFrameBuffer(&frameBuffer); }
ROCK3DGAME_API IWorld* CreateWorld(const IView::Desc& viewDesc, bool steamInit) { CoInitializeEx(NULL, COINIT_MULTITHREADED | COINIT_DISABLE_OLE1DDE); srand(_time32(NULL)); // restrict this main game thread to the first processor, so query performance counter won't jump on crappy AMD cpus DWORD dwThreadAffinityMask = 0x01; ::SetThreadAffinityMask( ::GetCurrentThread(), dwThreadAffinityMask ); World* world = new game::World(); try { #ifdef STEAM_SERVICE if (steamInit) { switch (SteamService::Initialize()) { case SteamService::irFailed: LSL_LOG("steam initialize irFailed"); break; case SteamService::irRestart: LSL_LOG("steam initialize irRestart"); //_world->Terminate(EXIT_FAILURE); break; case SteamService::irSuccess: LSL_LOG("steam initialize irSuccess"); break; } } #endif world->Init(viewDesc); } catch(...) { ReleaseWorld(world); world = 0; throw; } return world; }