void ResourceManager::release() { for (IIter p = imgs->begin(); p != imgs->end(); ++p) { delete p->second.texture; delete p->second.mat; } delete sounds; delete imgs; IwResManagerTerminate(); IwSoundTerminate(); }
void CIwGameAudio::Release() { // Stop sound and music StopMusic(); StopAllSounds(); // Clean-up sound collection SAFE_DELETE(SoundCollection) // Cleanup IwSound IwSoundTerminate(); }
Audio::~Audio() { for (std::list<AudioSound*>::iterator it = m_Sounds.begin(); it!= m_Sounds.end(); it++) delete *it; IwSoundTerminate(); }
void Game::mainLoop() { // initialize deltaTime = 0; // TODO: create a config file and move these there const uint64 TARGET_FRAME_MS = 16; const uint64 MAX_FRAME_MS = 100; // init assets AssetFactory::getInstance().init(); //init resource manager #ifdef IW_BUILD_RESOURCES IwGetResManager()->AddHandler(new CIwResHandlerWAV); #endif #ifdef _DEBUG IwGetResManager()->LoadGroup("TestLevel.group"); #endif // create level //LevelManager::getInstance().pushLevel(new MainMenu(this)); LevelManager::getInstance().pushLevel(new TestLevel()); LevelManager::getInstance().getActiveLevel()->initialize(); // init input Input::getInstance(); //Init sound and resmanager //IwGxInit(); //Iw2DInit(); //Iw2DSetAlphaMode(IW_2D_ALPHA_HALF); IwSoundInit(); IwResManagerInit(); IwGetResManager()->LoadGroup("TestLevel.group"); // loop while( !quit ) { //s3eDeviceYield(0); // S3E applications should yield frequently uint64 time = s3eTimerGetMs(); if ( s3eDeviceCheckQuitRequest() ) { quit = true; } IwGetSoundManager()->Update(); update(); render(); deltaTime = s3eTimerGetMs() - time; int yield = 0; if (deltaTime < TARGET_FRAME_MS) { yield = TARGET_FRAME_MS - deltaTime; deltaTime = TARGET_FRAME_MS; } else if (deltaTime > MAX_FRAME_MS) { deltaTime = MAX_FRAME_MS; } s3eDeviceYield(yield); } // clean up Input::getInstance().unregister(); IwSoundTerminate(); IwResManagerTerminate(); Iw2DTerminate(); }