mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-22 10:18:10 +02:00
This belongs to a patch series that speeds up CAIRO_OPERATOR_SOURCE when used to copy data to an argb32 cairo surface corresponding to a win32 dc from a "backbuffer" - DibSection-based cairo surface created with cairo_surface_create_similar(). This patch introduces checks to ensure that no solid brush GDI operations are attempted when using argb32 surfaces. Doing this allows enabling usage of the GDI compositor when these surfaces are in use. To make these checks work, _cairo_win32_flags_for_dc disables STRETCHBLT, STRETCHDIB and RGB_BRUSH in the argb32 flag. _cairo_win32_flags_for_dc() is also refactored to make the distinction between rgb24 and argb32 more readable. All logic & flags for rgb24 surfaces are retained, except for the addition of CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH. The logic of forbidding AlphaBlend on display surfaces is also kept as is without investigation. |
||
|---|---|---|
| .. | ||
| cairo-win32-debug.c | ||
| cairo-win32-device.c | ||
| cairo-win32-display-surface.c | ||
| cairo-win32-font.c | ||
| cairo-win32-gdi-compositor.c | ||
| cairo-win32-printing-surface.c | ||
| cairo-win32-private.h | ||
| cairo-win32-surface.c | ||
| cairo-win32-system.c | ||