Commit graph

13056 commits

Author SHA1 Message Date
Adrian Johnson
90e6f2a9f7 DWrite: Replace manual or missing ref counting with RefPtr 2022-04-19 19:58:44 +09:30
Adrian Johnson
3998a79cc2 DWrite: check 'head' table as well as 'name' when comparing fonts
There may be different versions of fonts with the same name. As an
additional check, compare the 'head' table wich contains the checksum
for the font.

Also, load the DWrite tables directly to avoid the memcpy in
load_truetype_table.
2022-04-19 19:58:44 +09:30
Adrian Johnson
2b355954a8 DWrite: ensure all private functions are static 2022-04-19 19:58:44 +09:30
Adrian Johnson
655a8a40a7 Dwrite glyph_path fails when the font matrix is not a positive uniform scale 2022-04-19 19:58:44 +09:30
Adrian Johnson
75f0ecb34e Fix Win64 compile warning 2022-04-19 19:58:44 +09:30
Adrian Johnson
1cc23206bd Fix scaled_glyph hash lookup on Win64
This was failing due to sizeof(uintptr_t) != sizeof(long) on Win64
2022-04-19 19:58:44 +09:30
Adrian Johnson
6454f65ec5 Allow the C++ code in dwrite-font to use the debug functions 2022-04-19 19:58:44 +09:30
Adrian Johnson
b4014daedf DWrite: Use twin font if default font not found
If the default font is not found, return CAIRO_INT_STATUS_UNSUPPORTED
to cause _cairo_toy_font_face_create_impl_face to create the Twin user
font fallback.
2022-04-19 19:58:44 +09:30
Adrian Johnson
672c92e19c Fix DWrite error handling
- Fix a few cases of incorrect error handling
- Use a consistent style and variable names for errors
2022-04-19 19:58:40 +09:30
Adrian Johnson
d2f65a7306 Dwrite: implement is_synthetic() 2022-04-19 19:56:32 +09:30
Adrian Johnson
0321ac99a4 cairoint.h: update some comments 2022-04-19 19:48:46 +09:30
Uli Schlachter
0e1cffe364 Merge branch 'ctype' into 'master'
Replace use of ctype functions with internal version where only ASCII chars are used

See merge request cairo/cairo!310
2022-04-15 10:46:05 +00:00
Adrian Johnson
5b18aeffbb Replace use of ctype functions with internal version where only ASCII chars are used
In !309 Taylor R Campbell found a number of instances of ctype
incorrectly passed a signed char. In many cases, where only ASCII
characters are used, the code should have been using the cairo version
of the ctype function to avoid locale issues.
2022-04-09 22:08:57 +09:30
Uli Schlachter
20a54465c5 Merge branch 'issue-537' into 'master'
Add CAIRO_DEBUG_PS_NO_DATE env var to remove date from PS output

Closes #537

See merge request cairo/cairo!308
2022-04-05 15:48:53 +00:00
Adrian Johnson
092da8a997 Add CAIRO_DEBUG_PS_NO_DATE env var to remove date from PS output
Fixes #537
2022-04-05 20:04:47 +09:30
Adrian Johnson
0e284245d7 Check font status in show_text_glyphs
to prevent asserting in _cairo_scaled_font_freeze_cache()
2022-04-05 17:38:13 +09:30
Uli Schlachter
688164abaa Merge branch 'issue-551' into 'master'
Fix type1-subset indexing

Closes #551

See merge request cairo/cairo!306
2022-04-03 11:21:19 +00:00
Adrian Johnson
ff4fd6f960 Fix type1-subset indexing
Fixes #551
2022-04-03 20:06:10 +09:30
Uli Schlachter
521a3a7bdb Merge branch 'doxygen-typos' into 'master'
Fix typos in doxygen and source comments

See merge request cairo/cairo!304
2022-03-29 13:46:00 +00:00
luz paz
25d588e6c0 Fix typos in doxygen and source comments 2022-03-28 16:43:03 -04:00
Uli Schlachter
4931e44f23 Merge branch 'dwrite-toy-font' into 'master'
Ensure DWrite toy fonts can not fail if font name not found

See merge request cairo/cairo!302
2022-03-21 19:13:11 +00:00
Adrian Johnson
136bf8c191 Ensure DWrite toy fonts can not fail if font name not found 2022-03-22 04:54:05 +10:30
Uli Schlachter
359afa3e88 Merge branch 'meson-fixes' into 'master'
autotools: Dist some files required for meson

See merge request cairo/cairo!303
2022-03-20 17:32:42 +00:00
David King
93f13ced85 autotools: Dist some files required for meson
https://gitlab.freedesktop.org/cairo/cairo/-/issues/547
2022-03-20 16:37:49 +00:00
Emmanuele Bassi
ad3bace256 Post-release version bump to 1.17.7 2022-03-18 18:49:24 +00:00
Emmanuele Bassi
b43e7c6f3c Release Cairo 1.17.6 (snapshot) 2022-03-18 18:40:07 +00:00
Emmanuele Bassi
8344dc1136 build: Avoid SSHing into a host during release checks
We really don't need to have SSH access if we're just checking for the
integrity of the next release. We can simply check if a specially
crafted file linking to the latest release is present.
2022-03-18 18:40:07 +00:00
Uli Schlachter
63973958bc Add an rgb24 ref image for alpha similar
This commit copies the current alpha-similar.image.rgb24.out.png to
alpha-similar.rgb24.ref.png to make the test pass.

