コード例 #1
0
ファイル: MGUI_Engine.cpp プロジェクト: MSoft1115/Rad3D
	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();
		}
	}