Share via


Metodo IDXGISwapChain1::P resent1 (dxgi1_2.h)

Presenta un frame nella schermata di visualizzazione.

Sintassi

HRESULT Present1(
       UINT                          SyncInterval,
       UINT                          PresentFlags,
  [in] const DXGI_PRESENT_PARAMETERS *pPresentParameters
);

Parametri

SyncInterval

Intero che specifica come sincronizzare la presentazione di una cornice con lo spazio vuoto verticale.

Per il modello bit-block transfer (bitblt) (DXGI_SWAP_EFFECT_DISCARD o DXGI_SWAP_EFFECT_SEQUENTIAL), i valori sono:

  • 0 - La presentazione viene eseguita immediatamente, non esiste alcuna sincronizzazione.
  • Da 1 a 4 : sincronizzare la presentazione dopo l'n° verticale vuoto.
Per il modello flip (DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL), i valori sono:
  • 0 - Annullare il tempo rimanente nel frame presentato in precedenza e ignorare questo frame se viene accodato un frame più recente.
  • Da 1 a 4: sincronizzare la presentazione per almeno n spazi vuoti verticali.
Per un esempio che mostra come i valori dell'intervallo di sincronizzazione influiscono su una coda di presentazione capovolta, vedere Osservazioni.

Se l'area di aggiornamento supera più di un output (ognuno rappresentato da IDXGIOutput1), Present1 esegue la sincronizzazione con l'output contenente il sotto rettangolo secondario più grande dell'area client della finestra di destinazione.

PresentFlags

Valore intero contenente le opzioni di presentazione della catena di scambio. Queste opzioni sono definite dalle costanti DXGI_PRESENT .

[in] pPresentParameters

Puntatore a una struttura DXGI_PRESENT_PARAMETERS che descrive i rettangoli aggiornati e le informazioni sullo scorrimento del frame da presentare.

Valore restituito

I valori restituiti possibili includono: S_OK, DXGI_ERROR_DEVICE_REMOVED , DXGI_STATUS_OCCLUDED, DXGI_ERROR_INVALID_CALL o E_OUTOFMEMORY.

Commenti

Un'app può usare Present1 per ottimizzare la presentazione specificando rettangoli di scorrimento e dirty. Quando il runtime contiene informazioni su questi rettangoli, il runtime può quindi eseguire bitblts necessari durante la presentazione in modo più efficiente e passare questi metadati a Desktop Window Manager (DWM). DWM può quindi usare i metadati per ottimizzare la presentazione e passare i metadati alle visualizzazioni indirette e ai server terminal per ottimizzare il traffico in transito. Un'app deve limitare le modifiche solo alle aree dirty passate a Present1, nonché modificare l'intera area dirty per evitare che il contenuto delle risorse non definito venga esposto.

Per le catene di scambio dei modelli di presentazione capovolte create con il valore DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL impostato, una presentazione con esito positivo restituisce un binding del buffer nascosto 0 dalla pipeline grafica, tranne quando si passa il flag DXGI_PRESENT_DO_NOT_SEQUENCE nel parametro Flags .

Per informazioni sul modo in cui i valori dei dati cambiano quando si presenta il contenuto nella schermata, vedere Conversione dei dati per lo spazio dei colori.

Per informazioni sulla chiamata a Present1 quando l'app usa più thread, vedi Considerazioni su multithreadinge multithreading e DXGI.

Capovolgere la coda del modello di presentazione

Si supponga che i fotogrammi seguenti con valori di intervallo di sincronizzazione vengano accodati dal meno recente (A) al più recente (E) prima di chiamare Present1.

R: 3, B: 0, C: 0, D: 1, E: 0

Quando si chiama Present1, il runtime mostra il frame A solo per un intervallo vuoto verticale. Il runtime termina il frame A in anticipo a causa dell'intervallo di sincronizzazione 0 nel frame B. Il runtime mostra quindi frame D per un intervallo vuoto verticale e quindi frame E fino a quando non si invia una nuova presentazione. Il runtime elimina i fotogrammi B e C.

Visualizzazione della frequenza di aggiornamento variabile

È un requisito di frequenza di aggiornamento variabile che indica che l'operazione di disinstallazione è abilitata. Il metodo CheckFeatureSupport può essere usato per determinare se questa funzionalità è disponibile e per impostare i flag necessari fare riferimento alle descrizioni di DXGI_PRESENT_ALLOW_TEARING e DXGI_SWAP_CHAIN_FLAG_ALLOW_TEARING e la sezione Frequenza di aggiornamento variabile visualizza/Vsync off di DXGI 1.5 Improvements.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 e aggiornamento della piattaforma per Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 e aggiornamento della piattaforma per Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione dxgi1_2.h
Libreria Dxgi.lib

Vedi anche

IDXGISwapChain1

Presente