Microsoft® DirectX® .x ファイルからメッシュをロードする。
構文
HRESULT D3DXLoadMeshFromX( LPCTSTR pFilename, DWORD Options, LPDIRECT3DDEVICE9 pDevice, LPD3DXBUFFER* ppAdjacency, LPD3DXBUFFER* ppMaterials, LPD3DXBUFFER* ppEffectInstances, DWORD* pNumMaterials, LPD3DXMESH* ppMesh );
パラメータ
pFilename [in] ファイル名を指定する文字列へのポインタ。コンパイラの設定で Unicode が必要な場合、データ型 LPCTSTR は LPCWSTR に解決される。それ以外の場合、文字列データ型は LPCSTR に解決される。「注意」を参照すること。Options [in] D3DXMESH 列挙型からの 1 つまたは複数のフラグの組み合わせ。メッシュの作成オプションを指定する。pDevice [in] IDirect3DDevice9 インターフェイスへのポインタ。メッシュに関連付けられているデバイス オブジェクトを表す。 ppAdjacency [out] 隣接性データを含むバッファへのポインタ。1 面あたりの 3 つの DWORD の配列へのポインタ。メッシュに含まれる各面の 3 つの隣接面を指定する。バッファへのアクセスの詳細については、「ID3DXBuffer」を参照すること。ppMaterials [out] マテリアル データを含むバッファへのポインタ。バッファには、DirectX ファイルからの情報を含む D3DXMATERIAL 構造体の配列が格納される。バッファへのアクセスの詳細については、「ID3DXBuffer」を参照すること。ppEffectInstances [out] 返されるメッシュ内の属性グループごとに 1 つの、エフェクト インスタンスの配列を含むバッファへのポインタ。エフェクト インスタンスは、エフェクトの初期化に使用する状態情報の特定のインスタンスである。「D3DXEFFECTINSTANCE」を参照すること。バッファへのアクセスの詳細については、「ID3DXBuffer」を参照すること。pNumMaterials [out] メソッドが戻ったときの ppMaterials 配列内の D3DXMATERIAL 構造体の数へのポインタ。 ppMesh [out] ロードされたメッシュを表す ID3DXMesh インターフェイスへのポインタのアドレス。
戻り値
成功した場合は、D3D_OK を返す。失敗した場合は、次のいずれかの値を返す。D3DERR_INVALIDCALLメソッドの呼び出しが無効である。たとえば、メソッドのパラメータに無効な値が設定されている場合などである。E_OUTOFMEMORYMicrosoft Direct3D® が呼び出しを完了するための十分なメモリを割り当てることができなかった。
成功した場合は、D3D_OK を返す。
失敗した場合は、次のいずれかの値を返す。
注意
コンパイラ設定は、関数のバージョンも決定する。Unicode が定義された場合、関数呼び出しは D3DXLoadMeshFromXW に解決される。それ以外の場合は、ANSI 文字列が使われるため、関数呼び出しは D3DXLoadMeshFromXA に解決される。ファイル内のすべてのメッシュが 1 つの出力メッシュにまとめられる。ファイルにフレーム階層が格納されている場合、すべてのトランスフォームがメッシュに適用される。エフェクト インスタンス情報を含まないメッシュ ファイルの場合、.x ファイルのマテリアル情報からデフォルトのエフェクト インスタンスが生成される。デフォルトのエフェクト インスタンスには、D3DMATERIAL9 構造体のメンバに対応するデフォルト値が含まれる。 デフォルトのテクスチャ名も設定されるが、異なる方法で処理される。名前は Texture0@Name となり、"Name" というコメント付きの "Texture0" という名前でエフェクト変数に対応する。これには、テクスチャの文字列ファイル名が含まれる。
コンパイラ設定は、関数のバージョンも決定する。Unicode が定義された場合、関数呼び出しは D3DXLoadMeshFromXW に解決される。それ以外の場合は、ANSI 文字列が使われるため、関数呼び出しは D3DXLoadMeshFromXA に解決される。
ファイル内のすべてのメッシュが 1 つの出力メッシュにまとめられる。ファイルにフレーム階層が格納されている場合、すべてのトランスフォームがメッシュに適用される。
デフォルトのテクスチャ名も設定されるが、異なる方法で処理される。名前は Texture0@Name となり、"Name" というコメント付きの "Texture0" という名前でエフェクト変数に対応する。これには、テクスチャの文字列ファイル名が含まれる。
関数の情報
ヘッダーd3dx9mesh.hインポート ライブラリd3dx9.lib最低限のオペレーティング システム Windows 98
参照
D3DXEFFECTDEFAULT、D3DXEFFECTINSTANCE