Share via


D3DXLoadMeshFromX

DirectX (.x) ファイルからメッシュをロードします。

HRESULT 
D3DXLoadMeshFromX(
  LPCTSTR pFilename,
  DWORD Options,
  LPDIRECT3DDEVICE9 pD3DDevice,
  LPD3DXBUFFER * ppAdjacency,
  LPD3DXBUFFER * ppMaterials,
  LPD3DXBUFFER * ppEffectInstances,
  DWORD * pNumMaterials,
  LPD3DXMESH * ppMesh
);

パラメータ

  • pFilename
    ファイル名を指定する文字列へのポインターです。コンパイラーの設定で Unicode が必要な場合、データ型 LPCTSTR は LPCWSTR に解決されます。それ以外の場合、文字列データ型は LPCSTR に解決されます。「解説」を参照してください。
  • Options
    D3DXMESH 列挙型からの 1 つ以上のフラグの組み合わせです。メッシュの作成オプションを指定します。
  • pD3DDevice
    IDirect3DDevice9 インターフェイス (メッシュに関連付けられたデバイス オブジェクト) へのポインターです。
  • ppAdjacency
    隣接性データが格納されたバッファーへのポインターです。隣接性データには、メッシュの各面に対する 3 つの隣接面を表す 3 つの DWORD の配列が含まれています。バッファーへのアクセスの詳細については、「ID3DXBuffer」を参照してください。
  • ppMaterials
    マテリアル データを含むバッファーへのポインターです。バッファーには、DirectX ファイルからの情報を格納する D3DXMATERIAL 構造体の配列が含まれています。バッファーへのアクセスの詳細については、「ID3DXBuffer」を参照してください。
  • ppEffectInstances
    エフェクト インスタンス (返されるメッシュ内の属性グループごとに 1 つ) の配列を含むバッファーへのポインターです。エフェクト インスタンスは、エフェクトを初期化するときに使用する、ステート情報の特定のインスタンスです。「D3DXEFFECTINSTANCE」を参照してください。バッファーへのアクセスの詳細については、「ID3DXBuffer」を参照してください。
  • pNumMaterials
    ppMaterials 配列に含まれる D3DXMATERIAL 構造体の数へのポインターです。このポインターはメソッドから制御が返ると渡されます。
  • ppMesh
    ロードされたメッシュを表す ID3DXMesh インターフェイスへのポインターのアドレスです。

戻り値

成功すると、D3D_OK を返します。失敗した場合は、次のいずれかの値を返します。D3DERR_INVALIDCALL、E_OUTOFMEMORY

解説 

コンパイラ設定により、関数のバージョンも決定されます。Unicode が定義されている場合、関数呼び出しは D3DXLoadMeshFromXW に解決されます。それ以外の場合は、ANSI 文字列が使用されるため、D3DXLoadMeshFromXA に解決されます。

ファイルに含まれるすべてのメッシュは、1 つの出力メッシュにまとめられます。ファイルにフレーム階層が含まれる場合、すべてのトランスフォームがメッシュに適用されます。

エフェクト インスタンス情報を含まないメッシュ ファイルの場合、デフォルトのエフェクト インスタンスは .x ファイルのマテリアル情報から生成されます。デフォルトのエフェクト インスタンスは、D3DMATERIAL9 構造体のメンバーに対応するデフォルト値を持ちます。

デフォルトのテクスチャー名も使用されますが、処理が異なります。名前は Texture0@Name です。"Name" というアノテーションの付いた "Texture0" という名前でエフェクト変数に対応します。これには、テクスチャーの文字列ファイル名が含まれます。

要件

ヘッダー: D3DX9Mesh.h 宣言

ライブラリ: D3dx9.lib 内容

関連項目

D3DXEFFECTDEFAULT, D3DXEFFECTINSTANCE