Condividi tramite


Metodo IDXGIOutputDuplication::GetFrameDirtyRects (dxgi1_2.h)

Ottiene informazioni sui rettangoli dirty per il frame desktop corrente.

Sintassi

HRESULT GetFrameDirtyRects(
  [in]  UINT DirtyRectsBufferSize,
  [out] RECT *pDirtyRectsBuffer,
  [out] UINT *pDirtyRectsBufferSizeRequired
);

Parametri

[in] DirtyRectsBufferSize

Dimensione in byte del buffer passata dal chiamante al parametro pDirtyRectsBuffer .

[out] pDirtyRectsBuffer

Puntatore a una matrice di strutture RECT che identifica le aree del rettangolo dirty per il frame desktop.

[out] pDirtyRectsBufferSizeRequired

Puntatore a una variabile che riceve il numero di byte che GetFrameDirtyRects deve archiviare informazioni sulle aree dirty nel buffer in pDirtyRectsBuffer.

Per altre informazioni sulla restituzione delle dimensioni del buffer necessarie, vedere Osservazioni.

Valore restituito

GetFrameDirtyRects restituisce:

  • S_OK se sono state recuperate correttamente le informazioni sui rettangoli dirty.
  • DXGI_ERROR_ACCESS_LOST se l'interfaccia di duplicazione desktop non è valida. L'interfaccia di duplicazione desktop in genere non è valida quando viene visualizzato un tipo diverso di immagine sul desktop. Ecco alcuni esempi di questa situazione:
    • Commutatore desktop
    • Modifica della modalità
    • Passare da DWM su, DWM disattivato o da un'altra applicazione a schermo intero
    In questo caso, l'applicazione deve rilasciare l'interfaccia IDXGIOutputDuplication e creare un nuovo IDXGIOutputDuplication per il nuovo contenuto.
  • DXGI_ERROR_MORE_DATA se il buffer fornito dall'applicazione chiamante non è abbastanza grande.
  • DXGI_ERROR_INVALID_CALL se l'applicazione denominata GetFrameDirtyRects senza possedere l'immagine desktop.
  • E_INVALIDARG se uno dei parametri per GetFrameDirtyRects non è corretto; ad esempio, se pDirtyRectsBuffer è NULL.
  • Possibilmente altri codici di errore descritti nell'argomento DXGI_ERROR .

Commenti

GetFrameDirtyRects archivia un valore di dimensione nella variabile in pDirtyRectsBufferSizeRequired. Questo valore specifica il numero di byte che GetFrameDirtyRects deve archiviare informazioni sulle aree dirty. È possibile usare questo valore nelle situazioni seguenti per determinare la quantità di memoria da allocare per i buffer futuri passati a pDirtyRectsBuffer:

  • GetFrameDirtyRects ha esito negativo con DXGI_ERROR_MORE_DATA perché il buffer non è sufficientemente grande.
  • GetFrameDirtyRects fornisce un buffer maggiore del necessario. Il valore di dimensione restituito in pDirtyRectsBufferSizeRequired informa il chiamante della quantità di spazio buffer effettivamente usata rispetto alla quantità di spazio buffer allocata e specificata dal chiamante nel parametro DirtyRectsBufferSize .
Il chiamante può anche usare il valore restituito in pDirtyRectsBufferSizeRequired per determinare il numero di RECTrestituiti nella matrice pDirtyRectsBuffer .

Il buffer contiene l'elenco di RECTdirty per il frame corrente.

Nota Per produrre una copia visivamente accurata del desktop, un'applicazione deve prima elaborare tutte le operazioni RECTdi spostamento prima di elaborare RECTdirty.
 

Requisiti

   
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione dxgi1_2.h
Libreria Dxgi.lib

Vedi anche

IDXGIOutputDuplicazione