Commit graph

7852 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
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
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
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
luz paz
25d588e6c0 Fix typos in doxygen and source comments 2022-03-28 16:43:03 -04:00
Adrian Johnson
136bf8c191 Ensure DWrite toy fonts can not fail if font name not found 2022-03-22 04:54:05 +10:30
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
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
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
989d368dc5 DWrite font docs 2022-03-05 16:56:56 +10:30
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
Adrian Johnson
90ca635472 Import win32 dwrite font backend from
https://hg.mozilla.org/mozilla-central/file/7338d7d940913147f8a1b1e8bd2b25ab255f4373/gfx/cairo/cairo/src

and add to the meson build. I've omitted the
cairo_surface_set_subpixel_antialiasing() API and its use in quartz
and dwrite. Not sure if that is needed.

It compiles. Not tested.
2022-02-27 15:44:58 +10:30
Adrian Johnson
1a799577b2 Merge branch 'issue-526' into 'master'
pdf: ensure urls and filename strings are correctly encoded

Closes #526

See merge request cairo/cairo!266
2022-02-27 03:51:50 +00:00
Christopher Chavez
5e1dd84796 quartz: Fix spelling in comment 2022-02-26 09:17:28 +00:00
Uli Schlachter
1781e59c57 Merge branch 'drop-backends' into 'master'
Remove old backends

See merge request cairo/cairo!285
2022-02-25 15:44:51 +00:00
Emmanuele Bassi
9b9028c160 Drop cairo-vg surface
OpenVG is a failed experiment from 10 years ago, and nobody has been
using the cairo-vg surface in pretty much the same amount of time.
2022-02-25 02:09:58 +00:00
Emmanuele Bassi
fc3437128d Remove cairo-directfb
Nobody cares about DirectFB any more, not even the people that registered
and maintained the DirectFB domain.
2022-02-25 02:03:35 +00:00
Emmanuele Bassi
803afe6edd tanis: Remove cairo-cogl
Cogl's upstream is unmaintained, and has been for the past 6 years.
2022-02-25 01:58:24 +00:00
Emmanuele Bassi
1409079eef Remove cairo-drm
The DRM backend has always been a science experiment, but now it hasn't
been built in more than 10 years, and it's completely broken.
2022-02-25 01:54:29 +00:00
Emmanuele Bassi
64db153c43 Drop OS/2 support
OS/2 support was last built in Cairo 1.12, which was released 10 years
ago.

Additionally, OS/2 is not supported by Meson.
2022-02-25 01:44:57 +00:00
Emmanuele Bassi
81ecff3800 Remove BeOS support
Nobody cares about BeOS in 2022, and it cannot be built with Meson anyway.

Removing the BeOS backend also allows us to drop the dependency on a C++
compiler and simplify the Autotools build considerably by removing all
the extra CXX targets.
2022-02-25 01:39:29 +00:00
Emmanuele Bassi
64ece6d545 Remove Qt surface
It's disabled by default, and unsupported as it depends on Qt4, which
has been EOL since 2015.
2022-02-25 01:19:58 +00:00
John Ralls
2e0075e265 [quartz] Don't use CGContextDrawTiledImage for tiled patterns.
CGContextDrawTiledImage turned up as a significant time-user while
profiling a benchmark created to evaluate
https://gitlab.gnome.org/GNOME/gtk/-/issues/3714. Without this commit
the benchmark is able to perform a mean frame rate of 2.19 frames per
second with a standard deviation of 0.09; with the commit the mean frame
rate is 2.37 fps, s.d. 0.30, both over 15 10-second samples. Student's
t-test reports a 9.8% likelyhood that the two represent the same
distribution.
2022-02-24 17:00:07 -08:00
John Ralls
a502280fcd [quartz] extract function _cairo_quartz_setup_pattern_source
To simplify _cairo_quartz_setup_state.
2022-02-24 17:00:07 -08:00
John Ralls
b6e0f36ee5 [quartz]Cleanup _cairo_quartz_cairo_repeating_surface_pattern_to_quartz 2022-02-24 17:00:07 -08:00
John Ralls
ae320c4d75 [quartz] Use CoreGraphics instead of Qt to write debug png file. 2022-02-24 17:00:07 -08:00
John Ralls
bacbe9bb2d [quartz] Create similar surfaces using a CGLayer for faster drawing. 2022-02-24 17:00:07 -08:00
John Ralls
76e6a0ddf7 [quartz] Remove cached image_surface on quartz surfaces.
Caching doesn't really do anything and removing it provides a 50%
speedup and gets pdf-operators-text to pass on argb32.
2022-02-24 17:00:07 -08:00
John Ralls
64786613ee [quartz] Snapshot CGBitmapContext-mapped surfaces to cache CGImages.
Motivation: Avoid need to recreate CGImages for unchanged surfaces,
an expensive operation, while ensuring that the CGImages are properly
freed and new ones created when the surface does change.

Thanks to Uli Schlacter for suggestion and coding guidance.
2022-02-24 16:59:56 -08:00
Uli Schlachter
4fc72919e1 Merge branch 'mempool-overflow' into 'master'
Fix integer overflows in cairo-mempool

Closes #510

See merge request cairo/cairo!253
2022-02-24 14:35:17 +00:00
Christopher Chavez
04394d5b15 quartz: Fix spelling in comment 2022-02-23 13:12:35 +00:00
Uli Schlachter
2ec0a87403 Merge branch 'develop3' into 'master'
miscellaneous math fixes

See merge request cairo/cairo!280
2022-02-20 12:09:02 +00:00