Microsoft DirectX 8.0 (C++) |
リソースのバッファを保持するメモリ クラスを定義する。
typedef enum _D3DPOOL { D3DPOOL_DEFAULT = 0, D3DPOOL_MANAGED = 1, D3DPOOL_SYSTEMMEM = 2, D3DPOOL_FORCE_DWORD = 0x7fffffff } D3DPOOL;
デバイスが消失した場合は、D3DPOOL_DEFAULT を使って作成したリソースは、IDirect3DDevice8::Reset を呼び出す前に解放しなければならない。詳細については、「消失したデバイス」を参照すること。
1 つのリソース (ミップマップのミップ レベル) に含まれる異なるオブジェクトに対して複数のプールを混在させることはできず、いったん選択したプールは変更できない。
アプリケーションでは、ほとんどの静的リソースに対して D3DPOOL_MANAGED を使う必要がある。これにより、消失したデバイスを処理する必要がなくなる。管理リソースはランタイムによって復元される。これは、特に UMA システムで有効である。また、ダイナミック テクスチャ リソースに対しても、その変更頻度の多さにかかわらず、D3DPOOL_MANAGED を使う。それ以外の動的リソースに対しては、D3DPOOL_MANAGED はあまり使わない。実際、D3DPOOL_MANAGED と D3DUSAGE_DYNAMIC をともに使って、インデックス バッファおよび頂点バッファを作成することはできない。
ダイナミック テクスチャの場合、ビデオ メモリとシステム メモリのテクスチャのペアを使用して、D3DPOOL_DEFAULT を使ってビデオ メモリを、D3DPOOL_SYSTEMMEM を使ってシステム メモリを割り当てることがある。ロッキング メソッドを使って、システム メモリ テクスチャのビットをロックおよび変更できる。その後、IDirect3DDevice8::UpdateTexture を使って、ビデオ メモリ テクスチャを更新することができる。
ヘッダー : D3d8types.h で宣言。
IDirect3DDevice8::CreateCubeTexture、IDirect3DDevice8::CreateIndexBuffer、IDirect3DDevice8::CreateTexture、IDirect3DDevice8::CreateVolumeTexture、IDirect3DDevice8::CreateVertexBuffer、D3DINDEXBUFFER_DESC、D3DSURFACE_DESC、D3DVERTEXBUFFER_DESC、D3DVOLUME_DESC