EngBitBlt-Funktion (winddi.h)
Die EngBitBlt-Funktion bietet allgemeine Bitblockübertragungsfunktionen zwischen geräteverwalteten Oberflächen oder zwischen einer geräteverwalteten Oberfläche und einer bitmap im GDI-verwalteten Standardformat.
Syntax
ENGAPI BOOL EngBitBlt(
SURFOBJ *psoTrg,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
RECTL *prclTrg,
POINTL *pptlSrc,
POINTL *pptlMask,
BRUSHOBJ *pbo,
POINTL *pptlBrush,
[in] ROP4 rop4
);
Parameter
psoTrg
Zeiger auf die SURFOBJ-Struktur , die die Oberfläche identifiziert, auf der gezeichnet werden soll.
psoSrc
Wenn der rop4 dies erfordert, zeigen Sie auf eine SURFOBJ-Struktur, die die Quelle für den Bitblockübertragungsvorgang definiert.
psoMask
Zeiger auf eine SURFOBJ-Struktur, die eine Oberfläche definiert, die als Maske verwendet werden soll. Die Maske ist als Bitmap mit 1 Bit pro Pixel definiert. In der Regel schränkt eine Maske den Bereich ein, der auf der Zieloberfläche geändert werden soll. Maskierung wird von einem rop4 mit dem Wert 0xAACC ausgewählt. Die Zieloberfläche ist nicht betroffen, wenn die Maske 0 ist.
Die Maske ist groß genug, um das Zielrechteck abzudecken.
Wenn der Wert dieses Parameters NULL ist und für den rop4 eine Maske erforderlich ist, wird die implizite Maske im Pinsel verwendet. Wenn eine Maske erforderlich ist, setzt psoMask die implizite Maske im Pinsel außer Kraft.
pco
Zeiger auf eine CLIPOBJ-Struktur . Die CLIPOBJ_Xxx-Dienstroutinen werden bereitgestellt, um den Clipbereich als Eine Reihe von Rechtecken aufzulisten. Diese Enumeration schränkt den Bereich des Ziels ein, der geändert wird. Wann immer möglich, vereinfacht GDI den Ausschnitt; Beispielsweise wird diese Funktion nie mit einem einzelnen Clippingrechteck aufgerufen. GDI klammert das Zielrechteck aus, bevor diese Funktion aufgerufen wird, sodass zusätzliches Ausschneiden nicht erforderlich ist.
pxlo
Zeiger auf eine XLATEOBJ-Struktur , die angibt, wie Farbindizes zwischen der Quell- und Zieloberfläche übersetzt werden sollen.
prclTrg
Zeiger auf eine RECTL-Struktur im Koordinatensystem der Zieloberfläche, die den zu ändernden Bereich definiert. Das Rechteck wird durch zwei Punkte definiert; oben links und unten rechts. Der untere und rechte Rand dieses Rechtecks sind nicht Teil der Bitblockübertragung, was bedeutet, dass das Rechteck unten rechts exklusiv ist.
EngBitBlt wird nie mit einem leeren Zielrechteck aufgerufen. Die beiden Punkte, die das Rechteck definieren, sind immer gut sortiert.
pptlSrc
Zeiger auf eine POINTL-Struktur , die die obere linke Ecke des Quellrechtecks definiert, wenn eine Quelle vorhanden ist. Wenn keine Quelle vorhanden ist, sollte der Treiber diesen Parameter ignorieren.
pptlMask
Zeiger auf eine POINTL-Struktur, die definiert, welches Pixel in der Maske der oberen linken Ecke des Zielrechtecks entspricht. Wenn in psoMask keine Maske angegeben ist, sollte der Treiber diesen Parameter ignorieren.
pbo
Zeiger auf die BRUSHOBJ-Struktur , die zum Definieren des Musters für die Bitblockübertragung verwendet werden soll. Die BRUSHOBJ_pvGetRbrush-Dienstroutine von GDI ruft die Realisierung des Pinsels des Geräts ab. Der Treiber kann diesen Parameter ignorieren, wenn der rop4-Parameter kein Muster erfordert.
pptlBrush
Zeiger auf eine POINTL-Struktur , die den Ursprung des Pinsels auf der Zieloberfläche definiert. Das obere linke Pixel des Pinsels wird an dieser Stelle ausgerichtet, und der Pinsel wiederholt sich entsprechend seinen Abmessungen. Ignorieren Sie diesen Parameter, wenn der rop4-Parameter kein Muster erfordert.
[in] rop4
Stellt einen Rastervorgang dar, der definiert, wie die Masken-, Muster-, Quell- und Zielpixel kombiniert werden, um ein Ausgabepixel auf die Zieloberfläche zu schreiben.
Hierbei handelt es sich um einen quaternären Rastervorgang, der eine natürliche Erweiterung des üblichen ternären Rop3-Vorgangs ist. Ein Rop4 hat 16 relevante Bits, die den 8 definierenden Bits eines Rop3 ähneln. (Die anderen redundanten Bits des Rop3 werden ignoriert.) Die einfachste Möglichkeit, einen Rop4 zu implementieren, besteht darin, seine 2 Bytes separat zu berücksichtigen. Das untere Byte gibt ein Rop3 an, das überall berechnet werden soll, wo die Maske 1 ist. Das hohe Byte gibt einen Rop3 an, der berechnet und angewendet werden kann, wo die Maske 0 ist.
Rückgabewert
Der Rückgabewert ist TRUE , wenn die Funktion erfolgreich ist. Andernfalls ist es FALSE, und ein Fehlercode wird protokolliert.
Hinweise
Wenn die Oberfläche eines Geräts als Bitmap im Standardformat organisiert ist, kann der Treiber anfordern, dass GDI die Bitblockübertragung durch Aufruf von EngBitBlt ausführt. Ein Treiber kann dies tun, wenn er über spezielle Hardware verfügt, um einfache Übertragungen schnell zu verarbeiten, aber keine Anrufe mit komplizierten Übertragungen verarbeiten möchte.
Weitere Informationen zu Rastervorgängen finden Sie in der Microsoft Windows SDK-Dokumentation.
Anforderungen
Unterstützte Mindestversion (Client) | Verfügbar in Windows 2000 und höheren Versionen der Windows-Betriebssysteme. |
Zielplattform | Universell |
Header | winddi.h (einschließlich Winddi.h) |
Bibliothek | Win32k.lib |
DLL | Win32k.sys |