示例#1
0
void ModelPreviewCanvas::RenderWindow()
{
	if(!IsShownOnScreen())
		return;

	Driver* driver = gEngine->GetDriver();
	IDirect3DDevice9* d3dDevice = driver->GetD3DDevice();

	mCamera->FrameUpdate();

	if(wxWindow::FindFocus() == this)
		mCamera->ApplyCameraController();

	driver->RenderToSwapChain(mSwapChainIndex);
	driver->Clear(D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x7f36404a, 1.0f);
	driver->BeginScene();

	std::vector<Vector3> points;
	points.push_back(Vector3::Zero);
	points.push_back(Vector3(2, 0, 0));
	DebugDrawer::DrawLine(points, 0xffff0000, mCamera);

	Material* diffMtl = gEngine->GetMaterialManager()->GetDefaultViewMtl();

	if(mModel)
	{
		mModel->Draw(IDENTITY_MATRIX, mCamera, true);
	}

	driver->EndScene();
	driver->Present((HWND)GetHWND());
}
示例#2
0
void TreeGeneratorCanvas::RenderWindow()
{
	Driver* driver = gEngine->GetDriver();
	IDirect3DDevice9* d3dDevice = driver->GetD3DDevice();
	Camera* extraCamera = gEngine->GetSceneManager()->GetExtraCamera();

	switch(d3dDevice->TestCooperativeLevel())
	{
	case D3D_OK:
		{
			extraCamera->FrameUpdate();

			if(wxWindow::FindFocus() == this)
				extraCamera->ApplyCameraController();

			driver->RenderToSwapChain(swapChainIndex);
			driver->Clear(D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0x7f36404a, 1.0f);
			driver->BeginScene();

			std::vector<Vector3> points;
			points.push_back(Vector3::Zero);
			points.push_back(Vector3(2, 0, 0));
			DebugDrawer::DrawLine(points, 0xffff0000, extraCamera);

			if(mTree)
				mTree->Draw(extraCamera);

			driver->EndScene();
			driver->Present((HWND)GetHWND());

			break;
		}

	case D3DERR_DEVICELOST:
		break;

	case D3DERR_DEVICENOTRESET:
		{
			OnLostDevice();
			OnResetDevice();
			break;
		}
	}
}