여러 모니터 시스템 작업(Direct3D 9)

전용 전체 화면 모드의 개념은 Direct3D 9에 유지되지만 IDirect3D9::CreateDevice 및 IDirect3DDevice9::Reset 메서드 호출에서 완전히 암시적으로 유지됩니다. 디바이스가 성공적으로 초기화되거나 전체 화면 작업에서 생성될 때마다 디바이스를 만든 Direct3D 개체는 해당 시스템의 모든 어댑터를 소유하는 것으로 표시됩니다. 이 상태를 배타적 모드라고 하며, 이 시점에서 Direct3D 개체는 배타적 모드를 소유합니다. 단독 모드는 다른 Direct3D9 개체에서 만든 디바이스가 전체 화면 작업을 가정하거나 비디오 메모리를 할당할 수 없음을 의미합니다. 또한 Direct3D9 개체가 배타적 모드를 가정하면 전체 화면으로 전환된 디바이스 이외의 모든 디바이스가 손실된 상태로 전환됩니다. 분실한 디바이스를 처리하는 방법에 대한 자세한 내용은 분실 디바이스(Direct3D 9)를 참조하세요.

전용 모드와 함께 Direct3D9 개체는 디바이스에서 사용할 포커스 창을 알려줍니다. 전용 모드는 해당 Direct3D9 개체가 소유한 마지막 전체 화면 디바이스가 창 모드로 다시 설정되거나 제거될 때 해제됩니다.

Direct3D9 개체가 배타적 모드를 소유하는 경우 디바이스를 두 범주로 나눌 수 있습니다. 디바이스의 첫 번째 범주는 이미 전체 화면인 디바이스를 만든 동일한 Direct3D9 개체에 의해 생성되고, 이미 전체 화면인 디바이스와 동일한 포커스 창을 가지며, 모든 전체 화면 디바이스와 다른 어댑터를 나타내는 디바이스입니다. 이 범주의 디바이스는 다시 설정하거나 만들 수 있는 기능에 대한 제한이 없으며 손실된 상태로 전환되지 않습니다. 이 범주의 디바이스는 전체 화면 모드로도 배치할 수 있습니다.

이 범주에 속하지 않는 디바이스는 다른 Direct3D9 개체 또는 다른 포커스 창을 사용하여 만들거나 이미 전체 화면이 있는 일부 어댑터에 대해 초기화할 수 없으며 배타적 모드가 손실될 때까지 손실된 상태로 유지될 수 없습니다.

실제적인 의미는 여러 모니터 애플리케이션이 여러 디바이스를 전체 화면 모드로 배치할 수 있지만 이러한 모든 디바이스가 서로 다른 어댑터용이고 동일한 Direct3D9 개체에 의해 만들어진 경우에만 모두 동일한 포커스 창을 공유한다는 것입니다.

동일한 IDirect3D9 개체 및 포커스 창을 사용하여 새 디바이스를 만들면 원래 디바이스의 표면이 손실됩니다. 애플리케이션에서 사용하려면 첫 번째 디바이스에서 IDirect3DDevice9::Reset 을 호출해야 합니다. 예를 들어 두 개의 디바이스를 만들려면 다음을 수행합니다.

  1. 디바이스 1 만들기
  2. 디바이스 2 만들기
  3. 디바이스 1 다시 설정

프로그래밍 팁