PFND3DDDI_BLT Rückruffunktion (d3dumddi.h)

Die Blt-Funktion kopiert den Inhalt einer Quelloberfläche auf eine Zieloberfläche.

Syntax

PFND3DDDI_BLT Pfnd3dddiBlt;

HRESULT Pfnd3dddiBlt(
  HANDLE hDevice,
  const D3DDDIARG_BLT *unnamedParam2
)
{...}

Parameter

hDevice

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

unnamedParam2

pData [in]

Ein Zeiger auf eine D3DDDIARG_BLT Struktur, die die Parameter der Bitblockübertragung (Bitblt) beschreibt.

Rückgabewert

Blt gibt einen der folgenden Werte zurück:

Rückgabecode Beschreibung
S_OK Die Bitblt für die Ressource wird erfolgreich ausgeführt.
E_OUTOFMEMORY Blt konnte den erforderlichen Speicher nicht zuordnen, damit er abgeschlossen ist.

Bemerkungen

Die Microsoft Direct3D-Laufzeit ruft die Blt-Funktion des Benutzermodus auf, um den Inhalt einer Quelloberfläche auf eine Zieloberfläche zu kopieren. Nach der Zuordnung der Oberflächenverweise zu Zuordnungsbezügen sollte der Anzeigetreiber für den Benutzermodus die entsprechenden Hardwarebefehle ausstellen. Wenn sich entweder die Quell- oder Zielzuweisung im Systemspeicher befindet, muss der Anzeigetreiber des Benutzermodus möglicherweise synchronisiert werden (d. h. die PfnRenderCb-Funktion aufrufen), wenn der ausstehende Hardwarebefehlsstream Verweise auf die Systemspeicherzuweisung enthält. Wenn sowohl die Quell- als auch die Zielzuweisungen im Systemspeicher vorhanden sind, sollte der Treiber nach Bedarf synchronisiert werden, aber nicht den Inhalt der Quelloberfläche kopieren. Die Direct3D-Laufzeit kopiert den Inhalt nach dem Aufruf von pfnRenderCb zurück.

Der Anzeigetreiber für den Benutzermodus muss die folgenden Bedingungen behandeln, die während eines Kopiervorgangs auftreten können:

  • Die Ziel- und Quelloberflächen sind Teil derselben Ressource (also die hSrcResource - und hDstResource-Elemente von D3DDDIARG_BLT geben Handle an dieselbe Ressource an).
  • Die Quell- und Zielrechtecke überlappen sich (d. b. die Koordinaten der RECT-Strukturen in den SrcRect - und DstRect-Elementen von D3DDDIARG_BLT überlappend).
Der Anzeigetreiber für den Benutzermodus muss alle Bitblt- und Videospeicher verarbeiten, einschließlich Bitblt vom Videospeicher bis zum Systemspeicher. Wenn der Anzeigetreiber für den Benutzermodus die Grafikverarbeitungseinheit (GPU) nicht verwenden kann, um eine Bitble vom Videospeicher in den Systemspeicher zu stellen, kann der Anzeigetreiber für den Benutzermodus die Daten mithilfe der CPU kopieren.

Der Anzeigetreiber für den Benutzermodus muss die Farbschlüssel nur mit Formaten unterstützen, die vor Microsoft DirectX 8.0 eingeführt wurden. Für Formate, die in DirectX 8.0 und späteren Laufzeiten eingeführt wurden, ist die Farbschlüsselunterstützung nicht erforderlich.

Der auszuführende Bitblttyp wird über die Bitfeld-Flags angegeben, die im Element " Flags " von D3DDDIARG_BLT angegeben sind. Videospeicher für Videospeicherbitblts können Farbschlüssel, Dehnen, Spiegelung und Linear-zu-sRGB-Formatkonvertierung enthalten. Der Systemspeicher für Videospeicherbitblts kann die Dehnung und die Linear-zu-sRGB-Formatkonvertierung umfassen; Diese Arten von Bitblts enthalten jedoch niemals Spiegelung oder Farbschlüssel. Alle Videospeicher für Systemspeicherbitblts und Systemspeicher für Systemspeicherbitblts sind nur gerade Kopien; dies heißt, diese Arten von Bitblts umfassen niemals die Konvertierung des Stretch-, Spiegeling-, Farbschlüssel- oder linear-zu-sRGB-Formats. Weitere Informationen zum sRGB-Format finden Sie auf der sRGB-Website .

Weitere Informationen zu Regeln, denen die Blt-Funktion beim Konvertieren von Tiefenschablonenwerten folgen muss, finden Sie unter Kopieren Depth-Stencil Werte.

Die Direct3D-Laufzeit kann die Blt-Funktion des Benutzermodus aufrufen, um den Inhalt eines beliebigen Quelloberflächentyps (z. B. offscreen-nur-Typ, Renderzieltyp oder Texturtyp) auf einen anderen Zieloberflächentyp zu kopieren.

Requirements (Anforderungen)

   
Unterstützte Mindestversion (Client) Verfügbar in Windows Vista und späteren Versionen der Windows-Betriebssysteme.
Zielplattform Desktop
Header d3dumddi.h (include D3dumddi.h)

Weitere Informationen

D3DDDIARG_BLT

D3DDDI_DEVICEFUNCS

pfnRenderCb