学了dx10才发 现,dx10比dx9的技术含量好像高一点点。用dx9你可以学到很深入的时候再学HLSL可是dx10在渲染三角形的时候就需要你来写.fx文件了。这 个时候就发现fx确实比较难写,写fx就像在txt里写代码一样。关键字不会变色,没有函数提示,结构体的成员不会自动弹出,更没有自动缩进。这样的话就 大大加大了代码出错的概率。
D3DX10CreateEffectFromFile p.clsInfo {margin-bottom:0px;margin-top:2px} span.clsWarning {display:none} span.clsPreliminary {color:#C1C0C0} span.clsLink{color:blue;cursor:pointer;}
HRESULT D3DX10CreateEffectFromFile( LPCTSTR pFileName, CONST D3D10_SHADER_MACRO *pDefines, ID3D10Include *pInclude, LPCSTR pProfile, UINT HLSLFlags, UINT FXFlags, ID3D10Device *pDevice, ID3D10EffectPool *pEffectPool, ID3DX10ThreadPump *pPump, ID3D10Effect **ppEffect, ID3D10Blob **ppErrors);
ID3D10Blob **ppErrors可以实现错误信息的表示。
ID3D10Blob* g_pBlob_Errors = NULL;
D3DX10CreateEffectFromFile(.., ..., ..., ...., &g_pBlob_Errors );
if(g_pBlob_Errors)
{
MessageBox( NULL, (LPCSTR)g_pBlob_Errors->GetBufferPointer(),"ERROR", MB_OK );
}
这样就可以知道fx的错误信息了