cairo/src/win32
Vasily Galkin 0cb7aad2a3 win32: CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH and other argb32 flags set+check
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.
2018-05-31 17:29:26 -07:00
..
cairo-win32-debug.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-win32-device.c win32: CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH and other argb32 flags set+check 2018-05-31 17:29:26 -07:00
cairo-win32-display-surface.c win32: Introduce new flag to mark surfaces that support solid brush drawing 2018-05-31 17:24:50 -07:00
cairo-win32-font.c Use _cairo_malloc instead of malloc 2018-05-07 16:35:51 -07:00
cairo-win32-gdi-compositor.c win32: CAIRO_WIN32_SURFACE_CAN_RGB_BRUSH and other argb32 flags set+check 2018-05-31 17:29:26 -07:00
cairo-win32-printing-surface.c win32: Introduce new flag to mark surfaces that support solid brush drawing 2018-05-31 17:24:50 -07:00
cairo-win32-private.h win32: Introduce new flag to mark surfaces that support solid brush drawing 2018-05-31 17:24:50 -07:00
cairo-win32-surface.c Add CAIRO_STATUS_WIN32_GDI_ERROR for GDI errors 2016-03-26 22:18:05 +10:30
cairo-win32-system.c win32: Rebase on the new compositor infrastructure 2012-02-15 14:37:11 +00:00