PFND3D11_1DDI_RESOURCECOPYREGION funzione di callback (d3d10umddi.h)
Copia un'area secondaria di origine in una posizione in una sottoresource 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 alla risorsa di destinazione da copiare.
unnamedParam3
DstSubresource [in]
Indice che indica la sottoresource di destinazione da copiare.
unnamedParam4
DstX [in]
Coordinata x della sottoresource di destinazione.
unnamedParam5
DstY [in]
Coordinata y della sottoresource di destinazione. Per le sottoresource (1D) unidimensionali, DstY è impostato su zero.
unnamedParam6
DstZ [in]
Coordinata z della sottoresource di destinazione. Per le sottoresource unidimensionali (1D) e bidimensionali (2D), DstZ è impostato su zero.
unnamedParam7
hSrcResource [in]
Handle della risorsa di origine da cui copiare.
unnamedParam8
SrcSubresource [in]
Indice che indica la sottoresource di origine da cui copiare.
unnamedParam9
pSrcBox [in, facoltativo]
Puntatore a una struttura di D3D10_DDI_BOX che specifica una casella adatta alla sottoresource di origine o di destinazione. Se pSrcBox è NULL, il driver deve copiare l'intera sottoresouce di origine nella destinazione.
Se i membri della struttura D3D10_DDI_BOX sono tali che left>=right, top>=bottom o front>=back, pSrcBox viene considerato vuoto e ResourceCopyRegion(D3D11_1) non deve 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 la funzione di callback pfnSetErrorCb per impostare un codice di errore.
Il runtime di Microsoft Direct3D chiama la funzione ResourceCopyRegion(D3D11_1) del driver in modalità utente per informare il driver di copiare dall'area secondaria di origine specificata a una posizione nella sottoresource di destinazione specificata. Le sottoresource di origine e di destinazione possono essere la stessa sottoresource della stessa risorsa. Sia le risorse di origine che di destinazione devono essere lo 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 secondaria di origine o sulla sottoresource di destinazione. L'origine e la risorsa di destinazione non devono essere attualmente 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 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 oggetto ResourceCopyRegion(D3D11_1) e può impostare il membro pfnResourceConvertRegiondella struttura D3D11_1DDI_DEVICEFUNCS per puntare a ResourceCopyRegion(D3D11_1) insieme al membro pfnResourceCopyRegion di D3D11_1DDI_DEVICEFUNCS. Tuttavia, per migliorare le prestazioni, il driver può implementare funzioni ResourceCopyRegion(D3D11_1) e ResourceConvertRegion(D3D11_1).
Le sezioni seguenti elencano le condizioni per la copia e la conversione:
Copia
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 Utilizzodella struttura D3D11DDIARG_CREATERESOURCE.
- Se la risorsa di origine o di destinazione ha il bit D3D10_DDI_BIND_DEPTH_STENCIL impostato nel membro BindFlags del D3D10DDIARG_CREATERESOURCE o è una risorsa a più esempi, ResourceCopyRegion(D3D11_1) verifica che il parametro pSrcBox sia NULL, mentre i parametri DstX, DstY e DstZ sono 0.
- Gli indici di sottoresource sono inclusi nell'intervallo.
- Le restrizioni di allineamento si applicano alle coordinate.
- Le risorse di origine e di destinazione non fanno parte della stessa sottoresource esatta.
- Ogni formato di risorsa di origine e destinazione specificato nel membro Format 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 campione 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 Utilizzodella struttura D3D11DDIARG_CREATERESOURCE.
- Se la risorsa di origine o di destinazione ha il bit D3D10_DDI_BIND_DEPTH_STENCIL impostato nel membro BindFlags di D3D11DDIARG_CREATERESOURCE o è una risorsa a più esempi, ResourceCopyRegion(D3D11_1) verifica che il parametro pSrcBox sia NULL, mentre i parametri DstX, DstY e DstZ sono 0.
- Gli indici di sottoresource sono inclusi nell'intervallo.
- Le restrizioni di allineamento si applicano alle coordinate.
- Le risorse di origine e di destinazione non fanno parte della stessa sottoresource esatta.
- Ogni formato di risorsa di origine e destinazione specificato nel membro Format di D3D11DDIARG_CREATERESOURCE si trova nello stesso gruppo senza tipi.
- Ogni formato di risorsa di origine e di destinazione specificato nel membro Formato 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 campione singolo, che devono avere solo lo stesso numero di campioni.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 8 |
Server minimo supportato | Windows Server 2012 |
Piattaforma di destinazione | Desktop |
Intestazione | d3d10umddi.h (include D3d10umddi.h) |