실행중의 몇몇 포인트에서 애플리케이션을 셧 다운할 필요가 있습니다. DirectX 애플리케이션을 셧 다운하면 애플리케이션 윈도우가 파기될뿐 아니라 애플리케이션이 사용하고 있는 DirectX 오브젝트가 할당을 해제돼 그들로의 포인터는 무효화 됩니다. CreateDevice 샘플 프로젝트에서는 WM_DESTROY 메시지를 받으면 이 메시지를 처리하기 위해서 애플리케이션 정의 함수의 Cleanup을 호출합니다.
VOID Cleanup() { if( g_pd3dDevice != NULL) g_pd3dDevice->Release(); if( g_pD3D != NULL) g_pD3D->Release(); }
상기 함수는 오브젝트마다 IUnknown 메소드를 호출해 사용하고 있는 Direct3D 오브젝트의 할당을 해제합니다. 이 튜토리얼은 COM 룰을 따르므로 대부분의 오브젝트의 리퍼런스 카운트는 0이 되어 메모리로부터 자동적으로 소거됩니다.
셧다운 이외에도 데스크 톱의 해상도와 색상수를 변경할 경우 등 통상 실행중에 사용중의 Microsoft Direct3D 오브젝트를 파기해 다시 작성할 필요가 생길 수 있습니다. 그때문에 애플리케이션의 클린 업 코드는 필요에 따라 호출하도록 한 곳에 모아 유지할 것을 추천합니다.
이 튜토리얼에서는 디바이스를 작성하는 방법을 다뤘습니다.「튜토리얼2:정점의 렌더링」에서 정점을 사용해 지오메트릭 쉐이프를 그리는 방법을 알아봅니다.