다음을 통해 공유


디바이스 만들기(Direct3D 9)

Direct3D 디바이스를 만들려면 먼저 Direct3D 개체를 만듭니다( Direct3DCreate9 참조). Direct3D 개체에서 만든 모든 렌더링 디바이스는 동일한 물리적 리소스를 공유합니다. 단일 Direct3D 개체에서 여러 렌더링 디바이스를 만드는 경우 동일한 하드웨어를 공유하므로 성능 저하가 발생합니다.

먼저 Direct3D 디바이스를 만드는 데 사용되는 D3DPRESENT_PARAMETERS 구조체에 대한 값을 초기화합니다. 다음 코드 예제에서는 세로 동기화 작업 중에만 백 버퍼가 프런트 버퍼에 복사되는 창이 있는 애플리케이션을 지정합니다.

LPDIRECT3DDEVICE9 d3dDevice = 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;

디바이스를 만들거나 해제하거나 다시 설정하는 호출은 포커스 창의 창 프로시저와 동일한 스레드에서만 발생합니다.

디바이스를 만든 후 상태를 설정합니다.

Direct3D 디바이스