Platform SDK: DirectX

D3DXLoadTextureFromFile

D3DXLoadTextureFromFile 関数は、テクスチャをファイルからミップマップ レベルにロードし、必要なカラー変換や再スケーリングを実行する。

HRESULT D3DXLoadTextureFromFile(
  LPDIRECT3DDEVICE7 pd3dDevice,
  LPDIRECTDRAWSURFACE7 pTexture,
  DWORD mipMapLevel,
  LPSTR pSrcName,
  RECT* pSrcRect,
  RECT* pDestRect,
  D3DX_FILTERTYPE filterType
);

パラメータ

pd3dDevice
テクスチャに関連付けられている Direct3D デバイスの IDirect3DDevice7 インターフェイスへのポインタ。
pTexture
D3DXCreateTextureFromFile 関数または D3DXCreateTexture 関数のいずれかにより作成された DirectDrawSurface へのポインタ。このパラメータは、テクスチャ サーフェス オブジェクトをポイントする。
mipMapLevel
ミップマップ レベルを示す。「注意」を参照すること。
pSrcName
ファイル名文字列へのポインタ。BMP、DIB、DDS のファイル タイプがサポートされている。詳細については、「注意」を参照すること。
pSrcRect
ロード元の矩形を識別する RECT 構造体へのポインタ。このパラメータに NULL を指定した場合は、サーフェス全体が使用される。
pDestRect
ロード先の矩形を識別する RECT 構造体へのポインタ。このパラメータに NULL を指定した場合は、サーフェス全体が使用される。
filterType
ミップマップ生成時に使用されるフィルタを示す D3DX_FILTERTYPE 列挙型のメンバ。

戻り値

成功すれば、S_OK を返す。

失敗すれば、NULL または次のいずれかの値を返す。

D3DERR_TEXTURE_NO_SUPPORT
D3DXERR_D3DXNOTSTARTEDYET
D3DXERR_INVALIDFILEFORMAT
D3DXERR_INVALIDPARAMETER
D3DXERR_NOMATCHFOUND
D3DXERR_NOMEMORY
D3DXERR_NULLPOINTER
D3DXERR_UNSUPPORTEDFILEFORMAT
DDERR_DCALREADYCREATED
DDERR_GENERIC
DDERR_INCOMPATIBLEPRIMARY
DDERR_INVALIDCAPS
DDERR_INVALIDOBJECT
DDERR_INVALIDPARAMS
DDERR_INVALIDPIXELFORMAT
DDERR_INVALIDRECT
DDERR_INVALIDSURFACETYPE
DDERR_NOALPHAHW
DDERR_NOCOOPERATIVELEVELSET
DDERR_NODIRECTDRAWHW
DDERR_NOEMULATION
DDERR_NOEXCLUSIVEMODE
DDERR_NOFLIPHW
DDERR_NOMIPMAPHW
DDERR_NOOVERLAYHW
DDERR_NOTFOUND
DDERR_NOTLOCKED
DDERR_NOZBUFFERHW
DDERR_OUTOFMEMORY
DDERR_OUTOFVIDEOMEMORY
DDERR_PRIMARYSURFACEALREADYEXISTS
DDERR_SURFACEBUSY
DDERR_SURFACELOST
DDERR_UNSUPPORTED
DDERR_UNSUPPORTEDMODE
DDERR_WASSTILLDRAWING

注意

この関数は、ファイルからサーフェスへピクセルをコピーするためのメカニズムを提供する。

次に、mipMapLevel パラメータで考慮すべき事柄を示す。

pSrcName パラメータで、16bpp、24bpp、32bpp の正のカラーと 8bpp のパレット化の場合は TGA がサポートされている。また、8bpp と 16bpp のグレー スケールもサポートされている。前の TGA フォーマットである RLE バージョンもサポートされている。ただし TGA ファイルでは、カラー キー化したアルファや左方乗法されたアルファは現在サポートされていない。

ロード先サーフェスが Direct3DX により作成された場合、RECT 構造体はそのサーフェスのオリジナル座標で指定される。

この関数は、D3DX_SURFACEFORMAT 構造体により記述可能なすべてのサーフェス フォーマットについて、カラー変換の全範囲をサポートしている。また、フィルタリングした再スケーリングを実装したり、ミップマップを自動更新する。

pDestRect をオリジナル イメージの空間に設定すれば、アプリケーションは D3DXCreateTexture 関数の中でサーフェスがどのようにサイズ変更されても心配しなくてもよい。たとえば、イメージが 100 x 150 ピクセルの場合、構成が異なれば 128 x 256 になったり 256 x 256 になる。どちらの場合も、第 2 象限を更新するときに使用する RECT 構造体はサイズ変更が行われていないときのように (0, 0, 50, 75) となる。

動作環境

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

参照

D3DXCreateTextureFromFileD3DXLoadTextureFromMemoryD3DXLoadTextureFromSurface