Commit graph

13042 commits

Author SHA1 Message Date
Emmanuele Bassi
a4d5a24d60 Merge branch 'fix-msc-ver-compare' into 'master'
Check if _MSC_VER macro is defined

See merge request cairo/cairo!611
2025-07-14 14:42:26 +00:00
Emmanuele Bassi
6ac5348308 The GDI coordinate system is inverted compared to cairo's here, so the
delta-y value needs to be negated, otherwise glyph runs with non-zero 
y-advances will shift in the wrong direction.

See mozilla bug https://bugzilla.mozilla.org/show_bug.cgi?id=1962816 and
earlier https://bugzilla.mozilla.org/show_bug.cgi?id=454098 where this was
first discovered & fixed, but unfortunately was not upstreamed at that 
time.
2025-07-14 14:41:40 +00:00
Jonathan Kew
503505666f Fix sign of delta-y for ExtTextOutW 2025-07-14 14:41:40 +00:00
Luca Bacci
c7a3e6c519 Check if _MSC_VER macro is defined
Original patch from MSYS2:
https://github.com/msys2/MINGW-packages/blob/36dd8e0bdf/mingw-w64-cairo/0030-ucrt-clang-fixes.patch
2025-07-14 15:53:52 +02:00
Luca Bacci
b9bab3defb Readme: Remove leftover mention of Windows 2000
We support Windows Vista or newer
2025-07-14 15:52:40 +02:00
Uli Schlachter
2f21b3874c Merge branch 'fix-clipping-crash' into 'master'
Fix a crash in the clipping code

See merge request cairo/cairo!622
2025-07-14 13:01:46 +00:00
Uli Schlachter
55cb75c4df Merge branch 'winsdk_26100_fix' into 'master'
Add check for clang to cairo attribute handling code

See merge request cairo/cairo!612
2025-07-05 09:02:29 +00:00
Tim-Philipp Müller
217501df9c Merge branch 'fix-init-once-complete-check' into 'master'
Fix check for InitOnceComplete failure

See merge request cairo/cairo!631
2025-07-02 16:13:29 +00:00
Luca Bacci
76a0978d7b Fix check for InitOnceComplete failure
...also include <windows.h>

Fixes ff4f2f43
2025-07-02 13:26:00 +02:00
Ryan VanderMeulen
ef42ed0ec8 Add check for clang to cairo attribute handling code 2025-07-01 12:14:08 -04:00
Tim-Philipp Müller
0bf0265009 Merge branch 'compiler-features' into 'master'
Rework compiler features detection

See merge request cairo/cairo!627
2025-07-01 12:32:05 +00:00
Tim-Philipp Müller
b09fe42db5 Merge branch 'ci-update-for-removal-of-old-intel-mac-runners' into 'master'
ci: remove macos job that used ancient intel mac mini runners

See merge request cairo/cairo!630
2025-06-25 11:00:33 +00:00
Tim-Philipp Müller
1fa0aebad1 ci: remove macos job that used ancient intel mac mini runners
The old intel mac mini runners are being retired and are no
longer available.

A job that uses the new arm64 mac runners will be added in !498.
2025-06-25 11:14:17 +01:00
Tim-Philipp Müller
abb37e2d02 Merge branch 'fixes' into 'master'
Win32: Fix init once condition

See merge request cairo/cairo!628
2025-06-19 09:03:09 +00:00
Luca Bacci
d4f1ba74d0 Win32: Fix init once condition
Fixes !626
2025-06-19 10:15:37 +02:00
Tim-Philipp Müller
3ffb6d5c07 Merge branch 'win32-fixes' into 'master'
Win32 Fixes

Closes #897

See merge request cairo/cairo!626
2025-06-16 17:15:07 +00:00
Luca Bacci
51be2591fe Meson: Define _CRT_SECURE_NO_WARNINGS when compiling with MSVC 2025-06-16 19:10:07 +02:00
Luca Bacci
481c6c78bd Meson: Suppress warning C5286 on MSVC
This happens when converting _cairo_status to _cairo_int_status:

  warning C5286: implicit conversion from enum type '_cairo_int_status' to
  enum type '_cairo_status'; use an explicit cast to silence this warning
2025-06-16 19:01:58 +02:00
Luca Bacci
cc51930a32 Meson: Add arguments for both C and C++ compilation
C++ compilation is used on Windows
2025-06-16 18:58:00 +02:00
Luca Bacci
6989158f4c Drop support for very old GCC versions
They don't support C11 anyway. Additionally, CLang defines a very
conservative __GNUC__ value (which is also configurable via the
-fgnuc-version= command-line argument)
2025-06-16 18:52:39 +02:00
Luca Bacci
ff4f2f4301 Win32: Implement init_once with InitOnceBeginInitialize / InitOnceComplete 2025-06-16 18:50:13 +02:00
Luca Bacci
ec2e879e0d Meson: Add comment about atomic ops on Windows 2025-06-16 18:49:36 +02:00
Luca Bacci
ee554c8610 DWrite: Fix switch for grid-fit mode
Ooops!
2025-06-16 17:52:15 +02:00
Luca Bacci
d9a11c3736 Win32: Use cairo_atomic_once_t to initialize TLS slot
We were using the double-checked locking pattern, which requires
memory fences to be safe on architectures with weak memory
guarantess (e.g ARM64)

Fixes https://gitlab.freedesktop.org/cairo/cairo/-/issues/897
2025-06-16 17:51:53 +02:00
Matthias Clasen
1d3347a690 Fix a crash in the clipping code
When cairo_is_all_clipped return true, we must not attempt
to change any of the clip fields, since it is pointing to
the static const __cairo_clip_all.

