mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-09 04:58:04 +02:00
[win32] remove ignore_operators flag from win32 printing surface
Remove the ignore_operators fallback-avoiding workaround; if apps want that same behaviour, they'll have to implement it themselves by taking care when calling cairo_set_operator().
This commit is contained in:
parent
b12ed375cf
commit
61ba63f3a0
3 changed files with 6 additions and 18 deletions
|
|
@ -147,11 +147,10 @@ _cairo_win32_printing_surface_analyze_operation (cairo_win32_surface_t *surface,
|
||||||
op == CAIRO_OPERATOR_CLEAR)
|
op == CAIRO_OPERATOR_CLEAR)
|
||||||
return CAIRO_STATUS_SUCCESS;
|
return CAIRO_STATUS_SUCCESS;
|
||||||
|
|
||||||
/* If IGNORE_OPERATORS was set, then we pretend everything is
|
/* If the operation is anything other than CLEAR, SOURCE, or
|
||||||
* OVER/SOURCE. Otherwise, we go to fallback.
|
* OVER, we have to go to fallback.
|
||||||
*/
|
*/
|
||||||
if (!(surface->flags & CAIRO_WIN32_SURFACE_IGNORE_OPERATORS) &&
|
if (op != CAIRO_OPERATOR_OVER)
|
||||||
op != CAIRO_OPERATOR_OVER)
|
|
||||||
return CAIRO_INT_STATUS_UNSUPPORTED;
|
return CAIRO_INT_STATUS_UNSUPPORTED;
|
||||||
|
|
||||||
/* CAIRO_OPERATOR_OVER is only supported for opaque patterns. If
|
/* CAIRO_OPERATOR_OVER is only supported for opaque patterns. If
|
||||||
|
|
@ -1084,8 +1083,6 @@ _cairo_win32_printing_surface_set_paginated_mode (void *abstract_surface,
|
||||||
/**
|
/**
|
||||||
* cairo_win32_printing_surface_create:
|
* cairo_win32_printing_surface_create:
|
||||||
* @hdc: the DC to create a surface for
|
* @hdc: the DC to create a surface for
|
||||||
* @ignore_operators: whether operators other than CLEAR and OVER
|
|
||||||
* should be treated as SOURCE
|
|
||||||
*
|
*
|
||||||
* Creates a cairo surface that targets the given DC. The DC will be
|
* Creates a cairo surface that targets the given DC. The DC will be
|
||||||
* queried for its initial clip extents, and this will be used as the
|
* queried for its initial clip extents, and this will be used as the
|
||||||
|
|
@ -1097,13 +1094,10 @@ _cairo_win32_printing_surface_set_paginated_mode (void *abstract_surface,
|
||||||
* provide correct complex renderinf behaviour; show_page() and
|
* provide correct complex renderinf behaviour; show_page() and
|
||||||
* associated methods must be used for correct output.
|
* associated methods must be used for correct output.
|
||||||
*
|
*
|
||||||
* If ignore_operators is TRUE, the rendering may be incorrect;
|
|
||||||
* however, the chances of hitting fallback code are much reduced.
|
|
||||||
*
|
|
||||||
* Return value: the newly created surface
|
* Return value: the newly created surface
|
||||||
**/
|
**/
|
||||||
cairo_surface_t *
|
cairo_surface_t *
|
||||||
cairo_win32_printing_surface_create (HDC hdc, cairo_bool_t ignore_operators)
|
cairo_win32_printing_surface_create (HDC hdc)
|
||||||
{
|
{
|
||||||
cairo_win32_surface_t *surface;
|
cairo_win32_surface_t *surface;
|
||||||
RECT rect;
|
RECT rect;
|
||||||
|
|
@ -1155,8 +1149,6 @@ cairo_win32_printing_surface_create (HDC hdc, cairo_bool_t ignore_operators)
|
||||||
|
|
||||||
surface->flags = _cairo_win32_flags_for_dc (surface->dc);
|
surface->flags = _cairo_win32_flags_for_dc (surface->dc);
|
||||||
surface->flags |= CAIRO_WIN32_SURFACE_FOR_PRINTING;
|
surface->flags |= CAIRO_WIN32_SURFACE_FOR_PRINTING;
|
||||||
if (ignore_operators)
|
|
||||||
surface->flags |= CAIRO_WIN32_SURFACE_IGNORE_OPERATORS;
|
|
||||||
surface->clip_saved_dc = 0;
|
surface->clip_saved_dc = 0;
|
||||||
|
|
||||||
_cairo_win32_printing_surface_init_ps_mode (surface);
|
_cairo_win32_printing_surface_init_ps_mode (surface);
|
||||||
|
|
|
||||||
|
|
@ -108,11 +108,6 @@ enum {
|
||||||
|
|
||||||
/* Whether we can use GradientFill rectangles with this surface */
|
/* Whether we can use GradientFill rectangles with this surface */
|
||||||
CAIRO_WIN32_SURFACE_CAN_RECT_GRADIENT = (1<<6),
|
CAIRO_WIN32_SURFACE_CAN_RECT_GRADIENT = (1<<6),
|
||||||
|
|
||||||
/* If we should treat all operators other than CLEAR and OVER
|
|
||||||
* like SOURCE to avoid hitting fallback. Ignored except
|
|
||||||
* for printing. */
|
|
||||||
CAIRO_WIN32_SURFACE_IGNORE_OPERATORS = (1<<7)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
cairo_status_t
|
cairo_status_t
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,4 @@
|
||||||
|
/* -*- Mode: c; tab-width: 8; c-basic-offset: 4; indent-tabs-mode: t; -*- */
|
||||||
/* cairo - a vector graphics library with display and print output
|
/* cairo - a vector graphics library with display and print output
|
||||||
*
|
*
|
||||||
* Copyright © 2005 Red Hat, Inc
|
* Copyright © 2005 Red Hat, Inc
|
||||||
|
|
@ -48,7 +49,7 @@ cairo_public cairo_surface_t *
|
||||||
cairo_win32_surface_create (HDC hdc);
|
cairo_win32_surface_create (HDC hdc);
|
||||||
|
|
||||||
cairo_public cairo_surface_t *
|
cairo_public cairo_surface_t *
|
||||||
cairo_win32_printing_surface_create (HDC hdc, cairo_bool_t ignore_operators);
|
cairo_win32_printing_surface_create (HDC hdc);
|
||||||
|
|
||||||
cairo_public cairo_surface_t *
|
cairo_public cairo_surface_t *
|
||||||
cairo_win32_surface_create_with_ddb (HDC hdc,
|
cairo_win32_surface_create_with_ddb (HDC hdc,
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue