DirectX Graphics 프로그래밍 가이드 Direct3D 의 기초지식 장치 장치의 생성 [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
C++ 애플리케이션으로 Direct3D 장치를 생성 하려면 , 「Direct3D 개체」로 설명하도록(듯이), 우선 Direct3D 개체를 생성 할 필요가 있다.
우선, Direct3D 장치의 생성에 사용하는 D3DPRESENT_PARAMETERS 구조체의 값을 초기화한다. 다음 코드는, VSYNC 에서만 백 버퍼가 프론트 버퍼에 플립 되는 윈도우 애플리케이션을 지정한다.
LPDIRECT3DDEVICE9 pDevice = NULL; D3DPRESENT_PARAMETERS d3dpp; ZeroMemory( &d3dpp, sizeof(d3dpp) ); d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_COPY;
다음에, Direct3D 장치를 생성 한다. 다음의 IDirect3D9::CreateDevice 호출은, 디폴트의 어댑터, 하드웨어 추상 계층 (HAL) 장치, 소프트웨어 정점 처리를 지정한다.
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3dDevice ) ) ) return E_FAIL;
장치의 생성·릴리즈·리셋을 위한 호출은, 포커스 윈도우의 윈도우 프로시저와 같은 thread에서만 실시하도록(듯이) 주의 해야 한다.
장치 생성 후는, 그 스테이트를 설정한다.