void SE_Application::update(SE_TimeMS realDelta, SE_TimeMS simulateDelta)
{
    processCommand(realDelta, simulateDelta);
	mAnimationManager->update(realDelta, simulateDelta);
    if(mState == RUNNING)
    {
        //mRenderManager->beginDraw();
        mSceneManager->render(*mRenderManager);
        mRenderManager->sort();
        mRenderManager->draw();
        mRenderManager->endDraw();
    }
    doDelayDestroy();
}
Example #2
0
void SE_Application::update(SE_TimeMS realDelta, SE_TimeMS simulateDelta)
{
	
    if(mState == SUSPEND)	
	{ 
       mState = EXIT;
       return;
	}    
    processCommand(realDelta, simulateDelta);
	
    if(mState == RUNNING)
    {
	mAnimationManager->update(realDelta, simulateDelta);
	mParticleSystemManager->update(realDelta, simulateDelta);
#ifdef EDITOR
		for(int i=0;i<4;++i)
		{
			PVRShellInitAPI& shellAPI = MyShellInit::getInstance()->mShellAPI[i];
			eglMakeCurrent(shellAPI.m_EGLDisplay, shellAPI.m_EGLWindow, shellAPI.m_EGLWindow, MyShellInit::getInstance()->mShellAPI[0].m_EGLContext);

			mRenderManager->beginDraw();
			mSceneManager->getMainScene()->setCamera((SE_Camera*)mEditorManager->getViewportCamera(i));
			mSceneManager->renderScene(*mRenderManager);
			//mRenderManager->setCurrentCamera((SE_Camera*)mEditorManager->getViewportCamera(i));
			mRenderManager->sort();
			mRenderManager->draw();
			mRenderManager->endDraw();

		}
#else
			mRenderManager->beginDraw();
			mSceneManager->renderScene(*mRenderManager);
			mRenderManager->sort();
			mRenderManager->draw();
			mRenderManager->endDraw();
#endif
    }
	if(mConfig)
	{
		int printRenderInfo = mConfig->getInt("OutputRenderInfo", 0);
		if(printRenderInfo)
		{			
            if(SE_Application::getInstance()->SEHomeDebug)
            {
                if(SE_Application::getInstance()->SEHomeDebug)
			LOGI("### total surface num = %d, total vertex num = %d , total face num = %d ##\n", 
				SE_Application::getInstance()->getStatistics().renderSurfaceNum,
				SE_Application::getInstance()->getStatistics().renderVertexNum, 
				SE_Application::getInstance()->getStatistics().renderFaceNum
				);
            }
			std::list<SE_Application::RenderUnitStatistics*>::iterator ruStatIt;
			SE_Application::Statistics& stat = SE_Application::getInstance()->getStatistics();
			for(ruStatIt = stat.renderUnitData.begin() ; ruStatIt != stat.renderUnitData.end(); ruStatIt++)
			{
				SE_Application::RenderUnitStatistics* rus = *ruStatIt;
                if(SE_Application::getInstance()->SEHomeDebug)
				LOGI("## surface name = %s, vertex num = %d, face num = %d ##\n", rus->name.c_str(), rus->vertexNum, rus->faceNum);
			}
            if(SE_Application::getInstance()->SEHomeDebug)
			LOGI("## texture num = %d ##\n", stat.textureList.size());
			std::list<SE_Application::TexUseData>::iterator texIt;
			for(texIt = stat.textureList.begin() ; 
				texIt != stat.textureList.end() ; 
				texIt++)
			{
                if(SE_Application::getInstance()->SEHomeDebug)
				LOGI("## texture : %s , num = %d\n", texIt->name.c_str(), texIt->num);
			}
		}
	}
    doDelayDestroy();
}
Example #3
0
SE_Application::~SE_Application()
{
    for(int i = 0 ; i < MAX_CAMERA_NUM ; i++)
    {
        if(mCameraArray[i])
        {
            delete mCameraArray[i];
        }        
    }
    if(mParticleSystemManager)
        delete mParticleSystemManager;
    if(mSceneManager)
        delete mSceneManager;
    if(mResourceManager)
        delete mResourceManager;
	if(mInputManager)
		delete mInputManager;
	if(mAnimationManager)
		delete mAnimationManager;
    /*
	if(mElementManager)
		delete mElementManager;
        */
    
	if(mRenderTargetManager)
		delete mRenderTargetManager;
	
    SE_CommandFactoryList::iterator it;
    for(it = mCommandFactoryList.begin() ; it != mCommandFactoryList.end() ; it++)
    {
        delete it->factory;
    }
    delete mRenderManager;
#ifdef ANDROID
    if(mAssetManager)
    {
        delete mAssetManager;
    }
#endif

    if(mThreadManager)
    {
        delete mThreadManager;
    }

    if(mRenderSystemCapabilities)
    {
        delete mRenderSystemCapabilities;
    }

//    if(mUIManager)
//    {
//        delete mUIManager;
//    }
#ifdef EDITOR
	if(mEditorManager)
	{
		delete mEditorManager;
	}
#endif
    if(mPluginsManager)
    {
        delete mPluginsManager;
    }

    if(mDynamicLibManager)
    {
        delete mDynamicLibManager;
    }

    if(mRenderUnitManager)
    {
        delete mRenderUnitManager;
    }

    doDelayDestroy();

    std::list<SE_ResourceManager*>::iterator itloader = mLoaderList.begin();
    for(;itloader != mLoaderList.end();itloader++)
    {
        SE_ResourceManager* r = *itloader;
        delete r;
    }
    mLoaderList.clear();
}