DirectX Graphics 프로그래밍 가이드 Direct3D 의 기초지식 장치 장치의 생성   [목차열람] [주소복사] [슬롯비우기]
장치의 생성
 
Microsoft DirectX 9.0

장치의 생성


  지정의 Microsoft® Direct3D® 개체에 의해 생성 된 렌더링 장치는, 모두 같은 물리 리소스를 공유한다. 단일의 Direct3D 개체로부터 복수의 렌더링 장치를 생성 하는 것은 가능하지만, 이것들은 모두 같은 하드웨어를 공유하기 위해(때문에), 퍼포먼스가 크게 저하한다.

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에서만 실시하도록(듯이) 주의 해야 한다.

장치 생성 후는, 그 스테이트를 설정한다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP