-
Notifications
You must be signed in to change notification settings - Fork 15
Home
cl-cairo2 is a Common Lisp CFFI binding for Cairo. It has a Cliki Page.
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
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!
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.
USER-FONT-FACE
implementation, example included. The latest cl-freetype2 is required for the example to run. Some possible caveats; see source commentary.
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.
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.