Moving the check for ->region into the 'if' is fine, since
it will always be NULL for _cairo_clip_all.

This was causing a crash in inkscape, see
https://gitlab.com/inkscape/inkscape/-/issues/5631
2025-05-28 18:12:16 -04:00
Uli Schlachter
a3ca983ec3 Merge branch 'cm/fix-uaf-warning' into 'master'
xcb: Fix a -Wuse-after-free=3 warning with GCC

Closes #898

See merge request cairo/cairo!623
2025-05-27 16:02:14 +00:00
correctmost
a1c31f5ed5 xcb: Fix a -Wuse-after-free=3 warning with GCC
Closes #898
2025-05-26 21:20:15 -04:00
Uli Schlachter
2e2080247f Merge branch 'fix-symbol-interposition' into 'master'
Fix cairo-fdr and cairo-trace

See merge request cairo/cairo!608
2025-05-01 05:57:15 +00:00
Tim-Philipp Müller
7fd0cd0a9c Merge branch 'alatiera/android-image-test' into 'master'
ci: update the android CI image

See merge request cairo/cairo!614
2025-03-26 11:45:58 +00:00
Tim-Philipp Müller
20503ecec3 ci: drop placeholder-job tags from image jobs 2025-03-26 10:24:11 +00:00
Jordan Petridis
8dc09a1c48 ci: Update rust version 2025-03-26 10:18:13 +00:00
Jordan Petridis
0826837e4a ci: Install android toolchain into our own image
Previously we were using a prebuilt image from
gstreamer, but now we can copy what's needed and build
our own image with ci-templates.
2025-03-26 10:18:13 +00:00
Jordan Petridis
3a3771f862 ci: Update the android CI image
Switch to using the gstreamer/cerbero image that
has NDK installed, until we add the android toolchain
to our image.

Followup to 92dde935d4
2025-03-26 10:18:13 +00:00
Jordan Petridis
6dd779677e build: Update wrap files 2025-03-26 10:18:13 +00:00
Jordan Petridis
8c67cb8e2d ci: Move the android cross file into the repository
Avoid having the txt file be inline bash which is inline
in yaml in the ci config.
2025-03-26 10:18:13 +00:00
Tim-Philipp Müller
58578a2f48 Merge branch 'ci-windows-image-to-gstreamer-1.26' into 'master'
ci: update windows image

See merge request cairo/cairo!615
2025-03-12 20:09:45 +00:00
Tim-Philipp Müller
e4add32e19 ci: mark fedora image job as "placeholder job"
Which will make it start faster, and 99% of the time it
will finish in seconds.
2025-03-12 18:19:13 +01:00
Tim-Philipp Müller
1e2e54123d ci: update windows image 2025-03-12 18:06:31 +01:00
Emmanuele Bassi
c1bc9cd321 Merge branch 'release-1-18-4' into 'master'
Release Cairo 1.18.4

See merge request cairo/cairo!613
2025-03-08 14:05:21 +00:00
Emmanuele Bassi
22206ba5dd Post-release version bump to 1.18.5 2025-03-08 13:23:25 +00:00
Emmanuele Bassi
4541e0cd3a Release Cairo 1.18.4 2025-03-08 13:23:25 +00:00
Emmanuele Bassi
92dde935d4 ci: Allow failure on the Android job
The CI image we depend on is gone; until we can get something back, this
CI job should not block other work.
2025-03-08 13:23:25 +00:00
Emmanuele Bassi
bdd12408a7 Merge branch 'dwrite-coverage-map' into 'master'
DWrite: Get glyph coverage using IDWriteGlyphRunAnalysis

See merge request cairo/cairo!602
2025-02-21 17:32:28 +00:00
Luca Bacci
4d141f08fb DWrite: Add fallback for OS versions up to Windows 8
IDWriteGlyphRunAnalysis supports gray-scale antialiasing only when
created via IDWriteFactory2 (and newer), introduced in Windows 8.1

Fallback to using DIrect2D on A8 targets when IDWriteFactory2 is
not available.
2025-02-10 17:18:46 +01:00
Luca Bacci
78fca779ba DWrite: Get glyph coverage using IDWriteGlyphRunAnalysis 2025-02-10 17:18:40 +01:00
Uli Schlachter
b35a9ead97 Fix cairo-fdr and cairo-trace
This partially reverts commit ba4d5fbd5 from MR !343 which asked for
hidden symbols everywhere. cairo-fdr and cairo-trace explicitly try to
interpose existing symbols. Changing them to hidden symbols breaks these
tools.

See: https://gitlab.freedesktop.org/cairo/cairo/-/issues/882#note_2759005
Signed-off-by: Uli Schlachter <psychon@znc.in>
2025-01-31 18:10:47 +01:00
Emmanuele Bassi
3bfe1eed02 Merge branch 'meson' into 'master'
Minor Meson cleanups

See merge request cairo/cairo!584
2025-01-30 09:31:59 +00:00
Emmanuele Bassi
fe87f1c3fb Merge branch 'win32-cleanup' into 'master'
Win32 cleanup

See merge request cairo/cairo!605
2025-01-30 09:29:01 +00:00
Emmanuele Bassi
e2a52c0870 Merge branch 'dwrite-font-variations' into 'master'
DWrite: Add support for font variations

Closes #877

See merge request cairo/cairo!601
2025-01-30 09:26:49 +00:00
Emmanuele Bassi
ed7b0a54b9 Merge branch 'dwrite-fix-warnings' into 'master'
DWrite: Fix warnings

See merge request cairo/cairo!603
2025-01-30 09:25:57 +00:00