PFND3D11_1DDI_RESOURCECOPYREGION funzione di callback (d3d10umddi.h)
Copia un'area di sottorisorsa di origine in una posizione in una sottorisorsa di destinazione.
Sintassi
PFND3D11_1DDI_RESOURCECOPYREGION Pfnd3d111DdiResourcecopyregion;
void Pfnd3d111DdiResourcecopyregion(
D3D10DDI_HDEVICE unnamedParam1,
D3D10DDI_HRESOURCE unnamedParam2,
UINT unnamedParam3,
UINT unnamedParam4,
UINT unnamedParam5,
UINT unnamedParam6,
D3D10DDI_HRESOURCE unnamedParam7,
UINT unnamedParam8,
const D3D10_DDI_BOX *unnamedParam9,
[in] UINT CopyFlags
)
{...}
Parametri
unnamedParam1
hDevice [in]
Handle per il dispositivo di visualizzazione (contesto grafico).
unnamedParam2
hDstResource [in]
Handle della risorsa di destinazione in cui eseguire la copia.
unnamedParam3
DstSubresource [in]
Indice che indica la sottorisorsa di destinazione in cui eseguire la copia.
unnamedParam4
DstX [in]
Coordinata x della sottorisorsa di destinazione.
unnamedParam5
DstY [in]
Coordinata y della sottorisorsa di destinazione. Per le sottorisorse unidimensionali (1D), DstY è impostato su zero.
unnamedParam6
DstZ [in]
Coordinata z della sottorisorsa di destinazione. Per le sottorisorse unidimensionali (1D) e bidimensionali (2D), DstZ è impostato su zero.
unnamedParam7
hSrcResource [in]
Handle per la risorsa di origine da cui copiare.
unnamedParam8
SrcSubresource [in]
Indice che indica la sottorisorsa di origine da cui eseguire la copia.
unnamedParam9
pSrcBox [in, facoltativo]
Puntatore a una struttura D3D10_DDI_BOX che specifica una casella adatta alla sottorisorsa di origine o di destinazione. Se pSrcBox è NULL, il driver deve copiare l'intera sottorisorsa di origine nella destinazione.
Se i membri della struttura D3D10_DDI_BOX sono tali che sinistra>=destra, >superiore =inferioreo front>=indietro, pSrcBox è considerato vuoto, e ResourceCopyRegion(D3D11_1) non devono eseguire alcuna operazione di copia.
[in] CopyFlags
Valore che specifica le caratteristiche dell'operazione di copia come OR bit per bit dei valori nel tipo di enumerazione D3D11_1_DDI_COPY_FLAGS.
Valore restituito
Nessuno
Osservazioni
Il driver può usare il pfnSetErrorCb funzione di callback per impostare un codice di errore.
Il runtime di Microsoft Direct3D chiama la funzione ResourceCopyRegion(D3D11_1) del driver di visualizzazione in modalità utente per informare il driver di copiare dall'area di origine secondaria specificata in una posizione nella sottorisorsa di destinazione specificata. Le sottorisorse di origine e di destinazione possono essere la stessa sottorisorsa della stessa risorsa. Sia le risorse di origine che di destinazione devono essere dello stesso tipo di risorsa e devono avere tipi di formato (valori tipizzati DXGI_FORMAT) convertibili tra loro.
Per i buffer, tutte le coordinate devono essere in byte; mentre per le trame, tutte le coordinate devono essere in pixel. La casella a cui punta il parametro pSrcBox non deve estendersi sui bordi dell'area della sottorisorsa di origine o della sottorisorsa di destinazione. L'origine e la risorsa di destinazione non devono essere mappate. Inoltre, i flag di creazione delle risorse limitano se la risorsa può partecipare all'operazione di copia.
Il driver non deve riscontrare alcun errore, ad eccezione di D3DDDIERR_DEVICEREMOVED. Pertanto, se il driver passa qualsiasi errore, ad eccezione di D3DDDIERR_DEVICEREMOVED, in una chiamata alla funzione pfnSetErrorCb, il runtime Direct3D determinerà che l'errore è critico. Anche se il dispositivo è stato rimosso, il driver non è necessario per restituire D3DDDIERR_DEVICEREMOVED; tuttavia, se la rimozione del dispositivo interferisce con l'operazione di (che in genere non dovrebbe verificarsi), il driver può restituire D3DDDIERR_DEVICEREMOVED.
Il driver può implementare una funzione ResourceCopyRegion(D3D11_1) che può contenere un'istruzione switch per elaborare la copia e la conversione. Ovvero, il driver può implementare un ResourceCopyRegion(D3D11_1) e può impostare il pfnResourceConvertRegion membro della struttura D3D11_1DDI_DEVICEFUNCS in modo che punti a ResourceCopyRegion(D3D11_1) insieme al pfnResourceCopyRegion membro di D3D11_1DDI_DEVICEFUNCS. Tuttavia, per migliorare le prestazioni, il driver può implementare funzioni di resourceCopyRegion(D3D11_1 ) separate e ResourceConvertRegion(D3D11_1).
Le sezioni seguenti elencano le condizioni per la copia e la conversione:
copia di
Per la copia, ResourceCopyRegion(D3D11_1) garantisce che le risorse di origine e di destinazione siano state create tramite la funzione CreateResource(D3D11) del driver con le condizioni seguenti:
- La risorsa di destinazione non è stata creata con il valore D3D10_DDI_USAGE_IMMUTABLE impostato nel membro Usage della struttura D3D11DDIARG_CREATERESOURCE.
- Se la risorsa di origine o di destinazione ha il bit di D3D10_DDI_BIND_DEPTH_STENCIL impostato nel BindFlags membro del D3D10DDIARG_CREATERESOURCE o è una risorsa a più campioni, ResourceCopyRegion(D3D11_1) verifica che il parametro pSrcBox sia NULL, mentre i parametri DstX, DstYe DstZ sono 0.
- Gli indici di sottorisorsa sono compresi nell'intervallo.
- Le restrizioni di allineamento si applicano alle coordinate.
- Le risorse di origine e di destinazione non fanno parte esattamente della stessa sottorisorsa.
- Ogni formato di risorsa di origine e di destinazione specificato nel Formato membro di D3D11DDIARG_CREATERESOURCE si trova nello stesso gruppo senza tipi.
- Le risorse di origine e di destinazione devono avere lo stesso numero di campioni e livelli di qualità; ad eccezione delle risorse a campionamento singolo, che devono avere solo lo stesso numero di campioni.
conversione
Per la conversione, ResourceCopyRegion(D3D11_1) garantisce che le risorse di origine e di destinazione siano state create tramite la funzione CreateResource(D3D11) del driver con le condizioni seguenti:
- La risorsa di destinazione non è stata creata con il valore D3D10_DDI_USAGE_IMMUTABLE impostato nel membro Usage della struttura D3D11DDIARG_CREATERESOURCE.
- Se la risorsa di origine o di destinazione ha il bit di D3D10_DDI_BIND_DEPTH_STENCIL impostato nel BindFlags membro di D3D11DDIARG_CREATERESOURCE o è una risorsa a più campioni, ResourceCopyRegion(D3D11_1) verifica che il parametro pSrcBox sia NULL, mentre DstX, DstY, , e parametri di DstZ sono 0.
- Gli indici di sottorisorsa sono compresi nell'intervallo.
- Le restrizioni di allineamento si applicano alle coordinate.
- Le risorse di origine e di destinazione non fanno parte esattamente della stessa sottorisorsa.
- Ogni formato di risorsa di origine e di destinazione specificato nel Formato membro di D3D11DDIARG_CREATERESOURCE si trova nello stesso gruppo senza tipi.
- Ogni formato di risorsa di origine e di destinazione specificato nel Formato membro di D3D11DDIARG_CREATERESOURCE supporta l'operazione di conversione appropriata.
- Le risorse di origine e di destinazione devono avere lo stesso numero di campioni e livelli di qualità; ad eccezione delle risorse a campionamento singolo, che devono avere solo lo stesso numero di campioni.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 8 |
server minimo supportato | Windows Server 2012 |
piattaforma di destinazione | Desktop |
intestazione | d3d10umddi.h (include D3d10umddi.h) |