Condividi tramite


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.
ResourceCopyRegion(D3D11_1) non garantisce che la casella di origine scostato dagli offset di destinazione si adatti interamente alla risorsa. ResourceCopyRegion(D3D11_1) non garantisce che non siano attualmente mappate sottorisorse.

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.
ResourceCopyRegion(D3D11_1) non garantisce che nessuna sottorisorsa sia attualmente mappata. ResourceCopyRegion(D3D11_1) non garantisce inoltre che la casella di origine sfalsato dagli offset di destinazione si adatti interamente alla risorsa.

Fabbisogno

Requisito Valore
client minimo supportato Windows 8
server minimo supportato Windows Server 2012
piattaforma di destinazione Desktop
intestazione d3d10umddi.h (include D3d10umddi.h)

Vedere anche

CreateResource(D3D11)

D3D10_DDI_BOX

D3D11DDIARG_CREATERESOURCE

D3D11_1DDI_DEVICEFUNCS

D3D11_1_DDI_COPY_FLAGS

pfnSetErrorCb