Share via


Uso di più sistemi di monitoraggio (Direct3D 9)

Il concetto di modalità a schermo intero esclusivo viene mantenuto in Direct3D 9, ma viene mantenuto interamente implicito nelle chiamate al metodo IDirect3D9::CreateDevice e IDirect3DDevice9::Reset. Ogni volta che un dispositivo viene reimpostato o creato correttamente nell'operazione a schermo intero, l'oggetto Direct3D creato dal dispositivo viene contrassegnato come proprietario di tutti gli adattatori nel sistema. Questo stato è noto come modalità esclusiva e a questo punto l'oggetto Direct3D possiede la modalità esclusiva. La modalità esclusiva significa che i dispositivi creati da qualsiasi altro oggetto Direct3D9 non possono assumere operazioni a schermo intero né allocare memoria video. Inoltre, quando un oggetto Direct3D9 presuppone la modalità esclusiva, tutti i dispositivi diversi dal dispositivo che è andato a schermo intero vengono inseriti nello stato perso. Per informazioni su come gestire i dispositivi persi, vedere Dispositivi persi (Direct3D 9).

Insieme alla modalità esclusiva, l'oggetto Direct3D9 viene informato della finestra dello stato attivo da usare dal dispositivo. La modalità esclusiva viene rilasciata quando l'ultimo dispositivo a schermo intero di proprietà dell'oggetto Direct3D9 viene reimpostato in modalità finestra o eliminato.

I dispositivi possono essere suddivisi in due categorie quando un oggetto Direct3D9 possiede la modalità esclusiva. La prima categoria di dispositivi sono quelle create dallo stesso oggetto Direct3D9 che ha creato il dispositivo già a schermo intero, avere la stessa finestra dello stato attivo del dispositivo già a schermo intero e rappresentare una scheda diversa da qualsiasi dispositivo a schermo intero. I dispositivi in questa categoria non hanno restrizioni relative alla possibilità di essere reimpostate o create e non vengono inseriti nello stato perso. I dispositivi in questa categoria possono anche essere inseriti in modalità schermo intero.

I dispositivi non in questa categoria, che sarebbero quelli creati da un oggetto Direct3D9 diverso o con una finestra di messa a fuoco diversa o per una scheda con un dispositivo già schermo intero non può essere reimpostato e rimanere nello stato perso fino a quando non si perde la modalità esclusiva.

L'implicazione pratica è che un'applicazione di monitoraggio multipla può posizionare diversi dispositivi in modalità schermo intero, ma solo se tutti questi dispositivi sono per schede diverse, sono stati creati dallo stesso oggetto Direct3D9 e tutti condividono la stessa finestra dello stato attivo.

Quando si crea un nuovo dispositivo usando lo stesso oggetto IDirect3D9 e la finestra dello stato attivo, il dispositivo originale perderà le sue superfici. È necessario chiamare IDirect3DDevice9::Reset nel primo dispositivo per consentire all'applicazione di usarla. Ad esempio, per creare due dispositivi, eseguire le operazioni seguenti:

  1. Creare il dispositivo 1
  2. Creare il dispositivo 2
  3. Reimpostare il dispositivo 1

Suggerimenti per la programmazione