IDirect3DDevice9Ex::ResetEx 메서드(d3d9.h)

다른 모든 표면을 영구적으로 사용하여 스왑 체인의 형식, 크기 및 형식을 다시 설정합니다.

구문

HRESULT ResetEx(
  [in, out] D3DPRESENT_PARAMETERS *pPresentationParameters,
  [in, out] D3DDISPLAYMODEEX      *pFullscreenDisplayMode
);

매개 변수

[in, out] pPresentationParameters

형식: D3DPRESENT_PARAMETERS*

새 프레젠테이션 매개 변수를 설명하는 D3DPRESENT_PARAMETERS 구조체에 대한 포인터입니다. 이 값은 NULL일 수 없습니다.

전체 화면 모드로 전환할 때 Direct3D는 백 버퍼 형식과 일치하는 데스크톱 형식을 찾으려고 시도하므로 백 버퍼와 전면 버퍼 형식이 동일합니다(색 변환 필요 없음).

이 메서드가 반환되는 경우:

  • BackBufferCount, BackBufferWidth 및 BackBufferHeight는 0으로 설정됩니다.
  • BackBufferFormat은 창 모드에 대해서만 D3DFORMAT 설정됩니다. 전체 화면 모드는 형식을 지정해야 합니다.

[in, out] pFullscreenDisplayMode

형식: D3DDISPLAYMODEEX*

원하는 표시 모드의 속성을 설명하는 D3DDISPLAYMODEEX 구조체에 대한 포인터입니다. 이 값은 전체 화면 애플리케이션에 대해 제공해야 하지만 창이 있는 애플리케이션의 경우 NULL 일 수 있습니다.

반환 값

형식: HRESULT

메서드는 D3D_OK, D3DERR_DEVICELOST 또는 D3DERR_DEVICEHUNG 반환할 수 있습니다( D3DERR 참조).

이 메서드가 D3DERR_DEVICELOST 또는 D3DERR_DEVICEHUNG 반환하는 경우 애플리케이션 은 IDirect3DDevice9Ex::ResetEx, IDirect3DDevice9Ex::CheckDeviceState 만 호출하거나 인터페이스 포인터를 해제할 수 있습니다. 다른 API 호출로 인해 예외가 발생합니다.

설명

IDirect3DDevice9Ex::ResetEx에 대한 호출이 실패하면 디바이스가 손실된 상태가 됩니다(IDirect3DDevice9Ex::CheckDeviceState 호출에서 D3DERR_DEVICELOST 반환 값으로 표시됨). 분실한 디바이스의 컨텍스트에서 IDirect3DDevice9Ex::ResetEx 사용에 대한 자세한 내용은 IDirect3DDevice9Ex::CheckDeviceState분실 디바이스 동작 변경 내용을 참조하세요.

이전 버전의 DirectX와 달리 IDirect3DDevice9Ex::ResetEx 를 호출해도 표면, 텍스처 또는 상태 정보가 손실되지 않습니다.

픽셀 셰이더 및 꼭짓점 셰이더는 Direct3D 9에 대한 IDirect3DDevice9Ex::ResetEx 호출에서 유지됩니다. 애플리케이션에서 명시적으로 다시 만들 필요가 없습니다.

스왑 체인에는 전체 화면 또는 창의 두 가지 유형이 있습니다. 새 스왑 체인이 전체 화면인 경우 어댑터는 새 크기와 일치하는 디스플레이 모드에 배치됩니다.

애플리케이션은 이 호출 중에 메시지가 전송될 것으로 예상할 수 있습니다(예: 이 호출이 반환되기 전에). 애플리케이션은 현재 Direct3D를 호출하지 않도록 주의해야 합니다.

초기화 중인 디바이스를 만드는 데 사용한 것과 다른 스레드에서 호출되면 IDirect3DDevice9Ex::ResetEx 호출이 실패합니다.

IDirect3D9Ex::CreateDeviceEx, IDirect3DDevice9Ex::ResetEx 및 IDirect3DDevice9::CreateAdditionalSwapChain을 호출할 때 창 모드 백 버퍼 형식에 대해 D3DFMT_UNKNOWN 지정할 수 있습니다. 즉, 창 모드에 대해 IDirect3D9Ex::CreateDeviceEx 를 호출하기 전에 애플리케이션이 현재 데스크톱 형식을 쿼리할 필요가 없습니다. 전체 화면 모드의 경우 백 버퍼 형식을 지정해야 합니다. BackBufferCount를 0(BackBufferCount = 0)과 같게 설정하면 하나의 백 버퍼가 생성됩니다.

그룹에서 둘 이상의 디스플레이 어댑터를 다시 설정하려고 할 때 pPresentationParameters를 설정하여 어댑터 그룹의 각 디스플레이에 대해 하나씩 D3DPRESENT_PARAMETERS 구조의 배열을 가리킵니다.

D3DCREATE_ADAPTERGROUP_DEVICE 사용하여 멀티헤드 디바이스를 만든 경우 IDirect3DDevice9Ex::ResetEx에는 각 구조체가 전체 화면 디스플레이를 지정해야 하는 D3DPRESENT_PARAMETERS 구조체 배열이 필요합니다. 창 모드로 다시 전환하려면 애플리케이션이 디바이스를 삭제하고 창 모드에서 다중 헤드가 아닌 디바이스를 다시 만들어야 합니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 d3d9.h
라이브러리 D3D9.lib

추가 정보

IDirect3DDevice9Ex