[DX9] 1.디바이스의 작성 5 – 셧 다운

실행중의 몇몇 포인트에서 애플리케이션을 셧 다운할 필요가 있습니다. 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:정점의 렌더링」에서 정점을 사용해 지오메트릭 쉐이프를 그리는 방법을 알아봅니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.