Skip to content
Ryan Pavlik edited this page Aug 26, 2013 · 8 revisions

cl-cairo2 is a Common Lisp CFFI binding for Cairo. It has a Cliki Page.

News

2013/8/26

Various changes over time:

  • File-based surfaces should now respect *DEFAULT-PATHNAME-DEFAULTS* for filenames
  • Recording surfaces
  • CREATE-SIMILAR-IMAGE, SURFACE-MARK-DIRTY
  • Freetype integration

2012/3/28

The commit log pretty much says it all:

  • Wrappers regenerated from 1.12.

  • Meshes! Most functions are implemented; cl-cairo2 doesn't yet implement PATH stuff, so you can't mesh-get-path .. yet.

  • Previously unimplemented pattern functions like get-source, pattern-get-surface, etc, are implemented.

  • cairo versions are now in features. These are set when you load the shared lib. Currently there is :cairo-1.8, :cairo-1.10, and :cairo-1.12. Everything up to the current version is included.

  • "New" demo framework. Loading cl-cairo2-demos, you can run demos with (cairo-demo:run DEMO-NAME). Current demos are the arc demo moved from cl-xcb-xlib-demos, and a simple mesh demo.

For a demo, try:

(cairo-demo:run 'cairo-demo:arc1 :output-file "arc1.png")
(cairo-demo:run 'cairo-demo:mesh1 :output-file "mesh1.png")

You can run these with xcb.clx.demo:cairo-run as well!

2012/3/27

You can now use cl-cairo2 directly with cl-xcb-xlib, which utilizes cairo-xcb. Demo for this coming soon to cl-xcb-xlib-demos. Also, 1.12.0 update coming soon.

2012/1/31

USER-FONT-FACE implementation, example included. The latest cl-freetype2 is required for the example to run. Some possible caveats; see source commentary.

2012/1/30

cl-freetype2 integration basically done, example included. Cairo's handling of Freetype isn't particularly satisfactory, especially in a Common Lisp environment; next goal is therefore Cairo's user font API.

2012/1/26

Cairo 1.10.2 preliminary integration is done; most new constants (compositing, errors, etc.) should be available. MASK-SURFACE is implemented, but otherwise no new API. Next goal is font implementation and cl-freetype2 integration.

Clone this wiki locally