Metodo IDirect3DSwapChain9::P resent (d3d9helper.h)

Presenta il contenuto del buffer successivo nella sequenza di buffer back di proprietà della catena di scambio.

Sintassi

HRESULT Present(
  [in] const RECT    *pSourceRect,
  [in] const RECT    *pDestRect,
  [in] HWND          hDestWindowOverride,
  [in] const RGNDATA *pDirtyRegion,
  [in] DWORD         dwFlags
);

Parametri

[in] pSourceRect

Tipo: const RECT*

Puntatore al rettangolo di origine (vedere RECT). Usare NULL per presentare l'intera superficie. Questo valore deve essere NULL a meno che non sia stata creata la catena di scambio con D3DSWAPEFFECT_COPY. Se il rettangolo supera la superficie di origine, il rettangolo viene ritagliato nella superficie di origine.

[in] pDestRect

Tipo: const RECT*

Puntatore al rettangolo di destinazione nelle coordinate client (vedere RECT). Questo valore deve essere NULL a meno che non sia stata creata la catena di scambio con D3DSWAPEFFECT_COPY. Usare NULL per riempire l'intera area client. Se il rettangolo supera l'area client di destinazione, il rettangolo viene ritagliato nell'area client di destinazione.

[in] hDestWindowOverride

Tipo: HWND

Finestra di destinazione la cui area client viene presa come destinazione per questa presentazione. Se questo valore è NULL, il runtime usa il membro hDeviceWindow di D3DPRESENT_PARAMETERS per la presentazione.

[in] pDirtyRegion

Tipo: const RGNDATA*

Questo valore deve essere NULL a meno che non sia stata creata la catena di scambio con D3DSWAPEFFECT_COPY. Vedere Capovolgimento delle superfici (Direct3D 9).

Se questo valore non è NULL, l'area contenuta viene espressa nelle coordinate del buffer indietro. I rettangoli all'interno dell'area sono il set minimo di pixel che devono essere aggiornati. Questo metodo tiene conto di questi rettangoli durante l'ottimizzazione della presentazione copiando solo i pixel all'interno dell'area o alcuni set di rettangoli adeguatamente espansi. Si tratta di un aiuto per l'ottimizzazione solo e l'applicazione non deve basarsi sull'area copiata esattamente. L'implementazione può scegliere di copiare l'intero rettangolo di origine.

[in] dwFlags

Tipo: DWORD

Consente all'applicazione di richiedere che il metodo venga restituito immediatamente quando il driver segnala che non può pianificare una presentazione. I valori validi sono 0 o qualsiasi combinazione di D3DPRESENT_DONOTWAIT o D3DPRESENT_LINEAR_CONTENT.

  • Se dwFlags = 0, questo metodo si comporta come prima di Direct3D 9. Presente verrà eseguito fino a quando l'hardware non è libero, senza restituire un errore.
  • Se dwFlags = D3DPRESENT_DONOTWAIT e l'hardware è occupato nell'elaborazione o in attesa di un intervallo di sincronizzazione verticale, il metodo restituirà D3DERR_WASSTILLDRAWING.
  • Se dwFlags = D3DPRESENT_LINEAR_CONTENT, la correzione gamma viene eseguita dallo spazio lineare a sRGB per le catene di scambio finestrate. Questo flag avrà effetto solo quando il driver espone D3DCAPS3_LINEAR_TO_SRGB_PRESENTATION(vedere Gamma (Direct3D 9)). Le applicazioni devono specificare questo flag se il formato backbuffer è a 16 bit a virgola mobile per corrispondere al comportamento gamma a schermo intero.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, il valore restituito è D3D_OK. Se il metodo ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_DEVICELOST, D3DERR_DRIVERINTERNALERROR, D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.

Commenti

Il metodo Present è un collegamento a Present . Presente è stato aggiornato per accettare un flag che consente all'applicazione di richiedere che il metodo venga restituito immediatamente quando il driver segnala che non può pianificare una presentazione.

Se necessario, viene applicata un'operazione di estensione per trasferire i pixel all'interno del rettangolo di origine nel rettangolo di destinazione nell'area client della finestra di destinazione.

Presente avrà esito negativo se viene chiamato tra coppie BeginScene e EndScene , a meno che la destinazione di rendering non sia la destinazione di rendering corrente, ad esempio il buffer back ottenuto dalla creazione di una catena di scambio aggiuntiva. Si tratta di un nuovo comportamento per Direct3D 9.

Requisiti

Requisito Valore
Piattaforma di destinazione Windows
Intestazione d3d9helper.h (include D3D9.h)
Libreria D3D9.lib

Vedi anche

IDirect3DSwapChain9

Reimpostazione