DirectX Graphics 프로그래밍 가이드 튜토리얼, 샘플, 툴, 힌트 프로그래밍의 힌트 멀티 모니터 시스템의 처리   [목차열람] [주소복사] [슬롯비우기]
멀티 모니터 시스템의 처리
 
Microsoft DirectX 9.0

멀티 모니터 시스템의 처리


배타적인 풀 스크린 모드의 개념은 Microsoft® DirectX® 9.0 에서도 보관 유지되고 있지만,IDirect3D9::CreateDeviceIDirect3DDevice9::Reset 메서드의 호출에서는 완전하게 비명시적으로 보관 유지된다. 풀 스크린 처리로 장치의 리셋 또는 생성이 정상적으로 행해지면 그 장치를 생성 한 Microsoft Direct3D® 개체가 시스템 위에의 모든 어댑터를 소유하고 있는 것으로서 마크 된다. 이 상태는 배타 모드로 불려 이 시점에서 Direct3D 개체는 배타 모드를 소유하고 있다. 배타 모드에서는, 다른 Direct3D9 개체에 의해 생성 된 장치가 풀 스크린 처리를 실시하거나 비디오 메모리를 할당할 수 없다. 또, Direct3D9 개체가 배타 모드이다고 보았을 때에는, 풀 스크린이 된 장치 이외의 장치는 모두 손실 상태가 된다. 손실한 장치를 처리하는 방법에 대해서는, 「장치의 손실」을 참조할것.

배타 모드에서는, 그 Direct3D9 개체에, 장치가 사용하는 포커스 윈도우가 통지된다. 그 Direct3D9 개체가 소유하는 마지막 풀 스크린 장치가 윈도우 모드에 리셋 될까 파괴되면 배타 모드는 릴리즈 된다.

Direct3D9 개체가 배타 모드를 소유 할 때 장치는 2 개의 카테고리로 분류된다. 최초의 카테고리의 장치는, 이미 풀 스크린인 장치를 생성 한 것과 같은 Direct3D9 개체에 의해 생성 되어 이미 풀 스크린인 장치와 같은 포커스 윈도우를 가져, 다른 풀 스크린 장치와는 다른 어댑터를 나타낸다. 이 카테고리의 장치는, 제한없이 Reset 또는 생성 할 수 있어 손실 상태가 될 것은 없다. 이 카테고리의 장치는, 풀 스크린 모드로 할 수도 있다.

이 카테고리에 들어가지 않는 장치 (다른 Direct3D9 개체에 의해 생성 되었는지, 다른 포커스 윈도우로 생성 되었는지, 이미 풀 스크린의 데이 바이스가 있는 어댑터에 생성 된 장치)는 리셋 하지 못하고, 배타 모드가 없어질 때까지 손실 상태대로 된다.

실제로는, 멀티 모니터 애플리케이션에서는 복수의 장치를 풀 스크린 모드로 할 수 있지만, 그것은, 이러한 장치가 모두 다른 어댑터의 장치이며, 같은 Direct3D9 개체에 의해 생성 되어 게다가 같은 포커스 윈도우를 공유하는 경우에 한정된다.

  같은 IDirect3D9 개체 및 포커스 윈도우를 사용하는 새로운 장치를 생성 하면, 원의 장치는 표면을 잃는다. 애플리케이션으로 최초의 장치를 사용하려면 , 그 장치에 대한 IDirect3DDevice9::Reset 를 호출할 필요가 있다. 예를 들어, 2 개의 장치를 생성 하려면 , 다음의 순서를 실행한다.

  1. 장치 1 을 생성 한다.
  2. 장치 2 를 생성 한다.
  3. 장치 1 을 리셋 한다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP