PFND3DDDI_BLT funzione di callback (d3dumddi.h)

La funzione Blt copia il contenuto di una superficie di origine in una superficie di destinazione.

Sintassi

PFND3DDDI_BLT Pfnd3dddiBlt;

HRESULT Pfnd3dddiBlt(
  HANDLE hDevice,
  const D3DDDIARG_BLT *unnamedParam2
)
{...}

Parametri

hDevice

Handle per il dispositivo di visualizzazione (contesto grafico).

unnamedParam2

pData [in]

Puntatore a una struttura D3DDDIARG_BLT che descrive i parametri del trasferimento a blocchi bit (bitblt).

Valore restituito

Blt restituisce uno dei valori seguenti:

Codice restituito Descrizione
S_OK Il bitblt per la risorsa viene eseguito correttamente.
E_OUTOFMEMORY Blt non è riuscito a allocare la memoria necessaria per il completamento.

Commenti

Il runtime di Microsoft Direct3D chiama la funzione Blt del driver di visualizzazione in modalità utente per copiare il contenuto di una superficie di origine in una superficie di destinazione. Dopo aver mappato i riferimenti alla superficie ai riferimenti di allocazione, il driver di visualizzazione in modalità utente deve emettere i comandi hardware appropriati. Se l'allocazione di origine o di destinazione è in memoria di sistema, il driver di visualizzazione in modalità utente potrebbe essere necessario sincronizzare , ovvero chiamare la funzione pfnRenderCb , se il flusso di comandi hardware in sospeso contiene riferimenti all'allocazione della memoria di sistema. Se sia le allocazioni di origine che di destinazione sono in memoria di sistema, il driver deve essere sincronizzato in base alle esigenze, ma non deve copiare il contenuto dell'area di origine. Il runtime Direct3D copia il contenuto dopo la chiamata a pfnRenderCb .

Il driver di visualizzazione in modalità utente deve gestire le condizioni seguenti che potrebbero verificarsi durante un'operazione di copia:

  • Le superfici di destinazione e origine fanno parte della stessa risorsa, ovvero i membri hSrcResource e hDstResource di D3DDDIARG_BLT specificano handle alla stessa risorsa.
  • I rettangoli di origine e di destinazione si sovrappongono, ovvero le coordinate delle strutture RECT nei membri SrcRect e DstRect di D3DDDIARG_BLT sovrapposizione.
Il driver di visualizzazione in modalità utente deve gestire tutti i bitblt da e verso la memoria video, inclusi bitblt dalla memoria video alla memoria di sistema. Se il driver di visualizzazione in modalità utente non può usare l'unità di elaborazione grafica (GPU) per emettere un bitblt dalla memoria video alla memoria di sistema, il driver di visualizzazione in modalità utente può copiare i dati usando la CPU.

Il driver di visualizzazione in modalità utente deve supportare il colorkeying solo con formati introdotti prima di Microsoft DirectX 8.0. Per i formati introdotti in DirectX 8.0 e versioni successive, il supporto di colorkeying non è necessario.

Il tipo di bitblt da eseguire è indicato tramite i flag di campo bit specificati nel membro Flags di D3DDDIARG_BLT. La memoria video a bitblts di memoria video può includere colorikeying, estensione, mirroring e conversione del formato linear-to-sRGB. La memoria di sistema a bitblts di memoria video può includere la conversione di formato stretching e linear-to-sRGB; tuttavia, questi tipi di bitblts non includono mai mirroring o colorkeying. Tutte le memoria video a bitblts di memoria di sistema e memoria di sistema a bitblts di memoria di sistema sono copie dritte solo; ovvero, questi tipi di bitblts non includono mai la conversione di formati stretching, mirroring, colorkeying o linear-to-sRGB. Per altre informazioni sul formato sRGB, vedere il sito Web sRGB .

Per altre informazioni sulle regole che la funzione Blt deve seguire durante la conversione dei valori di profondità-stencil, vedere Copia di valori Depth-Stencil.

Il runtime Direct3D può chiamare la funzione Blt del driver di visualizzazione in modalità utente per copiare il contenuto di qualsiasi tipo di superficie di origine, ad esempio, tipo di destinazione offscreen, tipo di destinazione di rendering o tipo di trama in qualsiasi altro tipo di superficie di destinazione.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows Vista e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Desktop
Intestazione d3dumddi.h (include D3dumddi.h)

Vedi anche

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb