D3DXCreateTextureFromFileEx 関数
ファイルからテクスチャを作成します。 これは 、D3DXCreateTextureFromFile よりも高度な関数です。
構文
HRESULT D3DXCreateTextureFromFileEx(
_In_ LPDIRECT3DDEVICE9 pDevice,
_In_ LPCTSTR pSrcFile,
_In_ UINT Width,
_In_ UINT Height,
_In_ UINT MipLevels,
_In_ DWORD Usage,
_In_ D3DFORMAT Format,
_In_ D3DPOOL Pool,
_In_ DWORD Filter,
_In_ DWORD MipFilter,
_In_ D3DCOLOR ColorKey,
_Inout_ D3DXIMAGE_INFO *pSrcInfo,
_Out_ PALETTEENTRY *pPalette,
_Out_ LPDIRECT3DTEXTURE9 *ppTexture
);
パラメーター
-
pDevice [in]
-
テクスチャに関連付けるデバイスを表す IDirect3DDevice9 インターフェイスへのポインター。
-
pSrcFile [in]
-
種類: LPCTSTR
ファイル名を指定する文字列へのポインター。 コンパイラ設定で Unicode が必要な場合、データ型 LPCTSTR は LPCWSTR に解決されます。 それ以外の場合、文字列データ型は LPCSTR に解決されます。 「解説」を参照してください。
-
幅 [入力]
-
型: UINT
幅 (ピクセル単位)。 この値が 0 またはD3DX_DEFAULTの場合、ディメンションはファイルから取得され、2 の累乗に切り上げられます。 デバイスが 2 テクスチャの非累乗をサポートし、 D3DX_DEFAULT_NONPOW2 が指定されている場合、サイズは丸められません。
-
高さ [入力]
-
型: UINT
高さ (ピクセル単位)。 この値が 0 またはD3DX_DEFAULTの場合、ディメンションはファイルから取得され、2 の累乗に切り上げられます。 デバイスが 2 つのテクスチャの非累乗をサポートし、 D3DX_DEFAULT_NONPOW2 が分離されている場合、サイズは丸められません。
-
MipLevels [in]
-
型: UINT
要求された mip レベルの数。 この値が 0 またはD3DX_DEFAULTの場合は、完全なミップマップ チェーンが作成されます。 D3DX_FROM_FILE場合、サイズはファイル内のサイズとまったく同じになり、これがデバイスの機能に違反した場合、呼び出しは失敗します。
-
使用法 [入力]
-
型: DWORD
0、 D3DUSAGE_RENDERTARGET、または D3DUSAGE_DYNAMIC。 このフラグを D3DUSAGE_RENDERTARGET に設定すると、サーフェスがレンダー ターゲットとして使用されることを示します。 その後、SetRenderTarget メソッドの pNewRenderTarget パラメーターにリソースを渡すことができます。 D3DUSAGE_RENDERTARGETまたはD3DUSAGE_DYNAMICが指定されている場合は、Pool を D3DPOOL_DEFAULT に設定する必要があります。アプリケーションは、CheckDeviceFormat を呼び出して、デバイスがこの操作をサポートしていることをチェックする必要があります。 D3DUSAGE_DYNAMIC は、サーフェスを動的に処理する必要があることを示します。 「動的テクスチャの使用」を参照してください。
-
書式 [入力]
-
型: D3DFORMAT
テクスチャに対して要求されたピクセル形式を記述する D3DFORMAT 列挙型のメンバー。 返されるテクスチャの形式は、 Format で指定された形式とは異なる場合があります。 アプリケーションでは、返されるテクスチャの形式をチェックする必要があります。 D3DFMT_UNKNOWN場合、形式は ファイルから取得されます。 D3DFMT_FROM_FILE場合、ファイル内の形式とまったく同じ形式が使用され、これがデバイスの機能に違反した場合、呼び出しは失敗します。
-
プール [入力]
-
種類: D3DPOOL
テクスチャを配置するメモリ クラスを記述する D3DPOOL 列挙型のメンバー。
-
フィルター [入力]
-
型: DWORD
イメージのフィルター処理方法を制御する 1 つ以上の D3DX_FILTER 定数の組み合わせ。 このパラメーター にD3DX_DEFAULT を指定することは、D3DX_FILTER_TRIANGLE |D3DX_FILTER_DITHER。
-
MipFilter [in]
-
型: DWORD
イメージのフィルター処理方法を制御する 1 つ以上の D3DX_FILTER 定数の組み合わせ。 このパラメーターにD3DX_DEFAULTを指定することは、D3DX_FILTER_BOXを指定することと同じです。 さらに、ビット 27 から 31 を使用して、.dds テクスチャがメモリに読み込まれるときにスキップされる mip レベルの数 (ミップマップ チェーンの上部から) を指定します。これにより、最大 32 レベルまでスキップできます。
-
ColorKey [in]
-
種類: D3DCOLOR
透明な黒に置き換える D3DCOLOR 値、またはカラー キーを無効にする場合は 0。 これは、ソース イメージ形式とは無関係に、常に 32 ビットの ARGB 色です。 アルファは重要であり、通常、不透明な色キーの場合は FF に設定する必要があります。 したがって、不透明な黒の場合、値は0xFF000000と等しくなります。
-
pSrcInfo [in, out]
-
種類: D3DXIMAGE_INFO*
ソース イメージ ファイル内のデータの説明が入力される D3DXIMAGE_INFO 構造体へのポインター( NULL)。
-
pPalette [out]
-
種類: PALETTEENTRY*
塗りつぶす 256 色のパレット (NULL) を表す PALETTEENTRY 構造体へのポインター。
-
ppTexture [out]
-
種類: LPDIRECT3DTEXTURE9*
作成されたテクスチャ オブジェクトを表す IDirect3DTexture9 インターフェイスへのポインターのアドレス。
戻り値
型: HRESULT
関数が成功した場合、戻り値はD3D_OK。 関数が失敗した場合、戻り値は、D3DERR_INVALIDCALL、D3DERR_NOTAVAILABLE、D3DERR_OUTOFVIDEOMEMORY、D3DXERR_INVALIDDATA、E_OUTOFMEMORYのいずれかになります。
注釈
コンパイラ設定によって、関数のバージョンも決定されます。 Unicode が定義されている場合、関数呼び出しは D3DXCreateTextureFromFileExW に解決されます。 それ以外の場合、ANSI 文字列が使用されているため、関数呼び出しは D3DXCreateTextureFromFileExA に解決されます。
D3DXCheckTextureRequirements を使用して、デバイスが現在の状態を指定してテクスチャをサポートできるかどうかを判断します。
この関数は、.bmp、.dds、.dib、.hdr、.jpg、.pfm、.png、.ppm、および .tga のファイル形式をサポートします。 「D3DXIMAGE_FILEFORMAT」を参照してください。
Mipmapped テクスチャでは、読み込まれたテクスチャで各レベルが自動的に塗りつぶされます。 mipmapped テクスチャにイメージを読み込むと、一部のデバイスは 1x1 イメージに移動できず、この関数は失敗します。 このような場合は、イメージを手動で読み込む必要があります。
D3DXCreateTextureFromFileEx を使用する場合に最適なパフォーマンスを得るには、次のようにします。
- 読み込み時にイメージのスケーリングとフォーマット変換を行うと、時間がかかる場合があります。 画像は、使用される形式と解像度で保存します。 ターゲット ハードウェアに 2 次元の累乗が必要な場合は、2 次元の累乗を使用してイメージを作成して格納します。
- 読み込み時に mipmap イメージを作成する場合は、 D3DX_FILTER_BOXを使用してフィルター処理します。 ボックス フィルターは、D3DX_FILTER_TRIANGLEなどの他のフィルターの種類よりもはるかに高速です。
- DDS ファイルの使用を検討してください。 DDS ファイルは Direct3D 9 テクスチャ形式を表すために使用できるため、D3DX では非常に簡単に読み取ることができます。 また、ミップマップを格納できるため、mipmap 生成アルゴリズムを使用して画像を作成できます。
.dds ファイルの読み込み中に mipmap レベルをスキップする場合は、D3DX_SKIP_DDS_MIP_LEVELS マクロを使用して MipFilter 値を生成します。 このマクロは、スキップするレベルの数とフィルターの種類を受け取り、フィルター値を返します。この値は MipFilter パラメーターに渡されます。
要件
要件 | 値 |
---|---|
ヘッダー |
|
ライブラリ |
|
こちらもご覧ください