次の方法で共有


4. リソースの管理

4. リソースの管理

リソース管理とは、リソースをシステム メモリ ストレージからデバイスがアクセス可能なストレージに移し、デバイスがアクセス可能なストレージから破棄するプロセスである。Microsoft® Direct3D® ランタイムは、LRU (least-recently-used: 非使用時間最長) 優先方式に基づく独自の管理アルゴリズムを備えている。Direct3D は、1 つのフレーム (Device.BeginScene 呼び出しと EndScene 呼び出しの間) 内で、デバイスがアクセス可能なメモリに同時に格納できるより多くのリソースを検出すると、MRU (most-recently-used: 非使用時間最短) 優先方式に切り替える。

管理下のリソースを指定するには、作成時に Pool 列挙の Managed 定数を使う。管理下のリソースは、デバイスが消失状態から動作可能状態に移行する間も保持される。デバイスは Reset を呼び出すことで復元でき、このようなリソースはアートワークに再ロードしなくても正常に機能し続ける。ただし、デバイスを破棄して作成し直す必要がある場合は、Managed を使って作成したリソースをすべて作成し直す必要がある。

リソースをデフォルトのプールに配置することを指定するには、作成時に Default フラグを使う。デフォルトのプール内のリソースは、デバイスが消失状態から動作可能状態間に移行する間では保持されない。これらのリソースは、Reset を呼び出す前に解放し、後で作成し直す必要がある。

デバイスの消失状態の詳細については、「4. 消失したデバイス」を参照すること。

リソース管理はすべてのタイプおよび使用法に対してサポートされているわけではないことに注意する必要がある。たとえば、RenderTarget フラグを指定して作成したオブジェクトはサポートされない。また、内容が頻繁に変更されるオブジェクトに対しては、リソース管理は推奨されない。たとえば、すべてのフレームを変更する頂点バッファを管理すると、一部のハードウェアのパフォーマンスが大きく低下する場合がある。ただし、テクスチャ リソースではこのような問題は発生しない。

© 2002 Microsoft Corporation. All rights reserved. Terms of use.