Platform SDK: DirectX

D3DXCreateTextureFromFile

D3DXCreateTextureFromFile 関数は、スタンドアロン ファイルまたはリソースからテクスチャ オブジェクトを作成する。

HRESULT D3DXCreateTextureFromFile(
  LPDIRECT3DDEVICE7 pd3dDevice,
  LPDWORD pFlags,
  LPDWORD pWidth,
  LPDWORD pHeight,
  D3DX_SURFACEFORMAT* pPixelFormat,
  LPDIRECTDRAWPALETTE pDDPal,
  LPDIRECTDRAWSURFACE7* ppDDSurf,
  LPDWORD pNumMipMaps,
  LPSTR pSrcName,
  D3DX_FILTERTYPE filterType
);

パラメータ

pd3dDevice
テクスチャに関連付けられた Direct3D デバイスの IDirect3DDevice7 インターフェイス。
pFlags
DWORD 値へのポインタ。ミップマップを生成しない場合、このパラメータにより D3DX_TEXTURE_NOMIPMAP フラグを指定する。この値に、NULL を指定することも可能である。ミップマップ生成がサポートされていない場合は、D3DX_TEXTURE_NOMIPMAP フラグが返される。
pWidth
幅を示す DWORD 値へのポインタ (ピクセル単位)。0 または D3DX_DEFAULT を指定した場合、幅はファイルから取得される。このパラメータは、補正された幅を返す。
pHeight
高さを示す DWORD 値へのポインタ (ピクセル単位)。0 または D3DX_DEFAULT を指定した場合、高さはファイルから取得される。このパラメータは、補正された高さを返す。
pPixelFormat
D3DX_SURFACEFORMAT 列挙型のメンバへのポインタ。このパラメータでは、D3DX_DEFAULT は有効でない。このパラメータの入力値は、適切なテクスチャ フォーマットである。戻り値は、ハードウェアでサポートされている最も近いテクスチャ フォーマットである。D3DX_SF_UNKNOWN を指定すると、ビットマップに最も近いピクセル フォーマットが選択される。
pDDPal
パレット化サーフェスに設定されている (存在する場合) DirectDraw パレットの IDirectDrawPalette インターフェイスへのポインタ。これは、非パレット化サーフェスの場合、設定されていても無視される。
ppDDSurf
指定内容やカレント ハードウェアに一致し、作成されたテクスチャの DirectDrawSurface オブジェクトへのポインタのアドレス。
pNumMipMaps
DWORD 値へのポインタ。生成されたミップマップの数。
pSrcName
ファイル名文字列へのポインタ。BMP、DIB、DDS のファイル タイプがサポートされている。詳細については、「注意」を参照すること。
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

注意

実行可能ファイルのリソース部分でサポートされているのは、BMP ファイルと DIB ファイルだけである。

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

pSrcName パラメータに数値 ID を指定した場合、D3DXLoadTextureFromFile 関数に実行可能ファイルのリソースからビットマップ イメージをロードするように指示される。それ以外の場合、pSrcName はファイル名であると見なされる。ただし、D3DXCreateTextureFromFile 関数では文字列ポインタがファイル名として扱われるので、文字列のリソース名は使用できない。

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

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

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

動作環境

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

参照

D3DXLoadTextureFromFile