次の方法で共有


IDirect3DDevice9::CreateCubeTexture メソッド

IDirect3DDevice9::CreateCubeTexture メソッド

キューブ テクスチャ リソースを作成する。

構文

HRESULT CreateCubeTexture(      
    UINT EdgeLength,
    UINT Levels,
    DWORD Usage,
    D3DFORMAT Format,
    D3DPOOL Pool,
    IDirect3DCubeTexture9 **ppCubeTexture,
    HANDLE* pHandle
);

パラメータ

  • EdgeLength
    [in] キューブ テクスチャのすべての最高次レベル面のエッジのサイズ。各面の下のレベルのピクセル ディメンジョンは 1 つ上のレベルのピクセル ディメンジョンを (単純に) 半分にした値である。それぞれのディメンジョンは、1 ピクセルのサイズに収められる。したがって、2 で除算した結果が 0 の場合、代わりに 1 が使われる。
  • Levels
    [in] キューブ テクスチャの各面のレベルの数。0 (ゼロ) を指定すると、Microsoft® Direct3D® は、ミップマップ化キューブ テクスチャをサポートするハードウェアに対して、各面の 1 × 1 ピクセルまでのすべてのキューブ テクスチャ サブレベルを生成する。IDirect3DBaseTexture9::GetLevelCount を呼び出して、生成されたレベル数を確認する。
  • Usage
    [in] 使用法は 0 にできる。この場合使用法の値は設定されない。ただし、使用法が必要な場合は、1 つまたは複数の D3DUSAGE 定数の組み合わせを使う。CreateCubeTexture 内の使用方法パラメータと、IDirect3D9::CreateDevice の動作フラグを合致させて使うことが推奨される。詳細情報は「注意」を参照すること。
  • Format
    [in] D3DFORMAT 列挙型のメンバ。キューブ テクスチャのすべての面の全レベルのフォーマットを記述する。
  • Pool
    [in] D3DPOOL 列挙型のメンバ。キューブ テクスチャの配置先となるメモリ クラスを記述する。
  • ppCubeTexture
    [out, retval] 作成したキューブ テクスチャ リソースを表す IDirect3DCubeTexture9 インターフェイスへのポインタのアドレス。
  • pHandle
    [in] 予約済み。このパラメータは NULL に設定する。

戻り値

成功した場合は、D3D_OK を返す。

次の値を返す場合もある。

D3DERR_INVALIDCALL メソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。
D3DERR_OUTOFVIDEOMEMORY Direct3D が処理を行うのに十分なディスプレイ メモリがない。
E_OUTOFMEMORY Direct3D が呼び出しを完了するための十分なメモリを割り当てることができなかった。

注意

ミップマップ (テクスチャ) は、連続してダウンサンプリングされた (ミップマップ化された) サーフェイスの集合である。一方、IDirect3DDevice9::CreateCubeTexture で作成されるキューブ テクスチャは、サーフェイスごとに 1 つずつ、全部で 6 つのテクスチャ (ミップマップ) の集合である。すべてのサーフェイスは、キューブ テクスチャに存在していなければならない。また、キューブ マップ サーフェイスは、3 つのディメンジョン (x、y、および z) がすべて同じピクセル サイズでなければならない。

アプリケーションで D3DUSAGE_AUTOGENMIPMAP を使って IDirect3D9::CheckDeviceFormat を呼び出すことによって、特定のフォーマットでのミップマップの自動生成のサポートを検出できる。IDirect3D9::CheckDeviceFormat が D3DOK_NOAUTOGEN を返す場合、IDirect3DDevice9::CreateCubeTexture は成功するが、1 レベルのテクスチャを返す。