신을 렌더링해 표시하기 위해 이번 샘플 코드에서는 백 버퍼를 청색으로 클리어해서 백 버퍼의 내용을 프론트 버퍼로 전송해 프론트 버퍼를 화면에 할당합니다.
신을 클리어하려면 IDirect3DDevice9::Clear 메소드를 호출합니다.
// Clear the back buffer to a blue color g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0,0,255), 1.0f, 0 );
일반적으로 렌더 타겟 전체를 커버하는 단일 사각형을 사용합니다. 이것을 실행하려면 첫번째의 파라메터를 0으로, 두번째의 파라메터를 NULL로 설정합니다. 세번째 파라메터는 메소드의 동작을 결정합니다. 렌더 타겟 서페이스(render-target suface), 관련지어진 심도 버퍼(associated depth buffer), 스텐실 버퍼(stencil buffer), 또는 3개의 임의의 조합을 클리어하기 위한 플래그를 지정할 수 있습니다. 이 튜토리얼에서는 심도 버퍼는 사용하지 않습니다. D3DCLEAR_TARGET 이 사용되고 있는 유일한 플래그입니다. 최초 3개의 파라메터는 렌더 타겟, 심도 버퍼, 그리고 스텐실 버퍼의 값의 클리어를 반영하도록 설정됩니다. CreateDevice 샘플 프로젝트에서는 렌더 타겟 서페이스의 클리어 컬러를 청(D3COLOR_XRGB(0,0,255))으로 설정합니다. 마지막 2개의 파라메터는 대응하는 플래그가 존재하지 않으므로 IDirect3DDevice9::Clear 메소드에서는 무시됩니다.
다음의 샘플 코드에 보이는 것처럼 CreateDevice 샘플 프로젝트는 뷰포트를 클리어한 후, Direct3D에 렌더링이 개시된 것을 통지하고 그 뒤 렌더링이 완료된 것을 통지합니다.
// Begin the scene g_pd3dDevice->BeginScene(); // Rendering of scene objects happens here // End the scene g_pd3dDevice->EndScene();
신이 렌더링되면 IDirect3DDevice9::Present 메소드를 사용해 표시합니다.
g_pd3dDevice->Present( NULL, NULL, NULL, NULL );
최초 2개의 파라메터는 복사할(source) 사각형과 복사될(destination) 사각형입니다. 이 샘플 코드에서는 이 2개의 파라메터를 NULL에 설정하는 것으로 백 버퍼 전체를 프론트 버퍼에 할당하고 있습니다. 3번째 파라메터는 이 프레젠테이션의 소스 윈도우를 설정합니다. 이 파라메터는 NULL에 설정되어있으므로 D3DPRESENT_PARAMETERS의 hWndDeviceWindow 멤버가 사용됩니다. 4번째의 파라메터는 DirtyRegion 파라메터로 일반적으로는 NULL에 설정됩니다.
이 튜토리얼의 마지막 단계로「5 – 셧 다운」에서 애플리케이션을 셧다운 해 봅시다.