Microsoft DirectX 8.0 (C++)

ステップ 5 : シャット ダウン

アプリケーションは、実行中のある時点で、シャット ダウンしなければならない。Microsoft® DirectX® アプリケーションをシャット ダウンするとは、アプリケーション ウィンドウを破棄するだけでなく、アプリケーションが使用しているすべての DirectX オブジェクトの割り当てを解除し、オブジェクトへのポインタを無効にすることを意味する。CreateDevice サンプル プロジェクトでは、WM_DESTROY メッセージを受け取ったときに、この処理を行うアプリケーション定義関数 Cleanup を呼び出す。

VOID Cleanup()
{
    if( g_pd3dDevice != NULL)
        g_pd3dDevice->Release();
    if( g_pD3D != NULL)
        g_pD3D->Release();
}

上記の関数は、各オブジェクトに対して IUnknown::Release メソッドを呼び出して、アプリケーションが使用している DirectX オブジェクトの割り当てを解除している。このチュートリアルは COM の規則に従っているため、ほとんどのオブジェクトに対する参照カウントはゼロになり、自動的にメモリから削除されるはずである。

シャット ダウンするとき以外にも、ユーザーがデスクトップ解像度や色深度を変更したときなどの通常の実行時に、使用中の Microsoft Direct3D® オブジェクトを破棄して再作成する必要が生じることもある。したがって、アプリケーションのクリーンアップ コードを作成しておき、必要な場合に呼び出すとよい。

このチュートリアルでは、デバイスの作成方法を示した。「チュートリアル 2 : 頂点のレンダリング」では、頂点を使用してジオメトリ形状を描画する方法を示す。