Changes in version 1.7-1 o Replace `sys/errno.h` with `errno.h` for compatibiliy with OpenIndiana. (#53) Changes in version 1.7-0 (2025-10-29) o add support for all R graphics device features up to GE API 16 (R 4.5.0). This includes fill patterns, masks (GE 13) and groups (GE 14). Thanks to Paul Murrell! o removed gdd_get_version C API and CAIROGD_VER. This means that it no longer needs mkdist and can be directly created with R CMD build. o restore the use of WIN32 API to find fonts for cairographics > 1.16 (where avaiable) since it was removed in those versions. (#50) Changes in version 1.6-5 (2025-08-20) o add dummy functions from GE 15 API (R 4.2.0) to avoid segaults in grid. o silence warnings about loss of precision. Changes in version 1.6-4 o removed bashisms from the configure script. o locatorBell option will be no longer honored in R 4.4.0 and higher for the X11 back-end, because Rf_GetOption() is no longer part of the API. Changes in version 1.6-3 o Add support for glyph rendering (see grid.glyph()). o Fix compilation when CAIRO_HAS_PDF_SURFACE is false. (#48) o Replace gsetVar() with GEaddDevice2() where supported. Changes in version 1.6-2 (2023-11-28) o Minor bugfixes: invalid format specified in UBiDi error string, incorrect font name passed if the font family name is too long. o Update Windows build to use pkg-config (Thanks to Tomáš Kalibera!) (#43) Changes in version 1.6-1 (2023-08-18) o The following additional arguments can be used to set PDF metadata: title, author, subject, creator, keywords, create.date and modify.date if cairo version 1.16 or higher is used. (#15) o The `version` argument for PDF back-end is now honored and defaults to 1.4. Note that currently cairo library only supports PDF target versions 1.4 or 1.5. o The xlib back-end no longer requires headers from Xt. (#39) Changes in version 1.6-0 (2022-07-05) o Added text drawing using Harfbuzz and ICU. This significantly improves the quality of text rendeded by Cairo and enables support for right-to-left and bi-directional text. (#23) It also enables the use of ligatures. (#18) This feature is only enabled if `pkg-config` is present and knows how to use the `harfbuzz-icu` module. o The `family=` argument in text drawing is now honored also for FreeType and Harfbuzz back-ends. o configure gains two arguments: `--with-freetype` and `--with-harfbuzz`. They both default to `auto` which means FreeType and Harfbuzz will be used if present. If set to `yes` then the support is required. If set to `no` (or the `--without` form is used) then the corresponding support is explicitly disabled. Note that Harfbuzz requires FreeType. o added `--enable-debug` argument to configure which will make Cairo extremely chatty on the console. o By default `cairo-ft` will be ignored on Windows, becasue it it does not work without associated FontConfig configuration files and font cache. (#37) This behavior can be changed by using `-DUSE_CAIRO_FT=1` to force the use of `cairo-ft` unconditionally. o Cairo.capabilities() now also reports two capabilities which are not format-related: "freetype" and "harfbuzz". The former indicates whether `cairo-ft` is used and the later indicates whether the newly introduced Harfbuzz + ICU bi-directional rendering support is present. Changes in version 1.5-15 (2022-03-16) o CairoX11 (xlib back-end): install an X11 I/O error handler while processing events such that broken connections are detected and don't kill R. o added the option to license under GPL v3. All original authors explicitly agreed and included code based on R is licensed under GPL-2+ allowing this. Changes in version 1.5-14 (2021-12-21) o update configure/autoconf, some dependencies such as libtiff are now also detected using pkg-config. Tests are now correctly using CPPFLAGS from R. o add entry points for GE version 13 (needed for R 4.1.0) Note that this is just a port of CRAN NMU which was posted as version 1.15-12.2 on CRAN, but was not an actual Cairo version. Changes in version 1.5-13 o add support for CairoFont(usePUA=FALSE) to support regular fonts without Adobe Symbol Encoding as symbol fonts in R 4.0.0 and higher. Setting usePUA=FALSE in older versions of R will issue a warning. Changes in version 1.5-12 (2020-04-11) o use pkg-config --static --libs when needed o adapt to API changes in R 4.0.0, also improves symbol placement in recent R versions Changes in version 1.5-11 (2020-03-09) o fixed missing PROTECT() (thanks to Tomáš Kalibera) o minor changes to remove R CMD check warnings Changes in version 1.5-10 (2019-03-28) o support compilation with C++11-only compilers (#19) o add path.expand() for filenames (#12) o add C symbol registration o update configure.ac to be more compliant Changes in version 1.5-9 (2015-09-26) o work around bug #45376 in freetype 2.6.0 causing compilation failure Changes in version 1.5-8 (2015-07-30) o fix a premature memory release in locator handling for raster back-ends. Changes in version 1.5-7 (2015-07-28) o fix a segfault in CairoFontMatch() in case FcNameParse() fails (closes #10) o image back-end can now provide custom locator if a `locator` argument is passed to `Cairo()` with the desired callback function. The callback function accepts `dev` argument and should return either a numeric vector of length 2 (x, y) or `NULL`. This is mainly useful for `type='raster'` passed to external UI where that UI can provide locator capability. o add Cairo.snapshot() which is similar to recordPlot() but also allows the retrieval of the last snapshot. Changes in version 1.5-6 (2014-06-26) o scale line width by the same amount as fonts such that resolution changes are consistent even in that respect Changes in version 1.5-5 (2013-12-24) o fix onSave reporting incorrect page number for the last page (introduced in 1.5-4, closes #6) o scale fonts unconditionally according to the dpi adjustment (fixes issues with grid graphics and dpi changes) Changes in version 1.5-4 (2013-12-14) o fix invalid pointsize scaling if dpi auto-detection is used (closes #1) o fix failure to emit final page in some multi-page settings (closes #4) o the `res' parameter in CairoPNG(), CairoTIFF() and CairoJPEG() it now passed down to Cairo() which now accepts `res' to override the value of `dpi' if `res' is set to anyhting other than NA or NULL. (closes #3) o release onSave callback function on close (closes #2) Changes in version 1.5-3 (2013-12-03) o remove compatibility layers to make R 3.x happy o adjust pointsize according to the dpi setting Changes in version 1.5-2 (2012-11-05) o added Cairo.onSave() callback which allows R code to be run when Cairo finishes a page o added Cairo.serial() function which allows user code to check whether the graphics have been updated o bugfix/update in Cairo connection patch (by Karl Millar) Changes in version 1.5-1 (2011-12-11) o add support for dev.hold()/dev.flush() o use new R 2.14.0 device capabilities advertizing feature o fix memory leak when setting fonts via CairoFonts() o explicitly request font anti-aliasing even if it is not the surface default - in particular Windows has disabled font anti-aliasing by default Changes in version 1.5-0 (2011-10-01) o fix swapped bold vs italic traits if freetype is not available o use Times font for symbols on Windows because Symbol font doesn't seem to support Unicode o add support for poly-paths o add support for dev.capture()/grid.cap() o added new type "raster" that creates an image back-end without any output file. It can be used in conjunction with dev.capture() to create in-memory image representations, e.g.: Cairo(type='raster') plot(1:10, col=2) p = writePNG(dev.capture(native=TRUE), raw()) will create a raw vector containg a PNG image. Changes in version 1.4-9 (2011-04-06) o force static built-in libraries on Windows to prevent Cairo from picking up broken system libraries Changes in version 1.4-8 (2011-03-08) o spurious character in the 1.4-7 w32-backed source has made it unusable on Windows. This is a re-packaging of 1.4-7 without that spurious character. Changes in version 1.4-7 o fix a bug in raster support causing raster to be usable only once o win backend: release and re-get DC on resize -- fixes resizing issues in CairoWin() for some Windows versions Changes in version 1.4-6 (2011-02-11) o adds raster image support (courtesy of R core) o update Windows libcairo binary to cairo 1.10.2, use static build to avoid DLL issues and add 64-bit binary Changes in version 1.4-5 (2009-07-18) o minor Windows configuration change o fix SET_VECTOR_ELT issue for R 2.9.0+ Changes in version 1.4-4 (2008-10-19) o adapt to changes in R-devel (2.9.0-to-be), clean up warnings Changes in version 1.4-3 (2008-07-28) o make the use of an invalid font non-fatal o allow Cairo to compile on some older systems that don't have trunc() o updated libcairo binary for Windows to 1.6.4 (from GTK+) Changes in version 1.4-2 (2008-04-04) o adapt to even more changes in R 2.7 Changes in version 1.4-1 (2008-03-24) o adapt to R 2.7 changes Changes in version 1.4-0 o fix DPI detection in X11 back-end and use 90dpi as a fallback o fix cra settings to be closer to what other devices use o CairoX11 no longer fixes DPI to 72, "auto" is now the default. In addition, CairoWin and CairoX11 allow additional arguments to ba passed to Cairo. Changes in version 1.3-5 (2007-09-01) o adapt to const char* CHARs in R-devel o fix a bug in CairoSVG (wrong argument name) o fix a bug in CairoPS (units were not set to "in" and width/height had no defaults) o fix unintentional doubling of the .ps suffix Changes in version 1.3-4 (2007-05-10) o more fixes in flag-guessing o some vector backends (e.g. PDF, SVG) were falling back to bitamp rasterization, we try to prevent this o address expose issues with some X11 servers o add CairoSVG wrapper o add an unified way to register back-ends and get a list of all supported types. o add Cairo.capabilities() function Changes in version 1.3-3 (2007-04-25) o improve detection of cairo and its dependencies o work around missing API such that cairo 1.0 can be used. However, it is strongly encouraged to use cairo 1.2 or possibly 1.4 as they contain important bugfixes. o fix page numbering to start at 1 (was 0) and update documentation correspondingly Changes in version 1.3-2 (2007-04-18) o added format autodetection for tiff and png. The 32-bit version of either format is used if the background is not opaque. o fixed bug in the value returned by Cairo o added type and file attributes to the Cairo object o added (hidden, experimental) functions that allow direct modification of image content in Cairo (.image, .ptr.to.raw and .raw.to.ptr) Changes in version 1.3-1 o change semantics of canvas and bg to match other devices: canvas is used by devices that don't support any kind of transparency in case bg is translucent o fixed data ordering issues in TIFF and JPEG output o added "compression" parameter to TIFF back-end which now defaults to LZW compression Changes in version 1.3-0 o add support for canvas and dpi specification o allow backends to detect native resolution o add support for custom parameters (e.g. quality for jpeg) Changes in version 1.2-1 o improve rendering on bitmap devices by aligning straight lines to the pixel grid and adding bleed to such fills. o added wrappers that take exactly the same parameters as existing devices such as png, jpeg, pdf, postscript, X11 or windows and map them to calls to Cairo. They can be used to replace native devices by Cairo without the need to change existing code. o added namespace Changes in version 1.2-0 o additional interactive back ends: X11 (XLib) and win (Win32) o enhanced back-end API to support interactive back-ends o change default backgroud color to "white", because alpha-blending doesn't work properly in cairo when painting on purely transparent background. o change the way filenames are interpreted, use multi-file printf convention as other devices do. o added support for jpeg and tiff image formats Changes in version 1.1-0 o additional file/stream back-ends: svg, ps o enhanced back-end API Changes in version 1.0-0 o fixed function names to not conflict with GDD Changes in version 0.1-5 o added R connections patch support at config time. see http://wiki.r-project.org/rwiki/doku.php?id=developers:r_connections_api Changes in version 0.1-4 o add pdf backend (Jeff Horner) o fix up backend infrastructure (Jeff Horner) Changes in version 0.1-3 o add freetype and fontconfig support (Jeff Horner) o fix memory leaks (Jeff Horner) o make transparent background default with bg="transparent" Changes in version 0.1-2 o add support for caps/joints (patch by Jeff Horner) o make rectangels to snap to grid (patch by Jeff Horner) o use transparent image background by default Changes in version 0.1-1 o first official release, image backend works, others are waiting to be implemented by volunteers