Dominique Leuenberger
279a1a0bbb
- Update to version 1.17.8: + In a continuing effort to reduce the amount of legacy code, and increase the long-term maintainability of cairo, the following backends have been removed: - GL and GLES drawing + Additionally, cairo's Autotools build system has been removed; from now on, cairo will only support the Meson build system. While the end result should be identical, further testing is appreciated. + In this snapshot, cairo gained support for rendering COLRv1 fonts, and rendering SVG and COLRv1 fonts with custom palettes. + Support for macOS and Windows has been improved, with lots of build and bug fixes. + Lots of safety issues have been fixed, with array bounds checking and plugging memory leaks, as well as fixes for bugs identified via fuzzying. + This is going to be the last snapshot of the 1.17 development cycle; we only expect minor bug fixing and improvements until the 1.18.0 release. - Switch to meson buildsystem: Add meson BuildRequires and macros. - Update Source Url to new home. - Drop build_gl_backend define and conditional pkgconfig(egl) and pkgconfig(gl) BuildRequires: No longer supported. - Add generic c++_compiler and c_compiler BuildRequires: New dependencies. - Drop 0001-Set-default-LCD-filter-to-FreeType-s-default.patch: Fixed upstream. - Add upstream bug fix patches: + cairo-1.17.8-fix-tee-compilation.patch + cairo-1.17.8-ft-font-missing-glyph.patch OBS-URL: https://build.opensuse.org/request/show/1072675 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/cairo?expand=0&rev=154
111 lines
3.8 KiB
Diff
111 lines
3.8 KiB
Diff
From 5e42a5277eddafd312a73e355d7775a4401dae4e Mon Sep 17 00:00:00 2001
|
|
From: Emmanuele Bassi <ebassi@gnome.org>
|
|
Date: Fri, 3 Feb 2023 15:40:12 +0100
|
|
Subject: [PATCH] tee: Fix cairo wrapper functions
|
|
|
|
Follow-up to !391 to apply the same changes to the (disabled by default)
|
|
tee surface.
|
|
|
|
Fixes: #634
|
|
---
|
|
src/cairo-tee-surface.c | 24 ++++++++++++++----------
|
|
1 file changed, 14 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/src/cairo-tee-surface.c b/src/cairo-tee-surface.c
|
|
index 7a94c9bca..4994a5a60 100644
|
|
--- a/src/cairo-tee-surface.c
|
|
+++ b/src/cairo-tee-surface.c
|
|
@@ -220,12 +220,12 @@ _cairo_tee_surface_paint (void *abstract_surface,
|
|
num_slaves = _cairo_array_num_elements (&surface->slaves);
|
|
slaves = _cairo_array_index (&surface->slaves, 0);
|
|
for (n = 0; n < num_slaves; n++) {
|
|
- status = _cairo_surface_wrapper_paint (&slaves[n], op, source, clip);
|
|
+ status = _cairo_surface_wrapper_paint (&slaves[n], op, source, 0, clip);
|
|
if (unlikely (status))
|
|
return status;
|
|
}
|
|
|
|
- return _cairo_surface_wrapper_paint (&surface->master, op, source, clip);
|
|
+ return _cairo_surface_wrapper_paint (&surface->master, op, source, 0, clip);
|
|
}
|
|
|
|
static cairo_int_status_t
|
|
@@ -244,13 +244,17 @@ _cairo_tee_surface_mask (void *abstract_surface,
|
|
slaves = _cairo_array_index (&surface->slaves, 0);
|
|
for (n = 0; n < num_slaves; n++) {
|
|
status = _cairo_surface_wrapper_mask (&slaves[n],
|
|
- op, source, mask, clip);
|
|
+ op, source, 0,
|
|
+ mask, 0,
|
|
+ clip);
|
|
if (unlikely (status))
|
|
return status;
|
|
}
|
|
|
|
return _cairo_surface_wrapper_mask (&surface->master,
|
|
- op, source, mask, clip);
|
|
+ op, source, 0,
|
|
+ mask, 0,
|
|
+ clip);
|
|
}
|
|
|
|
static cairo_int_status_t
|
|
@@ -274,7 +278,7 @@ _cairo_tee_surface_stroke (void *abstract_surface,
|
|
slaves = _cairo_array_index (&surface->slaves, 0);
|
|
for (n = 0; n < num_slaves; n++) {
|
|
status = _cairo_surface_wrapper_stroke (&slaves[n],
|
|
- op, source,
|
|
+ op, source, 0,
|
|
path, style,
|
|
ctm, ctm_inverse,
|
|
tolerance, antialias,
|
|
@@ -284,7 +288,7 @@ _cairo_tee_surface_stroke (void *abstract_surface,
|
|
}
|
|
|
|
return _cairo_surface_wrapper_stroke (&surface->master,
|
|
- op, source,
|
|
+ op, source, 0,
|
|
path, style,
|
|
ctm, ctm_inverse,
|
|
tolerance, antialias,
|
|
@@ -310,7 +314,7 @@ _cairo_tee_surface_fill (void *abstract_surface,
|
|
slaves = _cairo_array_index (&surface->slaves, 0);
|
|
for (n = 0; n < num_slaves; n++) {
|
|
status = _cairo_surface_wrapper_fill (&slaves[n],
|
|
- op, source,
|
|
+ op, source, 0,
|
|
path, fill_rule,
|
|
tolerance, antialias,
|
|
clip);
|
|
@@ -319,7 +323,7 @@ _cairo_tee_surface_fill (void *abstract_surface,
|
|
}
|
|
|
|
return _cairo_surface_wrapper_fill (&surface->master,
|
|
- op, source,
|
|
+ op, source, 0,
|
|
path, fill_rule,
|
|
tolerance, antialias,
|
|
clip);
|
|
@@ -361,7 +365,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface,
|
|
for (n = 0; n < num_slaves; n++) {
|
|
memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs);
|
|
status = _cairo_surface_wrapper_show_text_glyphs (&slaves[n], op,
|
|
- source,
|
|
+ source, 0,
|
|
utf8, utf8_len,
|
|
glyphs_copy, num_glyphs,
|
|
clusters, num_clusters,
|
|
@@ -374,7 +378,7 @@ _cairo_tee_surface_show_text_glyphs (void *abstract_surface,
|
|
|
|
memcpy (glyphs_copy, glyphs, sizeof (cairo_glyph_t) * num_glyphs);
|
|
status = _cairo_surface_wrapper_show_text_glyphs (&surface->master, op,
|
|
- source,
|
|
+ source, 0,
|
|
utf8, utf8_len,
|
|
glyphs_copy, num_glyphs,
|
|
clusters, num_clusters,
|
|
--
|
|
GitLab
|
|
|
|
|