PFND3D11_1DDI_CLEARVIEW Rückruffunktion (d3d10umddi.h)

PFND3D11_1DDI_CLEARVIEW legt alle Elemente in einer Ressourcenansicht auf einen Wert fest. Eine Ressourcenansicht ist ein Oberflächendeskriptor, der ein Format und möglicherweise eine Teilmenge der Ressource angibt.

Syntax

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
)
{...}

Parameter

hDevice

Ein Handle für das Anzeigegerät (Grafikkontext).

viewType

Ein Wert vom Typ D3D11DDI_HANDLETYPE , der den Sichthandletyp identifiziert, der diesen clear-Vorgang unterstützt. Mögliche Typen sind die folgenden.

  • D3D10DDI_HT_RENDERTARGETVIEW
  • D3D11DDI_HT_UNORDEREDACCESSVIEW
  • Beliebiger D3D11_1DDI_HT_VIDEOXXX-Typ

hView

Ein Zeiger auf die zu löschende Ressourcenansicht.

Color[4]

pRect

Ein Array von RECT-Strukturen für die zu löschenden Rechtecke in der Ressourcenansicht. Bei NULL löscht ClearView die gesamte Oberfläche.

NumRects

Die Anzahl der Rechtecke im Array, die der pRect-Parameter angibt.

Rückgabewert

Keine

Bemerkungen

ClearView funktioniert nur für Renderzielansichten (RTVs), ungeordnete Zugriffsansichten (UAVs) oder jede Videoansicht einer Texture2D-Oberfläche . Leere Rechtecke im pRect-Array sind nicht op. Ein Rechteck ist leer, wenn der oberste Wert dem unteren Wert oder der linke Wert dem rechten Wert entspricht.

ClearView unterstützt keine 3D-Texturen.

ClearView wendet den gleichen Farbwert auf alle Array-Slices in einer Ansicht an. alle Rechtecke im pRect-Array entsprechen jedem Arrayslic. Das pRect-Array von Rechtecken ist eine Gruppe von Bereichen, die auf einer einzelnen Oberfläche gelöscht werden sollen. Wenn es sich bei der Ansicht um ein Array handelt, löscht ClearView alle Rechtecke in jedem Array-Slice einzeln.

Wenn der Benutzermodustreiber Rechtecke auf Puffer anwendet, sollte er den obersten Wert auf 0 und den unteren Wert auf 1 festlegen und den linken und rechten Wert festlegen, um die Ausdehnung innerhalb des Puffers zu beschreiben. Wenn der oberste Wert dem unteren Wert oder dem linken Wert gleich dem rechten Wert entspricht, ist das Rechteck leer, und es wird ein No-Op-Wert erreicht.

Der Treiber sollte Farbwerte entsprechend den Direct3D-Konvertierungsregeln konvertieren und in das Zielformat klammern. Wenn das Format der Ansicht beispielsweise DXGI_FORMAT_R8G8B8A8_UNORM ist, klemmen Sie Eingaben auf 0,0f bis 1,0f (+INF -> 1,0f (0XFF)/NaN -> 0,0f).

Wenn das Format ganzzahlig ist, z. B. DXGI_FORMAT_R8G8B8A8_UINT, nehmen Sie Eingaben als integrale Floats an. Daher wird 235.0f 235 zugeordnet (rundet auf 0, aus bereichs-/INF-Werten klemmt zum Zielbereich und NaN auf 0).

Hier sind die Farbzuordnungen:

  • Farbe[0]: R (oder Y für Video)
  • Farbe[1]: G (oder U/Cb für Video)
  • Farbe[2]: B (oder V/Cr für Video)
  • Farbe[3]: A

Für Videoansichten im YUV- oder YCbBr-Format konvertiert ClearView keine Farbwerte. In Situationen, in denen der Formatname nicht auf _UNORM, _UINT usw. hinweist, geht ClearView von _UINT aus. Daher wird 235.0f 235 zugeordnet (rundet auf 0, aus bereichs-/INF-Werten klemmt zum Zielbereich und NaN auf 0).

Beachten Sie bei Microsoft Direct3D-Ansichten der unterstempelten RTV- oder UAV-Videooberflächen, dass die Dimensionen der Ansicht auf der Anzahl der Pixel im Ansichtsformat basieren und nicht auf der zugrunde liegenden logischen Anzahl von Videopixeln. Angenommen, die Oberfläche hat das Format YUY2 mit der Dimension 1920 x 1080 Pixel, und ein RTV verwendet das Format DXGI_FORMAT_R8G8B8A8_UINT. Die Ansicht scheint Direct3D mit 1920/2 = 960 R8G8B8A8 Pixeln in horizontaler Richtung zu haben. Daher werden alle Rechtecke, die an ClearView übergeben werden, in diesem Bereich interpretiert. Darüber hinaus wird der klare Wert für alle 4 Komponenten verwendet, R8G8B8A8, als ob er sich nicht von einer echten R8G8B8A8-Oberfläche unterscheidet. In diesem Fall bedeuten R, G, B und A keine RGBA-Standardfarbwerte. Stattdessen identifizieren sie einen Speicherort im Arbeitsspeicher, und der Aufrufer ist dafür verantwortlich, zu verstehen, was es bedeutet, Daten im Kontext einer Videooberfläche an diesem Ort zu speichern.

Videoansichten einer Videooberfläche (z. B. Ansichten, die für die CreateVideoDecoderOutputView-Funktion und andere XxxInputView - und XxxOutputView-Funktionen bereitgestellt werden) werden jedoch mit den vollständigen logischen Dimensionen angezeigt. In diesem Fall ist die horizontale Dimension 1920 Pixel breit, sodass RECT-Strukturen an ClearView übergeben wurden. Solche RECT-smüssen ausgerichtet werden, damit sie keine unterstempelten Blöcke enthalten, andernfalls wird der Aufruf dieser Funktion von der Runtime gelöscht. Für Videoansichten müssen YUV-Farben für subsampierte Formate entsprechend repliziert werden. Beispielsweise verfügt YUV im ClearView-Aufruf über den Y-Wert, der für jeden Block in einer YUY2-Oberfläche dupliziert wird.

Die D3D10_DDI_RECT-Struktur ist als RECT-Struktur definiert.

typedef RECT D3D10_DDI_RECT;

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8
Unterstützte Mindestversion (Server) Windows Server 2012
Zielplattform Desktop
Kopfzeile d3d10umddi.h (einschließlich D3d10umddi.h)

Weitere Informationen

CreateVideoDecoderOutputView

D3D11DDI_HANDLETYPE

RECT