//---------------------------------------------------------------------------- void EditRenderView_PreView::Tick(double elapsedTime) { if (!IsEnable()) return; if (mRenderStep && mIsRenderCreated) { double tiemInSeconds = GetTimeInSeconds(); if (PVT_NONE == mPreViewType) { Renderer *renderer = mRenderStep->GetRenderer(); if (renderer && renderer->PreDraw()) { renderer->ClearBuffers(); renderer->PostDraw(); renderer->DisplayColorBuffer(); } } else if (PVT_TEXTURE == mPreViewType) { mRenderStep->Update(tiemInSeconds, elapsedTime); mRenderStep->ComputeVisibleSetAndEnv(); Renderer *renderer = mRenderStep->GetRenderer(); if (renderer && renderer->PreDraw()) { renderer->InitRenderStates(); renderer->ClearBuffers(); mRenderStep->Draw(); renderer->PostDraw(); renderer->DisplayColorBuffer(); } } else if (PVT_MODEL == mPreViewType) { mRenderStepScene->Update(tiemInSeconds, elapsedTime); mRenderStepScene->ComputeVisibleSetAndEnv(); Renderer *renderer = mRenderStepScene->GetRenderer(); if (renderer && renderer->PreDraw()) { renderer->InitRenderStates(); renderer->ClearBuffers(); mRenderStepScene->Draw(); renderer->PostDraw(); renderer->DisplayColorBuffer(); } } } }
//---------------------------------------------------------------------------- void EngineLoop::Tick() { mAppTime = Time::GetTimeInSeconds(); mElapsedTime = GetElapsedTime(); mLastAppTime = mAppTime; if (mEventWorld) mEventWorld->Update((float)mElapsedTime); PX2_RM.Update(mAppTime, mElapsedTime); PX2_FM.Update(); Project *proj = Project::GetSingletonPtr(); PX2_GR.Update(mAppTime, mElapsedTime); if (mIsInBackground) return; PX2_GR.ComputeVisibleSetAndEnv(); Renderer *defaultRenderer = Renderer::GetDefaultRenderer(); if (defaultRenderer && defaultRenderer->PreDraw()) { // clear screen defaultRenderer->SetViewport(Rectf(0.0f, 0.0f, mScreenSize.Width, mScreenSize.Height)); if (proj) defaultRenderer->SetClearColor(proj->GetBackgroundColor()); else defaultRenderer->SetClearColor(Float4::RED); defaultRenderer->ClearBuffers(); if (mIsDoAdjustScreenViewRect) defaultRenderer->SetViewport(mAdjustViewPort); if (proj) { Scene *scene = proj->GetScene(); if (scene) { defaultRenderer->SetClearColor(MathHelp::Float3ToFloat4(scene->GetColor(), 1.0f)); } else { defaultRenderer->SetClearColor(proj->GetProjBackgroundColor()); } defaultRenderer->ClearBuffers(); } PX2_GR.Draw(); defaultRenderer->PostDraw(); defaultRenderer->DisplayColorBuffer(); } }