mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-28 22:38:14 +02:00
This is part of a patch series to speed 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 initial patch presents only private header changes without changing any implementation logic. The big problem with argb32 surfaces and GDI is that GDI is unable to correctly set the alpha channel when using operations other than BitBlt and AlphaBlend. To solve this, a CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH flag is introduced in this commit to be mark surfaces that correctly handle such brushes - essentially all surface types except argb32. The _cairo_win32_flags_for_dc() call receives a new argument that is used to calculate the flag. |
||
|---|---|---|
| .. | ||
| 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 | ||