본문 바로가기
  • fishing...
  • eating...

Direct3D3

ERROR] C2719 D3DXMATRIXA16 함수 매개 변수로 주었을 때의 에러 해결 방법 error C2719: '*': __declspec(align('16'))를 사용하는 형식 매개 변수는 정렬되지 않습니다. D3DXMATRIX를 상속받아 D3DXMATRIXA16를 만들었다고 한다. 하지만 D3DXMATRIXA16을 함수에 인자로 선언시 참조 연산자('&')를 안쓰면 에러가 발생한다.. D3DXMATRIX와 D3DXMATRIXA16의 차이점은 크게 명확하게 말하고 있는 곳을 찾아 보지는 못햇다. 하지만, 대부분의 책에서 두가지를 혼용 하고 있어, 그 차이를 코드에서 명확하게 규명하기는 힘들듯 하다. mmx, 소수점 연산이 빠르고 강해졌다고도 한다. 한가지 명확한건, D3DXMATRIXA16은 고사양 CPU 최적화 되어 있다고 한다. 요즘은 대부분이 586이상의 피씨를 사용하고 있기 때문이.. 2009. 12. 20.
Graphics] DirectX WM_SIZE 이벤트 처리 코딩을 하다가 WM_SIZE이벤트를 받아서 Resize를 하는 방법을 찾아 봤다. 막상 책에도 없는 내용이다 보니 어떻게 해야 할가 막막했지만.. 아래 처럼 하니 이상없이 동작하고 있다. WM_SIZE이벤트를 처리 했기 때문에 WM_SIZING즉 크기 변환 중에는 동작 하지 않는다. 이점은 참고하기 바란다. 물론, Debug 모드에서만 돌려봐서 Release를 했을경우 어떤 문제가 발생하는지는 확인해보지 않았다. 방법을 보면, 1. WM_SIZE 이벤드를 ::OnSize 메서드로 링크한다. setDisplayResize를 호출한다. 물론, 호출 하지 않고 그 부분을 붙여 넣기 해도 된다. void CMyView::OnSize(UINT nType, int cx, int cy) { CView::OnSize(.. 2009. 12. 12.
Direct X SDK Tutorial 01: Create Device & Vertex #include #define D3DFVF_CUSTOMVERTEX ( D3DFVF_XYZRHW | D3DFVF_DIFFUSE ) struct CUSTOMVERTEX { FLOAT x, y, z, rhw; DWORD color; }; LPDIRECT3D9 g_pD3D = NULL; LPDIRECT3DDEVICE9 g_pd3dDevice = NULL; LPDIRECT3DVERTEXBUFFER9 g_pVB = NULL; VOID Cleanup(); VOID Render(); HRESULT InitD3D( HWND hWnd ); HRESULT InitVB(); HRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ); INT WINA.. 2008. 4. 3.