Study/Graphics
Directx9 셰이더 프로그래밍 예제 수정방법.
붕대마음
2009. 7. 13. 11:30
반응형
세가지 오류가 발생한다.
1. error C2061: 구문 오류 : 식별자 'LPDIRECTXFILEDATA'
d3dfile.h 폴더에 #include <dxfile.h>를 추가한다.
2. error C2664: 'D3DXLoadMeshFromXof' :
매개 변수 1을(를) 'LPDIRECTXFILEDATA'에서 'LPD3DXFILEDATA'(으)로 변환할 수 없습니다.
d3dfile.cpp 파일에서 아래 부분을 고쳐준다.
if( FAILED( hr = D3DXLoadMeshFromXof( (LPD3DXFILEDATA)pFileData, D3DXMESH_SYSTEMMEM, pd3dDevice,
&pAdjacencyBuffer, &pMtrlBuffer, NULL,
&m_dwNumMaterials, &m_pSysMemMesh ) ) )
3. error C2039: 'Pass' : 'ID3DXEffect'의 멤버가 아닙니다.
이 부분은 버전이 바뀌면서 m_pEffect->Pass(UINT Pass) 함수가 두개로 분리되었다.
BeginPass 와 EndPass가 그것이다.
m_pEffect->BeginPass( pass)
...
. 랜더링
...
m_pEffect->EndPass()
와 같이 해주면 된다.
tip.
예제중 제대로 돌아가는데 텍스쳐 부분에서 제대로 출력안되는 예제가 있다.
예제에서 CommitChange를 추가해 주면 된다.