Win32 API 日本語リファレンス
ホームGraphics.Direct3D9 › D3DPOOL

D3DPOOL

列挙型
基底型i4

メンバー 4

名前10進16進
D3DPOOL_DEFAULT00x0
D3DPOOL_MANAGED10x1
D3DPOOL_SYSTEMMEM20x2
D3DPOOL_SCRATCH30x3

公式ドキュメント

リソースのバッファーを保持するメモリ クラスを定義します。

解説(Remarks)

すべてのプールの種類は、頂点バッファー、インデックス バッファー、テクスチャ、サーフェイスを含むすべてのリソースで有効です。

次の表は、レンダー ターゲット、深度ステンシル、動的用途、ミップマップ用途に対するプールの種類の制限を示します。「はい」は互換性のある組み合わせを示し、「はい」がない場合は互換性がないことを示します。

Pool D3DUSAGE_RENDERTARGET D3DUSAGE_DEPTHSTENCIL
D3DPOOL_DEFAULT はい はい
D3DPOOL_MANAGED
D3DPOOL_SCRATCH
D3DPOOL_SYSTEMMEM
Pool D3DUSAGE_DYNAMIC D3DUSAGE_AUTOGENMIPMAP
D3DPOOL_DEFAULT はい はい
D3DPOOL_MANAGED はい
D3DPOOL_SCRATCH
D3DPOOL_SYSTEMMEM はい

用途の種類の詳細については、D3DUSAGE を参照してください。

1 つのリソースに含まれる異なるオブジェクト(ミップマップ内のミップ レベル)でプールを混在させることはできず、一度プールを選択すると変更できません。

アプリケーションは、ほとんどの静的リソースに D3DPOOL_MANAGED を使用するべきです。これにより、アプリケーションはデバイスの消失(ロスト デバイス)に対処する必要がなくなります(マネージド リソースはランタイムによって復元されます)。これは、ユニファイド メモリ アーキテクチャ(UMA)システムで特に有益です。一方、動的リソースは D3DPOOL_MANAGED には適していません。実際、インデックス バッファーと頂点バッファーは、D3DPOOL_MANAGEDD3DUSAGE_DYNAMIC を組み合わせて作成することはできません。

動的テクスチャでは、ビデオ メモリとシステム メモリのテクスチャをペアで使用し、ビデオ メモリを D3DPOOL_DEFAULT で、システム メモリを D3DPOOL_SYSTEMMEM で割り当てることが望ましい場合があります。ロック用のメソッドを使用して、システム メモリ テクスチャのビットをロックして変更できます。その後、IDirect3DDevice9::UpdateTexture を使用してビデオ メモリ テクスチャを更新できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)

各言語での定義

列挙メンバーの定義。HSP タブは #define global(値は16進)。

typedef enum D3DPOOL : int {
    D3DPOOL_DEFAULT = 0,
    D3DPOOL_MANAGED = 1,
    D3DPOOL_SYSTEMMEM = 2,
    D3DPOOL_SCRATCH = 3
} D3DPOOL;
public enum D3DPOOL : int
{
    D3DPOOL_DEFAULT = 0,
    D3DPOOL_MANAGED = 1,
    D3DPOOL_SYSTEMMEM = 2,
    D3DPOOL_SCRATCH = 3,
}
Public Enum D3DPOOL As Integer
    D3DPOOL_DEFAULT = 0
    D3DPOOL_MANAGED = 1
    D3DPOOL_SYSTEMMEM = 2
    D3DPOOL_SCRATCH = 3
End Enum
import enum

class D3DPOOL(enum.IntEnum):
    D3DPOOL_DEFAULT = 0
    D3DPOOL_MANAGED = 1
    D3DPOOL_SYSTEMMEM = 2
    D3DPOOL_SCRATCH = 3
// D3DPOOL
pub const D3DPOOL_DEFAULT: i32 = 0;
pub const D3DPOOL_MANAGED: i32 = 1;
pub const D3DPOOL_SYSTEMMEM: i32 = 2;
pub const D3DPOOL_SCRATCH: i32 = 3;
// D3DPOOL
const (
	D3DPOOL_DEFAULT int32 = 0
	D3DPOOL_MANAGED int32 = 1
	D3DPOOL_SYSTEMMEM int32 = 2
	D3DPOOL_SCRATCH int32 = 3
)
const
  D3DPOOL_DEFAULT = 0;
  D3DPOOL_MANAGED = 1;
  D3DPOOL_SYSTEMMEM = 2;
  D3DPOOL_SCRATCH = 3;
// D3DPOOL
pub const D3DPOOL_DEFAULT: i32 = 0;
pub const D3DPOOL_MANAGED: i32 = 1;
pub const D3DPOOL_SYSTEMMEM: i32 = 2;
pub const D3DPOOL_SCRATCH: i32 = 3;
const
  D3DPOOL_DEFAULT* = 0
  D3DPOOL_MANAGED* = 1
  D3DPOOL_SYSTEMMEM* = 2
  D3DPOOL_SCRATCH* = 3
enum D3DPOOL : int {
    D3DPOOL_DEFAULT = 0,
    D3DPOOL_MANAGED = 1,
    D3DPOOL_SYSTEMMEM = 2,
    D3DPOOL_SCRATCH = 3,
}
#define global D3DPOOL_DEFAULT   0x0
#define global D3DPOOL_MANAGED   0x1
#define global D3DPOOL_SYSTEMMEM 0x2
#define global D3DPOOL_SCRATCH   0x3