📄 news
字号:
------------------------Unfortunately, the quartz backend code is currently out of date withrespect to some recent backend interface changes. So, the quartzbackend is disabled in this snapshot.If the quartz backend is brought up-to-date before the next snapshot,we would be glad to make a 0.4.1 snapshot that re-enables it, (we donot expect many more big backend interface changes).API Changes-----------The font system has been revamped, (as Owen Taylor's work withintegrating pango and cairo gave us the first serious usage of thenon-toy font API).One fundamental, user-visible change is that the cairo_font_t objectnow represents a font that is scaled to a particular deviceresolution. Further changes are described below. cairo.h ------- Removed cairo_font_set_transform and cairo_font_current_transform. Added cairo_font_extents and cairo_font_glyph_extents. See documentation for details: http://cairographics.org/manual/cairo-cairo-t.html#cairo-font-extents cairo-ft.h ---------- The cairo_ft_font API changed considerably. Please see the documentation for details: http://cairographics.org/manual/cairo-FreeType-Fonts.htmlPerformance-----------Make the fast-path clipping (pixel-aligned rectangles) faster.Add optimization for applying a constant alpha to a pattern.Optimize gradients that are horizontal or vertical in device space.Xlib: When RENDER is not available, use image surfaces forintermediate surfaces rather than xlib surfaces.Backend-specific changes------------------------ Glitz ----- Major update to glitz backend. The output quality should now be just as good as the image and xlib backends. Track changes to glitz 0.4.0. PDF --- Various improvements to produce more conformant output.Internals---------David Reveman contributed a large re-work of the cairo_pattern_timplementation, providing cleaner code and more optimizationopportunities. Backend interface changes ------------------------- Rework backend interface to accept patterns, not surfaces for source and mask. Remove set_matrix, set_filter, and set_repeat functions. More sophisticated backend interface for image fallbacks, ({acquire,release}_{source,dest}_image() and clone_similar).Bug fixes---------Only install header files for backends that have been compiled.Fixed some rounding errors leading to incorrectly placed glyphs.Many other minor fixes.Snapshot 0.3.0 (2005-01-21 Carl Worth <cworth@cworth.org>)==========================================================Major API changes-----------------1) The public header files will no longer be directly installed into the system include directory. They will now be installed in a subdirectory named "cairo", (eg. in /usr/include/cairo rather than in /usr/include). As always, the easiest way for applications to discover the location of the header file is to let pkg-config generate the necessary -I CFLAGS and -L/-l LDFLAGS. For example: cc `pkg-config --cflags --libs cairo` -o foo foo.c IMPORTANT: Users with old versions of cairo installed will need to manually remove cairo.h and cairo-features.h from the system include directories in order to prevent the old headers from being used in preference to the new ones.2) The backend-specific portions of the old monolithic cairo.h have been split out into individual public header files. The new files are: cairo-atsui.h cairo-ft.h cairo-glitz.h cairo-pdf.h cairo-png.h cairo-ps.h cairo-quartz.h cairo-xcb.h cairo-xlib.h Applications will need to be modified to explicitly include the new header files where appropriate.3) There are two new graphics backends in this snapshot, a PDF backend, and a Quartz backend. There is also one new font backend, ATSUI.PDF backend-----------Kristian Høgsberg has contributed a new backend to allow cairo-basedapplications to generate PDF output. The interface for creating a PDFsurface is similar to that of the PS backend, as can be seen incairo-pdf.h: void cairo_set_target_pdf (cairo_t *cr, FILE *file, double width_inches, double height_inches, double x_pixels_per_inch, double y_pixels_per_inch); cairo_surface_t * cairo_pdf_surface_create (FILE *file, double width_inches, double height_inches, double x_pixels_per_inch, double y_pixels_per_inch);Once a PDF surface has been created, applications can draw to it asany other cairo surface.This code is still a bit rough around the edges, and does not yetsupport clipping, surface patterns, or transparent gradients. Textonly works with TrueType fonts at this point and only black text issupported. Also, the size of the generated PDF files is currentlyquite big.Kristian is still actively developing this backend, so watch thisspace for future progress.Quartz backend--------------Calum Robinson has contributed a new backend to allow cairoapplications to target native Mac OS X windows through the QuartzAPI. Geoff Norton integrated this backend into the currentconfigure-based build system, while Calum also provided Xcode buildsupport in the separate "macosx" module available in CVS.The new interface, available in cairo-quartz.h, is as follows: void cairo_set_target_quartz_context (cairo_t *cr, CGContextRef context, int width, int height); cairo_surface_t * cairo_quartz_surface_create (CGContextRef context, int width, int height);There is an example program available in CVS in cairo-demo/quartz. Itis a port of Keith Packard's fdclock program originally written forthe xlib backend. A screenshot of this program running on Mac OS X isavailable here: http://cairographics.org/~cworth/images/fdclock-quartz.pngATSUI font backend------------------This new font backend complements the Quartz backend by allowingapplications to use native font selection on Mac OS X. The interfaceis a single new function: cairo_font_t * cairo_atsui_font_create (ATSUStyle style);Minor API changes-----------------Prototype for non-existent function "cairo_ft_font_destroy" removed.Now depends on libpixman 0.1.2 or newer, (0.1.3 is being releasedconcurrently and has some useful performance improvements).Default paint color is now opaque black, (was opaque white). Defaultbackground color is transparent (as before).Renamed "struct cairo" to "struct _cairo" to free up the word "cairo"from the C++ identifier name space.Functions returning multiple return values through provided pointers,(cairo_matrix_get_affine, cairo_current_point, andcairo_current_color_rgb), will now accept NULL for values the userwants to ignore.CAIRO_HAS_FREETYPE_FONT has now been renamed to CAIRO_HAS_FT_FONT.Performance improvements------------------------Alexander Larsson provided some fantastic performance improvementsyielding a 10000% performance improvement in his application, (whenalso including his performance work in libpixman-0.1.3). These include * Fixed handling of cache misses. * Creating intermediate clip surfaces at the minimal size required. * Eliminating roundtrips when creating intermediate Xlib surfaces.Implementation--------------Major re-work of font metrics system by Keith Packard. Font metricsshould now be much more reliable.Glitz backend-------------Updated for glitz-0.3.0.Bug fixes in reference counting.Test suite----------New tests for cache crashing, rotating text, improper filling ofcomplex polygons, and leaky rasterization.Bug fixes---------Fixed assertion failure when selecting the same font multiple times insequence.Fixed reference counting so cache_destroy functions work.Remove unintended copyright statement from files generated withPostScript backend.Fixed to eliminate new warnings from gcc 3.4 and gcc 4.Snapshot 0.2.0 (2004-10-27 Carl Worth <cworth@cworth.org>)===========================================================New license: LGPL/MPL---------------------The most significant news with this release is that the license ofcairo has changed. It is now dual-licensed under the LGPL and theMPL. For details see the COPYING file as well as COPYING-LGPL-2.1 andCOPYING-MPL-1.1.I express my thanks to everyone involved in the license change processfor their patience and support!New font and glyph internals----------------------------Graydon Hoare has put a tremendous amount of work into new internalsfor handling fonts and glyphs, including caches where appropriate.This work has no impact on the user-level API, but should result ingreat performance improvements for applications using text.New test suite--------------This snapshot of cairo includes a (small) test suite incairo/test. The tests can be run with "make check". The test suite wasdesigned to make it very easy to add new tests, and we hope to seemany contributions here. As you find bugs, please try adding a minimaltest case to the suite, and submit it with the bug report to thecairo@cairographics.org mailing list. This will make it much easierfor us to track progress in fixing bugs.New name for glitz backend--------------------------The gl backend has now been renamed to the glitz backend. This meansthat the following names have changed: CAIRO_HAS_GL_SURFACE -> CAIRO_HAS_GLITZ_SURFACE cairo_set_target_gl -> cairo_set_target_glitz cairo_gl_surface_create -> cairo_glitz_surface_createThis change obviously breaks backwards compatibility for applicationsusing the old gl backend.Up-to-date with latest glitz snapshots--------------------------------------This snapshot of cairo is now up to date with the latest glitzsnapshot, (currently 0.2.3). We know that the latest cairo and glitzsnapshots have been incompatible for a very long time. We've finallyfixed that now and we're determined to not let that happen again.Revert some tessellation regression bugs----------------------------------------People that have been seeing some tessellation bugs, (eg. leakedfills), in the CVS version of cairo may have better luck with thisrelease. A change since the last snapshot was identified to triggersome of these bugs and was reverted before making the snapshot. Thebehavior should be the same as the previous (0.1.23) snapshot.Miscellaneous changes---------------------Changed CAIRO_FILTER_DEFAULT to CAIRO_FILTER_BEST to make gradientseasier.Track XCB API change regarding iterators.Various bug fixes-----------------Fix calculation of required number of vertices for pen.Fix to avoid zero-dimensioned pixmaps.Fix broken sort of pen vertices.Fix bug when cairo_show_text called with a NULL string.Fix clipping bugs.Fix bug in computing image length with XCB.Fix infinite loop bug in cairo_arc.Fix memory management interactions with libpixman.Snapshot 0.1.23 (2004-05-11 Carl Worth <cworth@isi.edu>)========================================================Fixes for gcc 3.4-----------------Fix prototype mismatches so that cairo can be built by gcc 3.4.Updates to track glitz----------------------Various fixes to support the latest glitz snapshot (0.1.2).Gradient updates----------------Radial gradients now support both inner and outer circles.Transformed linear gradients are now properly handled.Fixes for extend type reflect.Glitz updates-------------Converted shading routines to use fixed point values and introduced ashading operator structure for more efficient shading calculations.Support compositing with mask surface when mask is solid ormulti-texturing is available.PNG backend cleanups--------------------Fix output to properly compensate for pre-multiplied alpha format in cairo.Add support for A8 and A1 image formats.Bug fixes---------Avoid crash or infinite loop on null strings and degeneratively shortsplines.New? bugs in cairo_clip-----------------------There are some fairly serious bugs in cairo_clip. It is sometimescausing an incorrect result. And even when it does work, it issometimes so slow as to be un
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -