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 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) |