|
|
D3DXLoadSkinMeshFromXof?????
HRESULT LoadMesh(D3DXMESHCONTAINER_EX **ppMesh,
IDirect3DDevice9 *pDevice,
IDirectXFileData *pDataObj,
char *TexturePath,
DWORD NewFVF,
DWORD LoadFlags)
{
ID3DXMesh *pLoadMesh = NULL;
ID3DXSkinInfo *pSkin = NULL;
HRESULT hr;
// Error checking
if(!ppMesh || !pDevice || !pDataObj || !TexturePath)
return E_FAIL;
// Use system memory if converting FVF
DWORD TempLoadFlags = LoadFlags;
if(NewFVF)
TempLoadFlags = D3DXMESH_SYSTEMMEM;
// Load the mesh using the D3DX skinned mesh interface
ID3DXBuffer *MaterialBuffer = NULL, *AdjacencyBuffer = NULL;
DWORD NumMaterials;
if(FAILED(hr=D3DXLoadSkinMeshFromXof(pDataObj, TempLoadFlags, //????位置
pDevice, &AdjacencyBuffer,
&MaterialBuffer, NULL,
&NumMaterials, &pSkin,
&pLoadMesh)))
return hr;
Direct3D.cpp
e:\BookCode\Common\Direct3D.cpp(314) : error C2664: 'D3DXLoadSkinMeshFromXof' : ?o法??? 1 ? 'IDirectXFileData *' ??Q成 'LPD3DXFILEDATA'
指向的型?e?]有相?; ??Q必?有 reinterpret_cast、C-Style ??Q或函式?邮睫D?Q
可是我改成以下的程式?,?绦?r?s?掉了,???一下我???如何改?
if(FAILED(hr=D3DXLoadSkinMeshFromXof(reinterpret_cast<LPD3DXFILEDATA>(pDataObj), TempLoadFlags,
pDevice, &AdjacencyBuffer,
&MaterialBuffer, NULL,
&NumMaterials, &pSkin,
&pLoadMesh)))
?原本的程式?是??quot;Advanced Animation with DirectX"的Chapter5
我用??靖降?irectX版本Compile??绦卸?]???,但是我改用DirectX April 2006就??幸陨系???.
PS:我是用VC++.Net 2003 Compile的.
PS:附上Source Code Chap05.zip |
|