DrvTransparentBlt-Funktion (winddi.h)
Die DrvTransparentBlt-Funktion bietet Bitblockübertragungsfunktionen mit Transparenz.
Syntax
BOOL DrvTransparentBlt(
[in, out] SURFOBJ *psoDst,
[in] SURFOBJ *psoSrc,
[in] CLIPOBJ *pco,
[in, optional] XLATEOBJ *pxlo,
[in] RECTL *prclDst,
[in] RECTL *prclSrc,
[in] ULONG iTransColor,
[in] ULONG ulReserved
);
Parameter
[in, out] psoDst
Zeiger auf die SURFOBJ-Struktur , die die Zieloberfläche identifiziert, auf der gezeichnet werden soll.
[in] psoSrc
Zeiger auf die SURFOBJ-Struktur, die die Quelloberfläche der Bitblockübertragung identifiziert.
[in] 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 geänderten Ziels ein. Nach Möglichkeit vereinfacht GDI den Ausschnitt.
[in, optional] pxlo
Zeiger auf eine XLATEOBJ-Struktur , die angibt, wie die Quellfarbindizes zum Schreiben auf die Zieloberfläche übersetzt werden sollen. Wenn pxloNULL ist, ist keine Übersetzung erforderlich.
[in] prclDst
Zeiger auf eine RECTL-Struktur , die den zu ändernden rechteckigen Bereich definiert. Dieses Rechteck wird im Koordinatensystem der Zieloberfläche angegeben und durch zwei Punkte definiert: links oben und unten rechts. Das Rechteck ist unten rechts exklusiv; Das heißt, die unteren und rechten Ränder sind kein Teil der Bitblockübertragung. Die beiden Punkte, die das Rechteck definieren, sind immer gut sortiert.
DrvTransparentBlt wird nie mit einem leeren Zielrechteck aufgerufen.
[in] prclSrc
Zeiger auf eine RECTL-Struktur, die den zu kopierenden rechteckigen Bereich definiert. Dieses Rechteck wird im Koordinatensystem der Quelloberfläche angegeben und durch zwei Punkte definiert: links oben und unten rechts. Die beiden Punkte, die das Rechteck definieren, sind immer gut sortiert.
Das Quellrechteck überschreitet niemals die Grenzen der Quelloberfläche und überragt daher nie die Quelloberfläche.
Dieses Rechteck wird dem zielrechteck zugeordnet, das von prclDst definiert wird. DrvTransparentBlt wird nie mit einem leeren Quellrechteck aufgerufen.
[in] iTransColor
Gibt die physische transparente Farbe im Quelloberflächenformat an. Bei Geräten mit Paletten ist dieser Wert ein Palettenindex. Bei Geräten ohne Paletten ist dieser Wert eine RGB-Farbe im Format, das auf der Quelloberfläche verwendet wird. Wenn das Quelloberflächenformat beispielsweise im RGB-Format 5:6:5 vorliegt, weist der Wert in diesem Parameter ebenfalls dieselbe Form auf.
[in] ulReserved
Reserviert; Dieser Parameter muss auf 0 (null) festgelegt werden.
Rückgabewert
DrvTransparentBlt gibt bei Erfolg TRUE zurück. Andernfalls wird FALSE zurückgegeben.
Hinweise
Optional können Sie die DrvTransparentBlt-Funktion in Grafiktreibern implementieren.
Die Bitblockübertragung mit Transparenz wird zwischen zwei geräteseitig verwalteten Oberflächen oder zwischen einer geräteverwalteten Oberfläche und einer von GDI verwalteten Standardformatbitbitbitte unterstützt. Treiberautoren werden empfohlen, den Fall der Verblutung von Off-Screen-Geräte-Bitmaps im Videospeicher auf andere Oberflächen im Videospeicher zu unterstützen. alle anderen Fälle können engTransparentBlt mit geringen Leistungseinbußen durchgestrichen werden. Der Treiber kann Aufrufe, die geräteseitig verwaltete Oberflächen betreffen, an EngTransparentBlt übertragen.
Alle Pixel auf der Quelloberfläche, die der von iTransColor angegebenen transparenten Farbe entsprechen, werden nicht kopiert. Eine ausführliche Erläuterung der transparenten Fehler finden Sie unter Kopieren von Bitmaps.
Der Treiber wird nie mit überlappenden Quell- und Zielrechtecken auf derselben Oberfläche aufgerufen.
Der Treiber sollte alle nicht verwendeten Bits im Farbschlüsselvergleich ignorieren, z. B. für das bedeutendste Bit, wenn das Bitmapformat 5:5:5 (jeweils fünf Bits rot, grün und blau) ist.
Der Treiber bindet DrvTransparentBlt ein, indem er beim Aufrufen von EngAssociateSurface das flag HOOK_TRANSPARENTBLT festlegt. Wenn der Treiber DrvTransparentBlt eingebunden hat und aufgerufen wird, um einen Vorgang auszuführen, den er nicht unterstützt, sollte der Treiber den Vorgang verarbeiten lassen, indem er die Daten in einem Aufruf von EngTransparentBlt weiterleitet.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | winddi.h (einschließlich Winddi.h) |