This failure goes back to commits 6647511 / 049060 which changed the
image comparison in the test suite. Previously, transparent "nothing"
and black compared equal, but said commits fixed that. Thus, having a
special reference image with black instead of transparency is the right
fix.

Signed-off-by: Uli Schlachter <psychon@znc.in>
2022-03-13 16:14:48 +01:00
Adrian Johnson
1e5a98b9cb Merge branch 'malloc-hook2' into 'master'
Fix warning in malloc-stats.c

See merge request cairo/cairo!297
2022-03-12 01:24:14 +00:00
Adrian Johnson
ec54603366 Merge branch 'issue-263-2' into 'master'
Fix font count in Inkscape's win32 pdf export

See merge request cairo/cairo!296
2022-03-09 09:36:35 +00:00
Adrian Johnson
9bb2036369 Fix warning
../util/malloc-stats.c:295:1: warning: no previous declaration for ‘malloc_stats’ [-Wmissing-declarations]
2022-03-09 19:43:48 +10:30
Nathan Lee
82119ec2f3 Fix font count in Inkscape's win32 pdf export
Fix win32 hash comparison, where unsigned long is shorter than
uintptr_t. Follow-up to 9fbf427548.
2022-03-09 12:43:42 +11:00
Adrian Johnson
777d35fa87 Merge branch 'malloc-hook' into 'master'
Replace deprecated malloc_hook

See merge request cairo/cairo!295
2022-03-08 21:22:25 +00:00
Adrian Johnson
d2f1827cde Replace deprecated malloc_hook 2022-03-09 06:58:28 +10:30
Uli Schlachter
6a81bf8201 script: Implement device finish
Before this commit, calling cairo_device_finish() on a cairo-script
context did not actually do anything in the backend. Thus, it was
possible to continue emitting output on the script context even after it
was finished, which means that API user had no way of preventing
use-after-free bugs in their write callback. Bug 277 triggers this via
detaching a snapshot, but I guess one could also simply continue drawing
to a script surface.

This commit implements the finish function by closing the underlying
stream.

However, that was not enough to fix things. This commit also turns
writing into a stream into a no-op after the stream was closed.

I checked that the new test case actually fails before this commit and
is indeed fixed by it.

Fixes: https://gitlab.freedesktop.org/cairo/cairo/-/issues/277
Signed-off-by: Uli Schlachter <psychon@znc.in>
2022-03-08 18:11:23 +01:00
Adrian Johnson
1c0a9aac01 Merge branch 'dwrite-docs' into 'master'
DWrite font docs

See merge request cairo/cairo!294
2022-03-07 07:40:19 +00:00
Adrian Johnson
989d368dc5 DWrite font docs 2022-03-05 16:56:56 +10:30
Adrian Johnson
135327c112 Merge branch 'win32-color-fonts' into 'master'
Windows color fonts

See merge request cairo/cairo!244
2022-03-05 03:54:58 +00:00
Adrian Johnson
5018120af0 Update ref images 2022-03-05 11:51:55 +10:30
Uli Schlachter
1fee5ac985 Merge branch 'cairo542' into 'master'
Re-enable windows backends in autotool

Closes #542

See merge request cairo/cairo!291
2022-03-01 11:03:30 +00:00
Adrian Johnson
ddac44db5d On vector surfaces render color glyphs in the fallback resolution 2022-03-01 21:04:22 +10:30
Nathan Lee
baf8a8cfc7 Re-enable windows backends in autotool
AC_LANG_SOURCE only takes one argument, ignored the others.

Closes #542
2022-03-01 20:54:16 +11:00
Emmanuele Bassi
1195977d16 Merge branch 'remove-unused-sym' into 'master'
build: Remove unused DirectFB bits on Windows

See merge request cairo/cairo!288
2022-02-27 19:12:07 +00:00
Adrian Johnson
fa3a1bca7d Remove the extra API from the mozilla DWrite 2022-02-27 20:40:52 +10:30
Adrian Johnson
5635c75a2c dwrite: add color font support 2022-02-27 20:20:24 +10:30
Adrian Johnson
fdf2a9b4c0 dwrite_font param is not used 2022-02-27 15:44:58 +10:30
Adrian Johnson
7e644409ea Fix dwrite toy fonts 2022-02-27 15:44:58 +10:30
Adrian Johnson
fa76ebec03 Fix some warnings and use _cairo_malloc where applicable 2022-02-27 15:44:58 +10:30
Adrian Johnson
28ce8463af Fix check doc errors 2022-02-27 15:44:58 +10:30
Adrian Johnson
ed36d85bf6 Fix msvc c++ compile error 2022-02-27 15:44:58 +10:30