PFND3D11_1DDI_CLEARVIEW funzione di callback (d3d10umddi.h)

PFND3D11_1DDI_CLEARVIEW imposta tutti gli elementi in una visualizzazione risorsa su un valore. Una visualizzazione risorsa è un descrittore di superficie che indica un formato e possibilmente un subset della risorsa.

Sintassi

PFND3D11_1DDI_CLEARVIEW Pfnd3d111DdiClearview;

void Pfnd3d111DdiClearview(
  D3D10DDI_HDEVICE hDevice,
  D3D11DDI_HANDLETYPE viewType,
  VOID *hView,
  const FLOAT Color[4],
  const D3D10_DDI_RECT *pRect,
  UINT NumRects
)
{...}

Parametri

hDevice

Handle per il dispositivo di visualizzazione (contesto grafico).

viewType

Valore di tipo D3D11DDI_HANDLETYPE che identifica il tipo di handle di visualizzazione che supporta questa operazione cancella. I tipi possibili sono i seguenti.

  • D3D10DDI_HT_RENDERTARGETVIEW
  • D3D11DDI_HT_UNORDEREDACCESSVIEW
  • Qualsiasi D3D11_1DDI_HT_VIDEO tipoXXX

hView

Puntatore alla visualizzazione risorsa da cancellare.

Color[4]

pRect

Matrice di strutture RECT per i rettangoli nella visualizzazione risorsa da cancellare. Se NULL, ClearView cancella l'intera superficie.

NumRects

Numero di rettangoli nella matrice specificata dal parametro pRect .

Valore restituito

nessuno

Osservazioni

ClearView funziona solo sulle visualizzazioni di destinazione di rendering (RTV), sulle visualizzazioni di accesso non ordinate (UAV) o su qualsiasi visualizzazione video di una superficie Texture2D . I rettangoli vuoti nella matrice pRect sono no-op. Un rettangolo è vuoto se il valore superiore è uguale al valore inferiore o al valore sinistro è uguale al valore destro.

ClearView non supporta trame 3D.

ClearView applica lo stesso valore di colore a tutte le sezioni di matrice in una visualizzazione; tutti i rettangoli della matrice pRect corrispondono a ogni sezione della matrice. La matrice pRect di rettangoli è un set di aree da cancellare su una singola superficie. Se la visualizzazione è una matrice, ClearView cancella tutti i rettangoli in ogni sezione di matrice singolarmente.

Quando il driver in modalità utente applica rettangoli ai buffer, deve impostare il valore superiore su 0 e il valore inferiore su 1 e impostare il valore sinistro e il valore destro per descrivere l'estensione all'interno del buffer. Quando il valore superiore è uguale al valore inferiore o al valore sinistro è uguale al valore destro, il rettangolo è vuoto e viene ottenuto un valore no-op.

Il driver deve convertire e bloccare i valori di colore nel formato di destinazione in base alle regole di conversione Direct3D. Ad esempio, se il formato della visualizzazione è DXGI_FORMAT_R8G8B8A8_UNORM, blocca gli input a 0,0f a 1.0f (+INF - 1.0f (0XFF)/NaN ->> 0,0f).

Se il formato è intero, ad esempio DXGI_FORMAT_R8G8B8A8_UINT, accettare input come float integrali. Pertanto, 235.0f esegue il mapping a 235 (arrotondati a zero, valori non compresi tra intervallo/INF e intervallo di destinazione e NaN su zero).

Ecco i mapping dei colori:

  • Colore[0]: R (o Y per video)
  • Colore[1]: G (o U/Cb per video)
  • Colore[2]: B (o V/Cr per video)
  • Colore[3]: A

Per le visualizzazioni video con formati YUV o YCbBr, ClearView non converte i valori di colore. In situazioni in cui il nome del formato non indica _UNORM, _UINT e così via, ClearView presuppone _UINT. Pertanto, 235.0f esegue il mapping a 235 (arrotondati a zero, valori non compresi tra intervallo/INF e intervallo di destinazione e NaN su zero).

Per le visualizzazioni di Microsoft Direct3D delle superfici video RTV o UAV secondarie, si noti che le dimensioni della visualizzazione si basano sul numero di pixel della visualizzazione anziché sul numero logico sottostante di pixel video. Si supponga, ad esempio, che la superficie abbia formato YUY2 con dimensione 1920 per 1080 pixel e che un RTV usi il formato DXGI_FORMAT_R8G8B8A8_UINT. La visualizzazione viene visualizzata in Direct3D con 1920/2 = 960 R8G8B8A8 pixel nella direzione orizzontale. Pertanto, tutti i rettangoli passati in ClearView vengono interpretati in questo spazio. Inoltre, il valore chiaro viene preso per tutti i 4 componenti, R8G8B8A8, come se non sia diverso da una vera superficie R8G8B8A8 . In questo caso, R, G, B e A non significano valori di colore RGBA standard; identificano invece una posizione in memoria e il chiamante è responsabile della comprensione di ciò che significa inserire i dati in tale posizione nel contesto di una superficie video.

Tuttavia, le visualizzazioni video di una superficie video ,ad esempio le visualizzazioni fornite alla funzione CreateVideoDecoderOutputView e altre funzioni XxxInputView e XxxOutputView , vengono visualizzate nelle dimensioni logiche complete. In questo caso, la dimensione orizzontale è di 1920 pixel a larghezza, quindi le strutture RECT passate in ClearView onore. Tale reCTs deve essere allineato in modo che non straddle subsampled blocchi, in caso contrario il runtime elimina la chiamata a questa funzione. Per le visualizzazioni video, i colori YUV devono essere replicati in modo appropriato per i formati secondari. Ad esempio, YUV nella chiamata ClearView ha il valore Y duplicato per ogni blocco in una superficie YUY2.

La struttura D3D10_DDI_RECT è definita come struttura RECT .

typedef RECT D3D10_DDI_RECT;

Requisiti

Requisito Valore
Client minimo supportato Windows 8
Server minimo supportato Windows Server 2012
Piattaforma di destinazione Desktop
Intestazione d3d10umddi.h (include D3d10umddi.h)

Vedi anche

CreateVideoDecoderOutputView

D3D11DDI_HANDLETYPE

RECT