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

DX 삼각형 그리기

by 회색뿔 2009. 1. 17.



정점 버퍼의 생성
HRESULT  IDirect3DDevice8::CreateVertexBuffer(

UINT Length,
DWORD Usage,
DWORD FVF,
D3DPOOL Pool,
IDirect3DVertexBuffer8** ppVertexBuffer

);

 Length  생성할 정점 버퍼의 바이트 단위 크기
 Usage  정점 버퍼의 종류 혹은 처리 방식( SW,HW)지정
 HW가 더 빠르다.
 FVF  정점 정보 구조체에 따라 선언덴 FVF 플래그 값
 Pool  정점 버퍼가 저장될 메모리의 위치()와 관리 방식 지정
 ppVertexBuffer  반환될 정점 버퍼의 인터페이스


메모리 포인터 얻기 

HRESULT  IDirect3DVertexBuffer8::Lock
(

UINT OffsetToLock,
UINT SizeToLock.,
BYTE** ppbData,
DWORD Flags

);


 OffsetToLock   Lock을 할 버퍼의 시작점, SizeToLock와 함께 양쪽 모두 0이면 버퍼 전체
 SizeToLock  Lock을 할 버퍼의 크기, OffsetToLock과 함께 양쪽 모두 0이면 버퍼 전체
 ppbData   읽고 쓸 수 있게 된 메모리 영역의 포인터
 Flags  Lock을 수행할때 함께 사용하는 플래그



BeginScene()

1. SetSetreamSource() 출력할 정점 버퍼를 디바이스에 결합한다.
2. SetVertexShader() 정점포멧을 디바이스에 지정한다.
3. DrawPrimitive() 정점 버퍼의 폴리곤을 그린다.

EndScene()

DrawPrimitive()의 동작을 지정하는 상수

 D3DPT_POINTLIST
 D3DPT_LINELIST
 D3DPT_LINESTRIP
 D3DPT_TRIANGLEUST
 D3DPT_TRIANGLELIST
 D3DPT_TRIANGLESTRIP
 D3DPT_TRIANGLEFAN






'MISCELLANEOUSNESS' 카테고리의 다른 글

바탕화면 이쁜것들..ㅎㅎ;;  (2) 2009.01.26
Consolas font for visual studio 2005 or 2008  (0) 2009.01.16
Ruby와 RDT 설정  (0) 2009.01.14