コード例 #1
0
//----------------------------------------------------------------------------
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();
			}
		}
	}
}
コード例 #2
0
//----------------------------------------------------------------------------
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();
	}
}
コード例 #3
0
ファイル: Sample9.cpp プロジェクト: cbalderrama/wire3d
//----------------------------------------------------------------------------
Int main(Int argc, Char** argv)
{
    Main::Initialize();

    PdrRendererInput input;
    const Bool useVSync = true;

    // window width/height and windowed mode not supported on the Wii
    Renderer* pRenderer = WIRE_NEW Renderer(input, 0, 0, true, useVSync);

    // Renderer must be created before calling PADInit
    PADInit();

    RenderObjectPtr spCube = StandardMesh::CreateCube8(/* RGB(A) channels */ 4);
    Vector3F cameraLocation(0.0F, 0.0F, 10.0F);
    Vector3F viewDirection(0.0F, 0.0F, -1.0F);
    Vector3F up(0.0F, 1.0F, 0.0F);
    CameraPtr spCamera = WIRE_NEW Camera(cameraLocation, viewDirection, up);

    do
    {
        Transformation transformation;
        Matrix34F rotate(Vector3F(0.2F, 0.7F, 0.1F), MathF::FMod(
                             static_cast<Float>(System::GetTime()), MathF::TWO_PI));
        transformation.SetRotate(rotate);

        pRenderer->ClearBuffers();
        pRenderer->PreDraw(spCamera);
        pRenderer->Draw(spCube, transformation);
        pRenderer->PostDraw();
        pRenderer->DisplayBackBuffer();

        WPAD_ScanPads();
    } while (!(WPAD_ButtonsDown(0) & WPAD_BUTTON_HOME));


    // dereference (i.e. destroy) before destroying the renderer
    spCamera = NULL;
    spCube = NULL;

    WIRE_DELETE pRenderer;
    Main::Terminate();

    return 0;
}