void Engine::Render() { profile_code(); Viewport vp; vp.w = (int)mRootLayout->GetRect().w; vp.h = (int)mRootLayout->GetRect().h; RenderSystem::Instance()->SetViewport(vp); Float4 tm; tm.x = mInvSize.x * 2; tm.y = mInvSize.y * 2; tm.z = 0; tm.w = 1; mShaderFX->GetPass(0)->SetConst("u_Transform", tm); RenderSystem::Instance()->SetRenderState(eFillMode::SOLID, eCullMode::NONE, eDepthMode::NONE, eBlendMode::ALPHA_BLEND, eColorMode::ALL); RenderSystem::Instance()->SetShaderPass(mShaderFX->GetPass(0), false); if (!mRootLayout->IsVisible()) return ; mRootLayout->UpdateRenderItem(NULL); for (int i = 0; i < mRootLayout->GetChildCount(); ++i) { d_assert (KIND_OF(Layout, mRootLayout->GetChild(i))); Layout * pLayout = (Layout *)mRootLayout->GetChild(i); pLayout->UpdateRenderItem(); } for (int i = 0; i < mRootLayout->GetChildCount(); ++i) { d_assert (KIND_OF(Layout, mRootLayout->GetChild(i))); Layout * pLayout = (Layout *)mRootLayout->GetChild(i); pLayout->DoRender(); } }