|
我想在程序中创建一个渐进网格MESH ,调用了 D3DXGeneratePMesh 这个函数,SDK中说,这个函数只可能有以下的返回值:
1.D3D_OK
2.D3DXERR_CANNOTATTRSORT
3.D3DERR_INVALIDCALL
4.E_OUTOFMEMORY
bool CreateGMesh(LPD3DXMESH lpMesh,,LPD3DXPMESH lpgMesh)
{
if ( D3D_OK!=D3DXGeneratePMesh(lpMesh,
(DWORD*)adjacency->GetBufferPointer(),
0, // default vertex attribute weights
0, // default vertex weights
1, // simplify as low as possible
D3DXMESHSIMP_FACE, // simplify by face count
&lpgMesh))
{
return false;
}
return true;
}
运行时,以上函数返回 false。OK,那么肯定是剩下的3个返回值中的一个??!!!!!
结果下面我分别这么写:
bool CreateGMesh(LPD3DXMESH lpMesh,,LPD3DXPMESH lpgMesh)
{
if ( D3DXERR_CANNOTATTRSORT==D3DXGeneratePMesh(lpMesh.......
{
return false;
}
return true;
}
bool CreateGMesh(LPD3DXMESH lpMesh,,LPD3DXPMESH lpgMesh)
{
if ( D3DERR_INVALIDCALL==D3DXGeneratePMesh(lpMesh.......
{
return false;
}
return true;
}
bool CreateGMesh(LPD3DXMESH lpMesh,,LPD3DXPMESH lpgMesh)
{
if ( E_OUTOFMEMORY==D3DXGeneratePMesh(lpMesh.......
{
return false;
}
return true;
}
结果,这3种写法,全部返回 true。。。。。。。。。
也就是说,这个 D3DXGeneratePMesh 函数的返回值,不是 D3D_OK,但,也不是剩下的3种。。。。
这不是忽悠人吗????
现在这个函数没有办法执行正确。。。。。。。
大家用过这个函数没有啊。。。。。。。 |
|