Platform SDK: DirectX

D3DXCreateCubeMapTexture

D3DXCreateCubeMapTexture 関数は、空白のキューブ マップ テクスチャを作成する。

HRESULT D3DXCreateCubeMapTexture(
  LPDIRECT3DDEVICE7 pd3dDevice,
  LPDWORD pFlags,
  DWORD cubefaces,
  D3DCOLOR colorEmptyFaces,
  LPDWORD pWidth,
  LPDWORD pHeight,
  D3DX_SURFACEFORMAT* pPixelFormat,
  LPDIRECTDRAWPALETTE pDDPal,
  LPDIRECTDRAWSURFACE7* ppDDSurf,
  LPDWORD pNumMipMaps
);

パラメータ

pd3dDevice
テクスチャに関連付けられている Direct3D デバイスの IDirect3DDevice7 インターフェイスへのポインタ。
pFlags
DWORD 値へのポインタ。ミップマップを生成しない場合、このパラメータにより D3DX_TEXTURE_NOMIPMAP フラグを指定する。この値に、NULL を指定することも可能である。ミップマップ生成がサポートされていない場合は、D3DX_TEXTURE_NOMIPMAP フラグが返される。
cubefaces
このパラメータには、生成するキューブ マップのサーフェスを指定できる。詳細については、「注意」を参照すること。
colorEmptyFaces
このパラメータの D3DCOLOR 型には、キューブ マップで不明のサーフェス (cubefaces パラメータで指定されなかったサーフェス) の位置を確保するために 1 つの A8R8G8B8 カラーを指定できる。
pWidth
幅を示す DWORD 値へのポインタ (ピクセル単位)。0 または D3DX_DEFAULT を指定した場合、幅はファイルから取得される。このパラメータは、補正された幅を返す。
pHeight
高さを示す DWORD 値へのポインタ (ピクセル単位)。0 または D3DX_DEFAULT を指定した場合、高さはファイルから取得される。このパラメータは、補正された高さを返す。
pPixelFormat
サーフェス フォーマットを示す D3DX_SURFACEFORMAT 列挙型のメンバへのポインタ。このパラメータには、D3DX_DEFAULT を入力できない。このパラメータでは、使用されているサーフェス フォーマットが返される。
pDDPal
パレット化サーフェスに設定されている (存在する場合) DirectDraw パレットの IDirectDrawPalette インターフェイスへのポインタ。これは、非パレット化サーフェスの場合、設定されていても無視される。そのため、結果サーフェスが 8 ビットのパレット化サーフェスの場合は、使用するパレットを指定できる。
ppDDSurf
指定内容やカレント ハードウェアに一致し、作成されたテクスチャの DirectDrawSurface オブジェクトへのポインタのアドレス。
pNumMipMaps
DWORD 値へのポインタ。キューブ マップの特定のサーフェスに対して生成されたミップマップの数。

戻り値

成功すれば、S_OK を返す。

失敗すれば、次いずれかの値を返す。

D3DERR_TEXTURE_NO_SUPPORT
D3DXERR_D3DXNOTSTARTEDYET
D3DXERR_INVALIDPARAMETER
D3DXERR_NOMATCHFOUND
D3DXERR_NULLPOINTER
DDERR_INCOMPATIBLEPRIMARY
DDERR_INVALIDCAPS
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDPIXELFORMAT
DDERR_NOALPHAHW
DDERR_NOCOOPERATIVELEVELSET
DDERR_NODIRECTDRAWHW
DDERR_NOEMULATION
DDERR_NOEXCLUSIVEMODE
DDERR_NOFLIPHW
DDERR_NOMIPMAPHW
DDERR_NOOVERLAYHW
DDERR_NOZBUFFERHW
DDERR_OUTOFMEMORY
DDERR_OUTOFVIDEOMEMORY
DDERR_PRIMARYSURFACEALREADYEXISTS
DDERR_UNSUPPORTEDMODE

注意

キューブ マップは、最大で 6 サーフェスを持つ。また、不明のサーフェスで使用する色を 1 つ指定できる。反射の錯視や屈折を作成するためにキューブ マップを使用する方法の詳細については、Direct3D 直接モードのドキュメントを参照すること。

cubefaces パラメータに D3DX_DEFAULT、0、DDSCAPS2_CUBEMAP_ALLFACES を指定した場合は、キューブ マップの 6 サーフェスすべてを作成するように指示される。DDSCAPS2_CUBEMAP_POSITIVEX、DDSCAPS2_CUBEMAP_NEGATIVEX、DDSCAPS2_CUBEMAP_POSITIVEY、DDSCAPS2_CUBEMAP_NEGATIVEY、DDSCAPS2_CUBEMAP_POSITIVEZ、または DDSCAPS2_CUBEMAP_NEGATIVEZ は、任意に組み合わせて指定できる。

pFlags パラメータがミップマップを作成しないように特に設定されていない限り、最低レベル サイズの 1x1 に達するまでミップマップは生成される。

ミップマップの詳細については、ミップマップによるテクスチャ フィルタリング を参照すること。

幅、高さ、ピクセル フォーマットは、使用可能なハードウェアに基づいて変わる。たとえば、ミップマップ ディメンジョンは 2 の累乗でなければならず、また幅は正方形テクスチャの高さと等しくなければならない。さらに、指定されたピクセル フォーマットを使用できない場合、最適に適合される。

この関数は、サイズとピクセル フォーマットをカレント デバイスの要件に合わせて調整したサーフェスを作成する。このサーフェスは、テクスチャ管理のマークが付けられたシステム メモリである。詳細については、Direct3D 直接モードのドキュメントを参照すること。

作成されたサーフェスは、幅パラメータと高さパラメータにより指定されたサーフェスよりも大きかったり、小さかったりする。選択されたピクセル フォーマットが、渡されたフォーマットでない場合もある。しかし、実際の幅、高さ、ピクセル フォーマットに注意を払わなければならないのは、この関数により返されたサーフェスに直接アクセスする場合だけである。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以上が必要。Windows 95 用に再配布可能な形で使用可能。
  バージョン : DirectX 7.0 が必要。
  ヘッダー : d3dxcore.h で宣言。
  ライブラリ : d3dx.lib を使用。

参照

D3DXCreateTexture