Freigeben über


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 Ansichtshandletyp 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 Ressourcenansicht, die gelöscht werden soll.

Color[4]

pRect

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

NumRects

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

Rückgabewert

Nichts

Bemerkungen

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

ClearView- unterstützt keine 3D-Texturen.

ClearView denselben Farbwert auf alle Arraysegmente in einer Ansicht anwendet; Alle Rechtecke im pRect Array entsprechen jedem Arraysegment. Die pRect Array von Rechtecken ist eine Reihe 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 auf jedem Arraysegment einzeln.

Wenn der Benutzermodustreiber Rechtecke auf Puffer anwendet, sollte er den oberen Wert auf 0 und den unteren Wert auf 1 festlegen und den linken Wert und den rechten Wert festlegen, um den Umfang innerhalb des Puffers zu beschreiben. Wenn der obere Wert dem unteren Wert oder dem linken Wert entspricht, ist das Rechteck leer und ein no-op erreicht.

Der Treiber sollte Farbwerte entsprechend den Direct3D-Konvertierungsregeln in das Zielformat konvertieren und einklammern. Wenn das Format der Ansicht z. B. DXGI_FORMAT_R8G8B8A8_UNORMist, Klammereingaben auf 0,0f bis 1,0f (+INF -> 1,0f (0XFF)/NaN -> 0,0f).

Wenn das Format eine ganze Zahl ist, z. B. DXGI_FORMAT_R8G8B8A8_UINT, nehmen Sie Eingaben als integrale Floats ein. Daher entspricht 235,0f 235 (rundet auf Null, außerhalb des Bereichs/INF-Werte- und Zielbereichs und NaN auf Null).

Hier sind die Farbzuordnungen:

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

Bei Videoansichten mit YUV- oder YCbBr-Formaten konvertiert ClearView keine Farbwerte. In Situationen, in denen der Formatname nicht auf _UNORM, _UINT usw. hinweist, wird ClearView davon ausgegangen, dass _UINT. Daher entspricht 235,0f 235 (rundet auf Null, außerhalb des Bereichs/INF-Werte- und Zielbereichs und NaN auf Null).

Beachten Sie bei Microsoft Direct3D-Ansichten der unterstempelten RTV- oder UAV-Videooberflächen, dass die Abmessungen 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 Pixel in horizontaler Richtung anzuzeigen. Daher werden alle Rechtecke, die an ClearView übergeben werden, in diesem Raum interpretiert. Darüber hinaus wird der klare Wert für alle vier Komponenten, R8G8B8A8, genommen, als ob es 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 Speicher, und der Aufrufer ist dafür verantwortlich, zu verstehen, was es bedeutet, Daten in diesen Ort im Kontext einer Videooberfläche einzufügen.

Videoansichten einer Videooberfläche (z. B. Ansichten, die dem CreateVideoDecoderOutputView Funktion und anderen XxxInputView- und XxxOutputView--Funktionen bereitgestellt werden) werden jedoch in den vollständigen logischen Dimensionen angezeigt. In diesem Fall ist die horizontale Dimension 1920 Pixel breit, sodass RECT- Strukturen, die an ClearView übergeben werden, berücksichtigen. Solche RECT-s müssen ausgerichtet werden, damit sie keine unterstempelten Blöcke überziehen, andernfalls wird der Aufruf dieser Funktion von der Laufzeit abgebrochen. Bei Videoansichten müssen YUV-Farben für Unterstempelformate entsprechend repliziert werden. Beispielsweise weist YUV im ClearView Aufruf den Y-Wert für jeden Block in einer YUY2-Oberfläche dupliziert auf.

Die D3D10_DDI_RECT-Struktur wird als RECT--Struktur definiert.

typedef RECT D3D10_DDI_RECT;

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 8
mindestens unterstützte Server- Windows Server 2012
Zielplattform- Desktop
Header- d3d10umddi.h (include D3d10umddi.h)

Siehe auch

CreateVideoDecoderOutputView-

D3D11DDI_HANDLETYPE

RECT-