int main()
{
	IwGxInit();
	IwGxSetColClear(0, 0, 0xff, 0xff);
	IwResManagerInit();
	Iw2DInit();
	setupTextures();
	registerInput();

    const int textWidth = s3eDebugGetInt(S3E_DEBUG_FONT_SIZE_WIDTH);
    const int textHeight = s3eDebugGetInt(S3E_DEBUG_FONT_SIZE_HEIGHT);
    const int width = s3eSurfaceGetInt(S3E_SURFACE_WIDTH);
    const int height = s3eSurfaceGetInt(S3E_SURFACE_HEIGHT);

	sprintf(g_debugButtonEvent, "ButtonEvent:");
	sprintf(g_debugKeyEvent, "KeyEvent:");
	sprintf(g_debugMotionEvent, "MotionEvent:");
	sprintf(g_debugTouchEvent, "TouchEvent:");
	sprintf(g_debugTouchMotionEvent, "TouchMotionEvent:");

	while (!s3eDeviceCheckQuitRequest())
	{
		render();

		// Yield until unyield is called or a quit request is recieved
        s3eDeviceYield(S3E_DEVICE_YIELD_FOREVER);
	}
	destroyTextures();
	Iw2DTerminate();
	IwResManagerTerminate();
	IwGxTerminate();
	return 0;
}
Exemple #2
0
/*
	Name		Game::deinitialise
	Syntax		Game::deinitialise()
	Brief		Releases any resources used by the game
*/
void Game::deinitialise()
{
	if (currentState_)
	{
		currentState_->deinitialise();
		delete currentState_;
		currentState_ = NULL;
	}

	if (input_)
	{
		input_->deinitialise();
		delete input_;
		input_ = NULL;
	}

	dzArchiveDetach();

	// shut down the IwResManager resource manager
	IwResManagerTerminate();

	// Shut down the Iw2D drawing module
	Iw2DTerminate();
	
	// Shut down the IwGx drawing module
    IwGxTerminate();
	
}
Exemple #3
0
void Brixpath::clean()
{
    delete _backgroundImage;
    
    // Shut down the IwGx drawing module
    IwGxFontTerminate();
    IwResManagerTerminate();
    Iw2DTerminate();
};
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();
}
Exemple #5
0
//-----------------------------------------------------------------------------
void HexMapTest::ShutDown() {
    // Destroy texture
    delete s_BitMapTexture;

	// Terminate
	delete hexGrid;
	IwGetResManager()->DestroyGroup(pGroup);
	IwResManagerTerminate();
    IwGxTerminate();
}
Exemple #6
0
int main() {
    
	IwGxInit();
	IwResManagerInit();
 
	doMain();
	
	IwResManagerTerminate();
	IwGxTerminate();
		
	return 0;
}
void Game::Shutdown()
{
	m_webManager->FreeInstance();

	GameState::ReleaseStatesStack();

	m_postProcessing->Remove();
	m_postProcessing->FreeInstance();

	m_shaderManager->Remove();
	m_shaderManager->FreeInstance();

	m_scriptManager->Remove();
	m_scriptManager->FreeInstance();

	m_soundManager->Remove();
	m_soundManager->FreeInstance();

	m_config->Remove();
	m_config->FreeInstance();

	m_accelerometerManager->Stop();
	m_accelerometerManager->FreeInstance();

	m_touchManager->Remove();
	m_touchManager->FreeInstance();

	m_menuManager->Remove();
	m_menuManager->FreeInstance();

	m_font->Remove();
	m_font->FreeInstance();

	LocaliseTerminate();

	WorldLoader::ClearAndFree();

	IwResManagerTerminate();

	IwGraphicsTerminate();
	IwGxTerminate();
}
Exemple #8
0
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();
}
int main(int argc, char* argv[])
{
	g_pointerdown = false;
	FillDefaultLocalScores();
	// Initialisation of Airplay Studio modules
	Iw2DInit();			// Initialise support for rendering with the standard SW renderer
	IwGxLightingOff();
	IwResManagerInit();
	Load();

	int16 sw = (int16)Iw2DGetSurfaceWidth();
	int16 sh = (int16)Iw2DGetSurfaceHeight();

	PAL_InitData_t palInitData;
	SC_Error_t retCode = SC_Client_New(&g_client, &palInitData, SC_TEST_GAME_ID,
			SC_TEST_GAME_SECRET, "AIW");

	if (retCode != SC_OK) 
		s3eDebugAssertShow(S3E_MESSAGE_CONTINUE_STOP, "Failed to create SC_Client");
	
	IwGetResManager()->LoadGroup("fonts.group");
	LoadGlobalImages();

	LoadMainControls();
	game = new CGame();
	mainmenu = new CMainMenu();
	profile = new CProfile();
	scores = new CScores();


	mainmenu->Load();
	game->Load();
	profile->Load();
	scores->Load();
	CBaseScene *curscene = (CBaseScene *)mainmenu;
	g_curSceneType = stMainMenu;


	uint32 timer = (uint32)s3eTimerGetMs();

	g_AccelerometerEnabled = (s3eAccelerometerStart() == S3E_RESULT_SUCCESS);

	

	while(curscene)
	{

		s3eDeviceYield(0);


		//// Check for user quit
		if (s3eDeviceCheckQuitRequest())
			break;


		int delta = uint32(s3eTimerGetMs()) - timer;
		timer += delta;

		// Make sure the delta-time value is safe
		if (delta < 0)
			delta = 0;
		if (delta > 100)
			delta = 100;

		if (g_AccelerometerEnabled)
		{

			if (!g_waiting)
			{
				if (g_errorDialog->Get_Visible())
				{
					if (UpdatePointer() == petDown)
						CloseErrorDlg();
					else
						g_errorDialog->Update(delta);
				}
				else
				{
					switch (UpdatePointer())
					{
						case petNone: break;
						case petDown: curscene->PointerDown(g_pointerx, g_pointery); break;
						case petUp: curscene->PointerUp(g_pointerx, g_pointery); break;
						case petMove: curscene->PointerMove(g_pointerx, g_pointery); break;
					}
					curscene->Update(delta);
				}
			}
			curscene->Render();
			if (g_waiting)
			{
				Iw2DSetColour(0xeeffffff);
				Iw2DFillRect(CIwSVec2(0, 0), CIwSVec2(sw, sh));

				Iw2DSetColour(0xff000000);
		
				Iw2DSetFont(g_font);
				Iw2DDrawString(g_waitcaption, CIwSVec2(0, 0), CIwSVec2(sw, sh), IW_2D_FONT_ALIGN_CENTRE, IW_2D_FONT_ALIGN_CENTRE);
			}
			if (g_errorDialog->Get_Visible())
			{
				g_errorDialog->Render();
			}
		}


		Iw2DSurfaceShow();

		switch (g_curSceneType)
		{
			case stNone: curscene = 0; break;
			case stMainMenu: 
			{
				if (curscene != (CBaseScene *)mainmenu)
				{
					curscene = (CBaseScene *)mainmenu; 
					curscene->Show();
				}
			}	break;
			case stGame: 
			{
				if (curscene != (CBaseScene *)game)
				{
					curscene = (CBaseScene *)game;
					curscene->Show();
				}
			}break;

			case stProfile: 
			{
				if (curscene != (CBaseScene *)profile)
				{
					curscene = (CBaseScene *)profile;
					curscene->Show();
				}
			}break;
			case stScores: 
			{
				if (curscene != (CBaseScene *)scores)
				{
					curscene = (CBaseScene *)scores;
					curscene->Show();
				}
			}break;
		}
	}
	Save();
	delete game;
	delete mainmenu;
	delete profile;
	delete scores;

	SC_Client_Release(g_client);
	UnloadGlobalImages();
	UnloadMainControls();
	if (g_AccelerometerEnabled)
		s3eAccelerometerStop();
	// Terminate system modules
	IwResManagerTerminate();
	Iw2DTerminate();

	return 0;
}
void	CIwGamePlatformOtherMarm::ReleaseResManager()
{
	IwResManagerTerminate();
}