-
Notifications
You must be signed in to change notification settings - Fork 7
/
NEWS
7546 lines (5743 loc) · 284 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Release 1.15.2 (2015-12-10 Bryce Harrington <[email protected]>)
========================================================================
This release is largely a rollup to include a variety of fixes that
didn't make the cut for the stable 1.14.2 and 1.14.4 releases, as well
as all the fixes from those releases. Notably this includes a highly
requested new API for Win32 surfaces.
For a complete log of changes since the last release, please see:
http://cairographics.org/releases/ChangeLog.1.15.2
Features
--------
None
API Changes
-----------
cairo_win32_surface_create_with_format
Added a cairo API to set up Win32 surfaces for HDC with alpha channels.
Dependency Changes
------------------
None
Performance Optimizations
-------------------------
None
Bug Fixes
---------
* All the bug fixes from 1.14.2, 1.14.4, and 14.6
* Fix xcb/xlib compilation and calls. Make image boxes behave when SHM
is not available.
* Fix various issues with printing and transparent images on Win32.
* Fix thin lines that don't show up when printing in Inkscape due to
overly aggressive culling.
(Bug #77298)
* Fix broken printing via pdf when glyph 0 is used for rendering,
resulting in missing spaces and letters.
(Bug #89082)
* Fix crash for certain glyphs in opentype fonts.
(Bug #91902)
* Fix incorrect rendering of SVG paths with more than one subpath. If
more than one trap is passed in then it's guaranteed that the returned
traps will have their left edge to the left of their right edge, but
if only one trap is passed in then the function always returns without
doing anything.
(Bug #90984)
* Improve rendering with Quarts to better match pixman's blending and
filtering behavior.
Release 1.14.6 (2015-12-09 Bryce Harrington <[email protected]>)
========================================================================
Simple bugfix release to fix one Windows issue.
For a complete log of changes since 1.14.4, please see:
http://cairographics.org/releases/ChangeLog.1.14.6
Features
--------
None
API Changes
-----------
None
Dependency Changes
------------------
None
Performance Optimizations
-------------------------
None
Bug Fixes
---------
* Fix failure on Windows due to reference of the function
cairo_win32_surface_create_with_format(), which isn't included in the
1.14.4 release. (Bug #92771)
Release 1.14.4 (2015-10-28 Bryce Harrington <[email protected]>)
========================================================================
Just in time for Halloween we see another bug-fix release for Cairo.
This brings a few dozen straightforward bug fixes with no API changes.
In addition, this includes a typical assortment of fixes to tests,
cleanup of warnings and memory leaks, correction of misspellings,
updates to documentation, etc.
For a complete log of changes since 1.14.2, please see:
http://cairographics.org/releases/ChangeLog.cairo-1.14.4
Features
--------
None
API Changes
-----------
None
Dependency Changes
------------------
None
Performance Optimizations
-------------------------
None
Bug Fixes
---------
* Avoid appending empty slots to user data arrays. Fixes a memory
consumption regression since commit 9341c254a.
* Return a better error (file-not-found) when setting up pango on
devices where the font files don't have read permissions.
* Fix regression in the font size of canvas text in Inkscape when
compiled with the Quartz backend. (Bug #84324)
* Fix _cairo_gl_shader_bind_matrix() to maintain compatibility with
OpenGL ES 2.0. Manually transpose the matrix.
* Fix incorrect font descriptor conversion when the font matrix yy is
negative. (Bug #90538)
* Fix crash when using a complex path for clip and stroke due to
discarding the intersection exactly at the top edge.
(Bug #74779)
* Fix cairo_get_locale_decimal_point() on Android
* Fix compilation problem on AIX due to conflicting usage of symbol
'jmpbuf'. (Bug #89339)
* Fix broken rendering with XCB due to snapshotting of uploaded part of
surfaces. (Bug #67505)
* Fix loss of alpha when copying a mask for a cairo recording surface,
resulting in a double copy. (Bugs #73038, #73901)
* Fix incorrect recording of certain paths with script surfaces.
(Bug #91054)
* Fix typo in definition of MAYBE_WARN in configure script.
(Bug #89750)
* Fix use of filename variable after it's been freed.
(Bug #91206)
* Fix out of bounds access when printing pattern.
(Bug #91266)
* Fix incorrect size calculation in glyph cache unlocking for Cairo GL
compositor.
(Bug #91321)
* Fix memory leak in _cairo_gl_pattern_texture_setup()
(Bug #91537)
* Fix transparent images in win32-print.
(Bug #91835)
* Fix _put_shm_image_boxes and _put_image_boxes when no SHM available
with XCB.
Release 1.14.2 (2015-03-09 Bryce Harrington <[email protected]>)
====================================================================
This release provides collected bug fixes, along with one feature
enhancement for the xcb backend, and a small performance improvement for
fonts.
The running theme of the bug fixes is platform-specific issues, both
build and run-time. Platforms with fixes include Sparc, AIX, Windows
(mingw), and Windows (MSVC8). Memory leaks, valgrind issues, and PDF
issues round out our list.
It's come to light that changes in cairo 1.14 resulted in breakage on
MacOS X 10.4. We've not yet determined whether to fix up the support,
or excise the 10.4-specific code and support only OS X 10.5 or newer.
Meantime, we'll only advertise cairo as working on OS X 10.5.
Features
--------
* Improve xcb's handling of per-screen subpixel ordering. If no
Xft.rgba property is specified, default to the screen's subpixel
order.
API Changes
-----------
None
Dependency Changes
------------------
None
Performance Optimizations
-------------------------
* Improve performance of cpu_to_be32 and be32_to_cpu, making truetype
subsetting of large fonts run about 15% faster.
Bug Fixes
---------
* Fix unaligned access on sparc with the compact font format (CFF).
Unlike truetype, all data in CFF is not aligned.
(Debian bug #712836)
* Fix unaligned access on sparc with tor-scan-converter's memory pool.
* Fix crash when loading a PDF with a transformed image.
(fdo bug #85151)
* Fix regression on mingw for bigendian test due to removal of file
extension for executables.
(fdo bug #85120)
* Fix handling of backslash in PDF interpreter
(fdo bug #85662)
* Fix crash in xlib and xcb renderers when swapping a 0-sized glyph
* Fix bug with RTL text in PDF operators
(fdo bug #86461)
* Fix compilation 'cairo-path-stroke-traps.c' with MSVC8
(fdo bug #84908)
* Fix crash in _fill_xrgb32_lerp_opaque_spans when a span length is
negative.
* Fix valgrind error by releasing pattern created by
cairo_pattern_create_rgb().
* Fix valgrind errors when running cairo-test-suite.
* Fix memory leak in recording surface replays
(fdo bug #87898)
* Fix destruction of fonts in api-special-cases test.
(fdo bug #87567)
* Fix duplicated surface push on similar-image, preventing trivial GTK3
program traces from being replayable, with an error message about
invalid values for the size of the input.
(fdo bug #73580)
* Fix crash when win32 surface's image size does not cover the entire
surface.
(fdo bug #53121)
* Fix crash due to obsolete CGFontGetGlyphPath call
(fdo bug #84324)
* Fix several build issues on AIX
(fdo bugs #89338, #89340, #89356, #89354)
* Fix various documentation warnings and errors
Release 1.14.0 (2014-10-13 Bryce Harrington <[email protected]>)
====================================================================
Hard to believe it's been over a year since our last release, but it's
not for lack of activity. This release includes contributions of a wide
assortment of bug fixes, build system improvements, warnings cleanups,
codebase refactoring, test suite repairs, and static analysis work.
This release is lighter on features (compared with 1.12.10) but includes
a highly demanded rehaul of our image downscaling functionality, which
solves a serious problem experienced by Inkscape users when shrinking
embedded bitmaps in SVG files. The new scaling algorithms are used by
the image backend and by other backends as needed for fallbacks.
Features
--------
Filtering improvements for the image backend, in particular
down-scaling of images produces filtered images that depend on all the
pixels of the source. When using the image backend you get the
following settings:
CAIRO_FILTER_GOOD: uses a box filter for scales less than .75 in
either direction. For scales larger than this, the same filter as
CAIRO_FILTER_BILINEAR is used.
CAIRO_FILTER_BEST: uses a Catmull-Rom filter always. When upscaling
more than 2x this will produce anti-aliased square pixels, similar
to OS/X.
CAIRO_FILTER_GAUSSIAN: uses PIXMAN_FILTER_BEST, which in current
pixman is the same as BILINEAR. (This is subject to change in the
future).
xlib and xcb also use the image fallback for GOOD/BEST filters, but
note that other backends do not implement these filtering fixes yet,
however other actions may cause them to use an image fallback which
will cause these filters to be used.
Improve handling of device transformation and scaling, allowing Cairo
to now support scaling at a device level, permitting easier, more
transparent HiDPI support.
Support JBIG2 mime data in PDF. This allows embedding of more
compressed JPEG formats within PDF, rather than including the full
uncompressed image. Also, reduce the number of transparency groups
used by PDF to keep the file size small and viewing/printing of the
PDF fast.
Expand the embedding section to include stencil mask support.
Reorder font declarations to be in natural order.
Update the Skia backend to build against current Skia (as of June
2014).
Drop Link-Time Optimization (LTO) support from build system. This
seems to have caused much trouble for unclear benefit, and most
distros are reverting or disabling it anyway.
Optimize VBO size on GL to 1M and to 16k for EGL. This improves
(theoretical) performance for desktop GLX use cases while avoiding
hitting VBO memory size limitations on embedded devices.
API Changes
-----------
cairo_surface_set_device_scale, cairo_surface_get_device_scale:
Sets a scale that is multiplied to the device coordinates
determined by the CTM when drawing to @surface. One common use for
this is to render to very high resolution display devices at a scale
factor, so that code that assumes 1 pixel will be a certain size
will still work.
cairo_egl_device_get_display, cairo_egl_device_get_context:
Support get/set of EGLContext and EGLDisplay for egl-based cairo
devices, similar to GLX.
Dependency Changes
------------------
Cairo now requires glib 2.14 for its gobject helper functions,
and pixman 0.30 for downscaling.
Bug fixes
---------
Don't embed CMYK Jpeg images in svg.
Fix tests to place output in proper location.
Fix determination of alpha for all surfaces when recording.
Extend oversize check to cairo_gl_surface_create_for_texture, so an
error surface is returned if the texture is too large to render to.
Fix embedding of mime data in PDF and PS files.
Remove useless error handling in *_reply() functions in XCB.
Fix a double-free exposed by multithreaded apps creating and
destroying the same font concurrently.
https://bugs.freedesktop.org/show_bug.cgi?id=69470
Fix corrupt stacks produced by bugs in operand emission for trace.
Fix out of bounds array access in format cache for xlib
Don't rename glyphs used by seac operator. This can cause certain
combined characters to use their decorations (e.g. umlauts on ö) to be
lost during printing of PDFs using evince.
https://bugs.freedesktop.org/show_bug.cgi?id=70364
Fix crash on calling cairo_create with a finished surface
Fix SSIZE_T definition problem when making with MSYS on Windows7
Fix one off issue in gl context cleanup
Fix usage of CAIRO_STACK_ARRAY_LENGTH
Fix rectangle stroke with non rectilinear pen
Fix imagemask with pattern source failure on some printers. This bug
could cause files converted using pdftops to fail for example on Ricoh
printers, or opening in Adobe Distiller on Windows.
https://bugs.freedesktop.org/show_bug.cgi?id=69485
Fix whitespace in font names
Fix page size in generated PDFs. When printing using pdftocairo on
larger page sizes, such as 11x17, the image would be cropped to letter
size.
https://bugs.freedesktop.org/show_bug.cgi?id=73452
Fix path-currentpoint test by preserving current-point in
copy_path()/append_path() sequence
Fix generation of HTML in code docs for
cairo-format-stride-for-width. Raw HTML code was being passed
to the browser, instead of displaying normally.
https://bugs.freedesktop.org/show_bug.cgi?id=63257
Fix spelling of "tessellator" throughout code. We're using the
American rather than British spelling of this word.
https://bugs.freedesktop.org/show_bug.cgi?id=50411
Fix crash in pixman_image_composite32
Fix crash when trying to modify a (const) all-clipped cairo_clip_t
https://bugs.freedesktop.org/show_bug.cgi?id=75819
Add check_composite method to all compositors, to fix crashes in the
test suite.
Fix crash in Firefox when scrolling on certain pages.
Fix memory leaks found by static analysis.
Fix build of any2ppm if fork is not available.
Fix broken build for Qt backend, due to missing libstdc++.
Fix typo in two cairo_uint128 functions. Fixes potential build issues
on systems without a uint128 type.
Fix build when --enable-pdf=no
Fix cache_frozen assertions for Win32 print.
Correctly check for xcb image surface for inplace upload
Fix webkit-based web browser crashes due to empty boxes by skipping
over them when tesselating.
Make pixman, libpng, and zlib paths commandline configurable for win32
builds.
Fix image scale on Win32 when GDI scale is not identity.
Fix float endian configure test when using clang -O4
Fix compilation with Android bionic libc
Don't try to build util/sphinx on Windows
Fix loss of precision when emitting joins. This was caused by
discrepancies in line gradients when passing trapezoids around.
Fix loss of precision and associated rendering issues in
cairo-tor-scan-converter from projection onto sample grid.
Fix pixman oversampling of neighbouring edges within a cell by
eliminating self-intersections for the pixman traps compositor.
Fix multi-line string splitting in PDFs
Various cleanups and fixes to warnings, documentation, tests, and
build system. Improve error handling and return value checks.
Cleanup XFAIL tests and reference images. Cover recently added
functionality.
Release 1.12.16 (2013-08-21 Chris Wilson <[email protected]>)
===================================================================
Thanks to everybody who reported a bug and helped us develop a fix,
we have amassed quite a few bug fixes. There are still more outstanding
bugs that seek attention and a little bit of TLC, but this release has
been delayed long enough...
Bug fixes
---------
Set the correct orientation for simple boxes with a negative scale
factor.
Fix the creation of the shading dictionary in PDF.
Fix a crash in PDF when incorporating an image with CAIRO_EXTEND_PAD.
https://bugs.freedesktop.org/show_bug.cgi?id=61451
Avoid upscaling bitmap fonts if possible.
Fix an assertion failure within the mempool allocator for shared memory.
Fix allocation size for CFF subsets.
Export cairo_matrix_t for GObject bindings.
Fix a double free in the Quartz backend.
https://bugs.freedesktop.org/show_bug.cgi?id=62885
Fix origin of GDI StretchBlits for the Windows backend
https://bugs.freedesktop.org/show_bug.cgi?id=61876
Fix error propagation for requests to create a similar surface with
negative size.
https://bugs.freedesktop.org/show_bug.cgi?id=63196
Fix complex clipping of trapezoids with regions
https://bugzilla.gnome.org/show_bug.cgi?id=697357
Stop leaking the image data when loading PNGs
Fix unbounded operations with a clip mask through the span compositor
https://bugs.freedesktop.org/show_bug.cgi?id=61592
Add missing checks before rendering to a finished surface - so we return
an error rather than hit an assert.
https://bugs.freedesktop.org/show_bug.cgi?id=68014
Prevent an assertion failure when creating similar GL surfaces larger
than supported by hardware.
Prevent a double free of a similar image under Windows.
https://bugs.freedesktop.org/show_bug.cgi?id=63787
Release 1.12.14 (2013-02-10 Chris Wilson <[email protected]>)
===================================================================
In the last week we had a few more bugs reported and promptly resolved.
As these are a combination of regressions and stability issues, it is
time for a prompt update and release. Many thanks to everyone for
testing and reporting issues, and helping to make Cairo better.
Bug fixes
---------
Prevent user callbacks accessing user-data during destroy to prevent
use-after-free bugs.
https://bugzilla.mozilla.org/show_bug.cgi?id=722975
Use standard names for glyphs in subset fonts (PDF).
https://bugs.freedesktop.org/show_bug.cgi?id=60248
Fix detection of Win98. The logic for detecting Win98 (and its broken
AlphaBlend()) was inverted, disabling AlphaBlend() for everyone.
Prevent numeric overflow from extrapolating polygon edges to the clip
boundary and causing severe render artifacts.
https://bugs.freedesktop.org/show_bug.cgi?id=60489
Fix computation of glyph string coordinates when breaking up runs
for xlib.
Fix an assertion in the win32 backend for failing to clear its
similar-images.
https://bugs.freedesktop.org/show_bug.cgi?id=60519
Release 1.12.12 (2013-01-31 Chris Wilson <[email protected]>)
===================================================================
The goal of this release is to fix the synchronisation problems that
were exhibited in the SHM transport for cairo-xlib. This cropped up
any place that tried to rapidly push fresh pixel data to the X server
through an ordinary image surface, such as gimp-2.9 and evince.
Bug fixes
---------
Avoid replacing the entire image when uploading subimages
https://bugs.freedesktop.org/show_bug.cgi?id=59635
Force synchronisation for scratch SHM image buffers, so that we do
not overwrite data as it is being read by X.
https://bugs.freedesktop.org/show_bug.cgi?id=59635 (also)
Fix typos in detecting multisampling for the GL (MSAA) backend.
Fix a memory leak in the GL (MSAA) backend.
Fix a reference counting bug when mapping a GL surface to an image.
Release 1.12.10 (2013-01-16 Chris Wilson <[email protected]>)
===================================================================
A heap of bug fixes everywhere, and the gradual completion of the MSAA
backend for cairo-gl. Perhaps the most noteworthy set of the bugfixes
was the crusage lead by Behdad Eshfabod to make font handling by
pango/cairo/fontconfig fully threadsafe. This testing revealed a couple
of races that needed fixing in Cairo's scaled-font and glyph cache.
Bug fixes
---------
Append coincident elements to the recording's surface bbtree so that
the list is not corrupted and the overlapping elements lost.
Fix cairo-trace to correctly record map-to-image/unmap-image and then
replay them.
Ignore MappingNotifies when running the XCB testsuite as they are sent
to all clients when the keyboard changes. The testsuite would detect
the unexpected event and complain.
Handle very large images in the XCB backend.
Fix a memory leak in the xlib/shm layer, and prevent use of the SHM
surfaces after the display is closed.
https://bugs.freedesktop.org/show_bug.cgi?id=58253
Handle resizing of bitmap fonts, in preparation for a fix to
fontconfig to correctly pass on the user request for scaling.
Always include subroutine 4 (hint replacement idion) when subsetting
type 1 fonts in order to prevent a crash in cgpdftops on Mac OS/X
Fix a couple of typos in the cairo-gobject.h header files for
introspection.
Prevent a mutex deadlock when freeing a scaled-glyph containing a
recording-surface that itself references another scaled-glyph.
https://bugs.freedesktop.org/show_bug.cgi?id=54950
Make scaled-font cache actually thread-safe and prevent
use-after-frees.
Restore support for older versions of XRender. A couple of typos and a
few forgotten chunks prevented the xlib compositor from running
correctly with XRender < 0.10. Note that there are still a few
regressions remaining.
Release 1.12.8 (2012-11-24 Chris Wilson <[email protected]>)
===================================================================
Another couple of weeks and a few more bugs have been found and fixed,
it is time to push the next point release. Many thanks to everyone who
reported their issues and helped us track down the bugs and helped
testing the fixes.
Bug fixes
---------
Expand the sanity checking for broken combinations of XSendEvent and
ShmCompletionEvent.
Notice that "The X.Org Foundation" sometimes also identifies itself
as "The Xorg Foundation".
Handle various ages of libXext and its Shm headers.
Fix the invalid clipping of the source drawable when using SHM
transport to upload images.
https://bugs.freedesktop.org/show_bug.cgi?id=56547
Handle all Type1 postscript operators for better font compatibility.
https://bugs.freedesktop.org/show_bug.cgi?id=56265
Fix a couple of memory leaks in Type1 font subsetting
https://bugs.freedesktop.org/show_bug.cgi?id=56566
Tighten the evaluation of the start/stop pen vertices, and catch a few
instances where we would use a fan instead of a bevel.
https://bugs.freedesktop.org/show_bug.cgi?id=56432
Fix assumption that geometric clipping always succeeds with the
span-compositor.
https://bugs.freedesktop.org/show_bug.cgi?id=56574
Fix call to spline intersection when evaluating whether a stoke is
visible.
Remember to copy inferior sources when using SHM to readback the
surface for use as a source.
Release 1.12.6 (2012-10-22 Chris Wilson <[email protected]>)
===================================================================
Thanks to everyone who download cairo-1.12.4 and gave us their feedback.
It truly was invaluable and has helped us to fix many portability issues
that crept in with some of the new features. This release aims to fix
those stability issues and run on a wider range of systems.
Bug fixes
---------
Fix the recording surface to actually snapshot the source and so fix
PDF drawing.
Calling XSendEvent with an XShmCompletionEvent is incompatabile with
older Xorg servers.
Reorder CloseDisplay chain so that XShm is not reinstantiated after
shutdown, causing a potential crash if the Display was immediately
recreated using the same memory address.
Make sure that the Xserver has attached to the SHM segment before
deleting it from the global namespace on systems that do not support
deferred deletion.
Type1 subsetting support for PDF (and PS) was once again improved to
work with a larger number of PDF readers.
GLESv2 build fixes and improved support for embedded GPUs.
Tweak the invisible pen detection for applications that are currently
using too large values for geometric tolerance.
A build fix for older freetype libraries.
Release 1.12.4 (2012-10-05 Chris Wilson <[email protected]>)
===================================================================
More bugs, and more importantly, more fixes. On the cairo-gl side, we
have refinements to the MSAA compositor which enables hardware
acceleration of comparatively low-quality antialiasing - which is useful
in animations and on very high density screens. For cairo-xlib, we have
finally enabled SHM transport for image transfers to and from the X
server. A long standing required feature, SHM transport offers a notable
reduction in rendering latency by reducing the number of copies
required to upload image data - given hardware and driver support,
cairo-xlib can now perform zero copy uploads onto the GPU. And as usual
Adrian Johnson has been very busy fixing many different corner cases in
cairo-pdf, impoving opacity groups and font subsetting. Last, but not
least, for cairo-image Søren Sandmann Pedersen added support for
rendering glyphs to pixman and using that from within cairo. The new
glyph rendering facility reduces the overhead for setting up the
compositing operation, improving glyph thoughput for the image backend
by a factor of about 4. And before he did so, he also fixed up a few
bugs in the existing glyph rendering code. So many thanks to Andrea
Canciani, Adrian Johnson, Chuanbo Weng, Dongyeon Kim, Henry Song, Martin
Robinson, Søren Sandmann Pedersen and Uli Schlachter for their
contributions, finding and fixing bugs.
Bug fixes
---------
Interior boxes were being dropped when amalgamating regions during
tesselation.
https://bugs.freedesktop.org/show_bug.cgi?id=49446
Allow building without gtk-doc installed
Invalid edge generation whilst reducing complex polygons.
https://bugs.freedesktop.org/show_bug.cgi?id=50852
Stroking around tight cusps
Use locale correct formats for reading font subsetting and valid
buffers.
https://bugs.freedesktop.org/show_bug.cgi?id=51443
Ensure that the type1 subset includes all the glyph encodings
https://bugs.freedesktop.org/show_bug.cgi?id=53040
Upload the whole source for a repeating pattern.
https://bugs.freedesktop.org/show_bug.cgi?id=51910
Fix damage tracking to handle continuation chunks corectly and so
prevent crashes on win32.
https://bugs.freedesktop.org/show_bug.cgi?id=53384
Avoid emitting miter joins for degenerate line segments
https://bugzilla.mozilla.org/show_bug.cgi?id=407107
Convert the relative path semgents into the backend coordinates
and then back again to user coordinates (cairo_copy_path,
cairo_append_path)
https://bugs.freedesktop.org/show_bug.cgi?id=54732
Fix extents computations for a degenerate path consisting only of a
move-to
https://bugs.freedesktop.org/show_bug.cgi?id=54549
Prevent crashing on a degenerate project edge after polygon
intersection
https://bugs.freedesktop.org/show_bug.cgi?id=54822
Release 1.12.2 (2012-04-29 Chris Wilson <[email protected]>)
===================================================================
After such a long gestation period for the release of Cairo 1.12, we
inevitably accumulated a few bugs that were flushed out by broadening the
test base. Thanks to everybody who tried the release, apologies to any one
unfortunate enough to encounter a bug and many thanks for reporting it. As
a result Adrian Johnson, Alexandros Frantzis, Andrea Canciani, Kalev
Lember, Maarten Bosman, Marcus Meissner, Nis Martensen and Uli Schlachter
have squashed many more bugs and improved the documentation. I would
strongly recommend everyone to upgrade to cairo-1.12.2.
-Chris
Bug fixes
---------
Allow applications to create 0x0 xlib surfaces, such as used by LibreOffice.
https://bugs.freedesktop.org/show_bug.cgi?id=49118
Trim composite extents for SOURCE/CLEAR operators to the mask.
Use fallback fonts in PDF for unhandled computed glyph widths
https://bugs.freedesktop.org/show_bug.cgi?id=48349
Handle snapshots of recording surfaces for analysing pattern extents.
Fixes a regression of reporting the PDF bounding box as being the page size.
Fix allocation size for PDF pattern ids.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49089
Fix emission of rectilinear dashed segments, with and without scaling, and
application of degenerate line joins.
Clamp unbounded fixup polygons to the clip extents.
Prevent infinite loop due to rounding errors whilst incrementing along dashes.
Prevent overflow for inline a8 span filling.
Miscellaneous build fixes for Cygwin on Windows and Solaris.
Release 1.12.0 (2012-03-23 Chris Wilson <[email protected]>)
===================================================================
It's taken over 18 months, but the wait is finally over. A new cairo release!
We are pleased to annouce a new stable release of Cairo that brings many
new features and performance improvements, all whilst maintaining
compatibility with cairo-1.0 and all releases since. We recommend anyone
using a previous release of Cairo to upgrade to 1.12.0.
The major feature of this release is the introduction of a new procedural
pattern; the mesh gradient. This, albeit complex, gradient is constructed
from a set of cubic Bezier patches and is a superset of all other gradient
surfaces which allows for the construction of incredibily detailed patterns.
In PDF parlance, the mesh gradient corresponds with type 7 patterns. Many
thanks to Andrea Canciani for bringing this to Cairo, and for his work on
making gradient handling robust.
Not content with just adding another procedural pattern, Cairo 1.12 also
adds new API to create a callback pattern,
cairo_pattern_create_raster_source, that allows the application to
provide the pixel data for the region of interest at the time of
rendering. This can be used for instance, by an application to decode
compressed images on demand and to keep a cache of those decompressed
images, independently of Cairo. When combined with the recording
surface, it should form a useful basis for a deferred renderer.
With the release of cairo-1.12, we also introduce a new supported
backend for interoperating with X using XCB. Uli Schlachter, also
maintainer of awesome and contributor to libxcb, has volunteered to
maintain cairo-xcb for us. Thanks Uli!
For cairo-1.12, we have also added some common API to address any
surface as an image and so allow direct modification of the raster data.
Previously, only the Quartz and Win32 backends supported a very narrow
interface to allow for efficient pixel upload. Now with
cairo_surface_create_similar_image, cairo_surface_map_to_image, and
cairo_surface_unmap_image, Cairo exports a consistent method for
treating those surfaces as an image and so allow modification inplace.
These are the same routines used internally, and should support
efficient transfer or direct mapping of the target surfaces as
applicable.
Another focus over the past year has been to address many performance
issues, without sacrificing the composition model. To accomplish the
goal, once again the rasterisation pipeline was overhauled and made
explicit, giving the backends the freedom to implement their own
specific pipeline whilst also providing a library of common routines
from which to build the pipeline. For instance, this allows the image
backend and the gl backend to composite scan line primitives inplace,
and to then implement custom fallbacks to catch the corner cases that do
not map onto their fastest paths. Similarly, this allows for the Xlib
backend to implement trapezoidation without compromising the other
backends, yet still allow for the pipeline to be used elsewhere for
testing and fallbacks. Clipping was once again overhauled, so that the
common cases for the raster pipelines could be captured and processed
with fast paths with the emphasis on performing geometric clipping to
reduce the frequency of using multi-pass clipmasks. Stroking was made
faster, both by providing specialised fast-paths for simple, yet frequent,
cases (such as stroking around a rectangle) and by reducing the number
of edges generated by the general stroker.
As part of the focus on performance, Cairo 1.12 introduces some
antialias hints (NONE, FAST, GOOD, BEST) that are interpolated by the
rasterisers to fine tune their performance versus quality. Cairo 1.12
also introduces a new observation architecture,
cairo_surface_observer_t, which can be used to analyse the amount of
time consumed by drawing commands and help identify inefficiencies in
both Cairo and the application.
Last, but by no means least, the OpenGL backend has seen significant
work including the port to GLESv2 and the exploitation of advanced
hardware features. Interesting times.
As always, I would like to thank everyone who contributed to Cairo,
not only through writing code, but also submitting documentation, bug
reports, suggestions and generally having fun with Cairo! In particular
though this release could not have happened without the efforts of
Adrian Johnson, Alexandros Frantiz, Andrea Canicani, Martin Robinson,
Nis Martensen, and Uli Schlachter. Thanks.
-Chris
Snapshot 1.11.4 (2012-13-12)
============================
The cairo community is pleased to finally announce the long aniticpated
release candidate for 1.12, 1.11.4, of the cairo graphics library. This
is the first major update to cairo in over a year and brings a large
number of new features; undoubtably a few bugs as well.
While many people have contributed and have helped to test the release,
providing feedback on 1.10 and suggesting improvements, this release
is the result of a few persevering souls who deserve recognition for their
outstanding contributions: Andrea Canciani (all round bug fixing,
performance tuning and master of the gradients), Adrian Johnson (PDF
supremo) and Uli Schlachter (who stepped forward as maintainer for the
XCB backend).
Major additions since 1.11.2:
* cairo_surface_map_to_image API for pixel level access to any surface
* New antialias hints to control the trade-off between speed and quality
* A callback pattern, cairo_pattern_create_raster_source, for lazy
decoding of image data.
* cairo_surface_observer_t, a new type of surface to gather performance
statistics
* XCB as a supported backend
* A rewritten compositor pipeline for performance improvements for, but not
limited to, the xlib and image backends.
From ION and PineView through to SandyBridge, every machine I have shows
across the board performance improvement on the cairo-traces:
i5-2520m gnome-system-monitor: 5.97x speedup
pnv gnome-system-monitor: 4.86x speedup
i5-2520m firefox-asteroids: 4.66x speedup
pnv firefox-asteroids: 4.43x speedup
image firefox-canvas: 3.82x speedup
i5-2520m firefox-canvas-alpha: 3.49x speedup
image firefox-asteroids: 2.87x speedup
pnv firefox-talos-svg: 2.83x speedup
ion grads-heat-map: 2.75x speedup
pnv firefox-canvas-alpha: 2.66x speedup
image gnome-system-monitor: 2.66x speedup
image swfdec-giant-steps: 2.46x speedup
image firefox-canvas-alpha: 2.14x speedup
i5-2520m firefox-talos-svg: 2.03x speedup
image grads-heat-map: 2.02x speedup
ion gnome-system-monitor: 2.00x speedup
pnv firefox-particles: 1.99x speedup
i5-2520m grads-heat-map: 1.96x speedup
pnv firefox-canvas: 1.92x speedup
ion firefox-particles: 1.80x speedup
image poppler-reseau: 1.77x speedup
pnv xfce4-terminal-a1: 1.72x speedup
image firefox-talos-svg: 1.65x speedup
pnv grads-heat-map: 1.63x speedup
i5-2520m firefox-canvas: 1.63x speedup
pnv swfdec-youtube: 1.62x speedup
image ocitysmap: 1.59x speedup
i5-2520m firefox-fishbowl: 1.56x speedup
i5-2520m poppler-reseau: 1.50x speedup
i5-2520m evolution: 1.50x speedup
i5-2520m midori-zoomed: 1.43x speedup
pnv firefox-planet-gnome: 1.42x speedup
i5-2520m firefox-talos-gfx: 1.41x speedup
i5-2520m gvim: 1.41x speedup
pnv ocitysmap: 1.37x speedup
image poppler: 1.31x speedup
ion firefox-canvas-alpha: 1.35x speedup
ion firefox-talos-svg: 1.34x speedup
i5-2520m ocitysmap: 1.32x speedup
pnv poppler-reseau: 1.31x speedup
i5-2520m firefox-planet-gnome: 1.31x speedup
pnv firefox-fishbowl: 1.30x speedup
pnv evolution: 1.28x speedup
image gvim: 1.27x speedup
i5-2520m swfdec-youtube: 1.25x speedup
pnv gnome-terminal-vim: 1.27x speedup
pnv gvim: 1.25x speedup
image firefox-planet-gnome: 1.25x speedup
image swfdec-youtube: 1.25x speedup
...
And a plethora of minor improvements everywhere!
-Chris
Snapshot 1.11.2 (2011-01-23)
===========================
In this first snapshot along the way to cairo-1.12.0, we are very excited
to announce the introduction of Bezier surface gradients, known as type
6/7 gradients in PS/PDF parlance. This is the culmination of much work by
the dynamic duo: Adrian Johnson and Andrea Canciani. Thanks guys!
Also, I want to warmly welcome Uli Schlachter who recently joined the
Cairo community on a mission. That mission is to make cairo-xcb a
supported backend for 1.12. And for this snapshot he has made great
strides in fixing all the bugs I had left behind. Thanks Uli!
And we have also seen a new contributor, Alexandros Frantzis, who has
begun bringing up cairo-gl for GLESv2 devices. Thanks Alex!
And lastly, I must also thank Adrian and Andrea for the vast numbers of
bugs that they have tackled between them, fixing all those little corner
cases that lie hidden until too late.
API additions:
The ability to construct piece-wise Bezier surface gradients:
cairo_pattern_create_mesh