Microsoft DirectX 8.0 (C++)

IDirect3DDevice8::CreateCubeTexture

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

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

パラメータ

EdgeLength
[in] キューブ テクスチャのすべての最高次レベル サーフェスのエッジのサイズ。ミップマップ レベルが下のピクセル ディメンジョンは、1 つ上のレベルのピクセル ディメンジョンを (単純に) 1/2 した値である。それぞれの大きさは、1 ピクセルのサイズに収められる。したがって、2 で除算した結果が 0 の場合、代わりに 1 が使用される。
Levels
[in] キューブ テクスチャの各サーフェスのレベルの数。0 を指定すると、Microsoft® Direct3D® は、ミップマップ化キューブ テクスチャをサポートするハードウェアに対して、各面の 1 × 1 ピクセルまでのすべてのキューブ テクスチャ サブレベルを生成する。その他の値を指定した場合は、1 レベルを生成する。IDirect3DBaseTexture8::GetLevelCount を呼び出して、生成されたレベル数を確認する。
Usage
[in] このリソースの使用方法を記述する、次の 1 つ以上のフラグの組み合わせ。
D3DUSAGE_DEPTHSTENCIL
サーフェスが深度ステンシル サーフェスとして使用されることを示す。リソースは、IDirect3DDevice8::SetRenderTarget メソッドの pNewDepthStencil パラメータに渡すことができる。「注意」を参照すること。
D3DUSAGE_RENDERTARGET
サーフェスがレンダリング ターゲットとして使用されることを示す。リソースは、SetRenderTarget メソッドの pRenderTarget パラメータに渡すことができる。「注意」を参照すること。

D3DUSAGE_RENDERTARGET または D3DUSAGE_DEPTHSTENCIL のいずれかが指定された場合は、アプリケーションで IDirect3D8::CheckDeviceFormat を呼び出して、デバイスがこれらの処理をサポートするかどうかを確認しなければならない。

Format
[in] D3DFORMAT 列挙型のメンバ。キューブ テクスチャの全サーフェスの全レベルのフォーマットを示す。
Pool
[in] D3DPOOL 列挙型のメンバ。キューブ テクスチャを格納するメモリ クラスを示す。
ppCubeTexture
[out, retval] 作成されたキューブ テクスチャ リソースを表す IDirect3DCubeTexture8 インターフェイスへのポインタのアドレス。

戻り値

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

失敗した場合は、次のいずれかの値を返す。

D3DERR_INVALIDCALL
D3DERR_OUTOFVIDEOMEMORY
E_OUTOFMEMORY

注意

キューブ テクスチャは、サーフェスの集合である点がほかのサーフェスと異なる。キューブ テクスチャを指定して SetRenderTarget を呼び出すには、IDirect3DCubeTexture8::GetCubeMapSurface を使って特定のサーフェスを選択してから、それを SetRenderTarget に渡さなければならない。

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

DirectX® 8.0 では、リソースの使用法が強制される。特定の処理にリソースを使用するアプリケーションは、リソース作成時にその処理を指定する必要がある。

動作環境

  ヘッダー : d3d8.h で宣言。
  インポート ライブラリ : D3d8.lib を使用。