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 | Der Bitblt für die Ressource wurde erfolgreich ausgeführt. |
E_OUTOFMEMORY | Blt konnte nicht den erforderlichen Arbeitsspeicher zuweisen, um es zu vervollständigen. |
Hinweise
Die Microsoft Direct3D-Runtime ruft die Blt-Funktion des Benutzermodusanzeigetreibers auf, um den Inhalt einer Quelloberfläche auf eine Zieloberfläche zu kopieren. Nach dem Zuordnen der Oberflächenverweise zu Zuordnungsverweisen sollte der Benutzermodusanzeigetreiber die entsprechenden Hardwarebefehle ausgeben. Wenn sich die Quell- oder Zielzuordnung im Systemspeicher befindet, muss der Anzeigetreiber im Benutzermodus möglicherweise synchronisiert werden (d. h. die PfnRenderCb-Funktion aufrufen), wenn der ausstehende Hardwarebefehlsdatenstrom Verweise auf die Systemspeicherbelegung enthält. Wenn sich sowohl die Quell- als auch die Zielzuordnung im Systemspeicher befinden, sollte der Treiber nach Bedarf synchronisiert werden, aber nicht den Inhalt der Quelloberfläche kopieren. Die Direct3D-Runtime kopiert den Inhalt, nachdem der Aufruf von pfnRenderCb zurückgegeben wurde.
Der Benutzermodusanzeigetreiber muss die folgenden Bedingungen behandeln, die während eines Kopiervorgangs auftreten können:
- Ziel- und Quelloberflächen sind Teil derselben Ressource (d. h . die hSrcResource - und hDstResource-Member von D3DDDIARG_BLT geben Handles für dieselbe Ressource an).
- Die Quell- und Zielrechtecke überlappen sich (d. a. die Koordinaten der RECT-Strukturen in den Elementen SrcRect und DstRect von D3DDDIARG_BLT Überlappung).
Der Anzeigetreiber für den Benutzermodus darf Colorkeys nur mit Formaten unterstützen, die vor Microsoft DirectX 8.0 eingeführt wurden. Für Formate, die in DirectX 8.0 und höher-Runtimes eingeführt wurden, ist keine Unterstützung für Farbschlüssel erforderlich.
Der Typ der auszuführenden Bitblt wird durch die Bitfeldflags angegeben, die im Flags-Member von D3DDDIARG_BLT angegeben sind. Videospeicher-in-Videospeicher-Bitblts können Colorkeying, Stretching, Spiegelung und die Konvertierung des Linear-in-sRGB-Formats umfassen. Bitblts für Den Systemspeicher zu Videospeicher können stretchen und die Formatkonvertierung linear in sRGB umfassen. Diese Arten von Bitblts enthalten jedoch niemals Spiegelung oder Colorkeying. Alle Bitblts von Videospeicher zu Systemspeicher und Bitblts von Systemspeicher zu Systemspeicher sind nur gerade Kopien. Das heißt, diese Arten von Bitblts umfassen niemals Dehnung, Spiegelung, Colorkeying oder die Konvertierung des Linear-in-sRGB-Formats. Weitere Informationen zum sRGB-Format finden Sie auf der sRGB-Website .
Weitere Informationen zu Regeln, die die Blt-Funktion beim Konvertieren von Tiefenschablonenwerten befolgen muss, finden Sie unter Kopieren Depth-Stencil Werte.
Die Direct3D-Runtime kann die Blt-Funktion des Benutzermodusanzeigetreibers aufrufen, um den Inhalt eines beliebigen Quelloberflächentyps (z. B. offscreen-plain-Typ, Renderzieltyp oder Texturtyp) in einen anderen Zieloberflächentyp zu kopieren.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Desktop |
Kopfzeile | d3dumddi.h (include D3dumddi.h) |