Author: tpapp Date: Sat Jul 21 09:41:55 2007 New Revision: 8 Modified: context.lisp surface.lisp tables.lisp tutorial/example.lisp tutorial/tutorial.tex Log: changed to longer property names to avoid name clashes Modified: context.lisp ============================================================================== --- context.lisp (original) +++ context.lisp Sat Jul 21 09:41:55 2007 @@ -66,7 +66,7 @@ (multiple-value-prog1 (progn ,@body) (let ((,status (lookup-cairo-enum (cairo_status ,pointer-name) table-status))) - (unless (eq ,status 'success) + (unless (eq ,status 'status-success) (warn "function returned with status ~a." ,status)))) (warn "context is not alive"))))) Modified: surface.lisp ============================================================================== --- surface.lisp (original) +++ surface.lisp Sat Jul 21 09:41:55 2007 @@ -30,7 +30,7 @@ `(multiple-value-prog1 (progn ,@body) (let ((,status (lookup-cairo-enum (cairo_surface_status ,pointer) table-status))) - (unless (eq ,status 'success) + (unless (eq ,status 'status-success) (warn "function returned with status ~a." ,status)))))) (defmacro with-surface ((surface pointer) &body body) Modified: tables.lisp ============================================================================== --- tables.lisp (original) +++ tables.lisp Sat Jul 21 09:41:55 2007 @@ -9,99 +9,99 @@ (export (cdr i))))) (exporting-table table-format - '((:CAIRO_FORMAT_ARGB32 . argb32) - (:CAIRO_FORMAT_RGB24 . rgb24) - (:CAIRO_FORMAT_A8 . a8) - (:CAIRO_FORMAT_A1 . a1))) + '((:CAIRO_FORMAT_ARGB32 . format-argb32) + (:CAIRO_FORMAT_RGB24 . format-rgb24) + (:CAIRO_FORMAT_A8 . format-a8) + (:CAIRO_FORMAT_A1 . format-a1))) (exporting-table table-antialias - '((:CAIRO_ANTIALIAS_DEFAULT . default) - (:CAIRO_ANTIALIAS_NONE . none) - (:CAIRO_ANTIALIAS_GRAY . gray) - (:CAIRO_ANTIALIAS_SUBPIXEL . subpixel))) + '((:CAIRO_ANTIALIAS_DEFAULT . antialias-default) + (:CAIRO_ANTIALIAS_NONE . antialias-none) + (:CAIRO_ANTIALIAS_GRAY . antialias-gray) + (:CAIRO_ANTIALIAS_SUBPIXEL . antialias-subpixel))) (exporting-table table-fill-rule - '((:CAIRO_FILL_RULE_WINDING . winding) - (:CAIRO_FILL_RULE_EVEN_ODD . odd))) + '((:CAIRO_FILL_RULE_WINDING . fill-rule-winding) + (:CAIRO_FILL_RULE_EVEN_ODD . fill-rule-odd))) (exporting-table table-line-cap - '((:CAIRO_LINE_CAP_BUTT . butt) - (:CAIRO_LINE_CAP_ROUND . round) - (:CAIRO_LINE_CAP_SQUARE . square))) + '((:CAIRO_LINE_CAP_BUTT . line-cap-butt) + (:CAIRO_LINE_CAP_ROUND . line-cap-round) + (:CAIRO_LINE_CAP_SQUARE . line-cap-square))) (exporting-table table-line-join - '((:CAIRO_LINE_JOIN_MITER . miter) - (:CAIRO_LINE_JOIN_ROUND . round) - (:CAIRO_LINE_JOIN_BEVEL . bevel))) + '((:CAIRO_LINE_JOIN_MITER . line-join-miter) + (:CAIRO_LINE_JOIN_ROUND . line-join-round) + (:CAIRO_LINE_JOIN_BEVEL . line-join-bevel))) (exporting-table table-operator - '((:CAIRO_OPERATOR_CLEAR . clear) - (:CAIRO_OPERATOR_SOURCE . source) - (:CAIRO_OPERATOR_OVER . over) - (:CAIRO_OPERATOR_IN . in) - (:CAIRO_OPERATOR_OUT . out) - (:CAIRO_OPERATOR_ATOP . atop) - (:CAIRO_OPERATOR_DEST . dest) - (:CAIRO_OPERATOR_DEST_OVER . dest-over) - (:CAIRO_OPERATOR_DEST_IN . dest-in) - (:CAIRO_OPERATOR_DEST_OUT . dest-out) - (:CAIRO_OPERATOR_DEST_ATOP . dest-atop) - (:CAIRO_OPERATOR_XOR . xor) - (:CAIRO_OPERATOR_ADD . add) - (:CAIRO_OPERATOR_SATURATE . saturate))) + '((:CAIRO_OPERATOR_CLEAR . operator-clear) + (:CAIRO_OPERATOR_SOURCE . operator-source) + (:CAIRO_OPERATOR_OVER . operator-over) + (:CAIRO_OPERATOR_IN . operator-in) + (:CAIRO_OPERATOR_OUT . operator-out) + (:CAIRO_OPERATOR_ATOP . operator-atop) + (:CAIRO_OPERATOR_DEST . operator-dest) + (:CAIRO_OPERATOR_DEST_OVER . operator-dest-over) + (:CAIRO_OPERATOR_DEST_IN . operator-dest-in) + (:CAIRO_OPERATOR_DEST_OUT . operator-dest-out) + (:CAIRO_OPERATOR_DEST_ATOP . operator-dest-atop) + (:CAIRO_OPERATOR_XOR . operator-xor) + (:CAIRO_OPERATOR_ADD . operator-add) + (:CAIRO_OPERATOR_SATURATE . operator-saturate))) (exporting-table table-font-slant - '((:CAIRO_FONT_SLANT_NORMAL . normal) - (:CAIRO_FONT_SLANT_ITALIC . italic) - (:CAIRO_FONT_SLANT_OBLIQUE . oblique))) + '((:CAIRO_FONT_SLANT_NORMAL . font-slant-normal) + (:CAIRO_FONT_SLANT_ITALIC . font-slant-italic) + (:CAIRO_FONT_SLANT_OBLIQUE . font-slant-oblique))) (exporting-table table-font-weight - '((:CAIRO_FONT_WEIGHT_NORMAL . normal) - (:CAIRO_FONT_WEIGHT_BOLD . bold))) + '((:CAIRO_FONT_WEIGHT_NORMAL . font-weight-normal) + (:CAIRO_FONT_WEIGHT_BOLD . font-weight-bold))) (exporting-table table-subpixel-order - '((:CAIRO_SUBPIXEL_ORDER_DEFAULT . default) - (:CAIRO_SUBPIXEL_ORDER_RGB . rgb) - (:CAIRO_SUBPIXEL_ORDER_BGR .bgr) - (:CAIRO_SUBPIXEL_ORDER_VRGB . vrgb) - (:CAIRO_SUBPIXEL_ORDER_VBGR . vbgr))) + '((:CAIRO_SUBPIXEL_ORDER_DEFAULT . subpixel-order-default) + (:CAIRO_SUBPIXEL_ORDER_RGB . subpixel-order-rgb) + (:CAIRO_SUBPIXEL_ORDER_BGR . subpixel-order-bgr) + (:CAIRO_SUBPIXEL_ORDER_VRGB . subpixel-order-vrgb) + (:CAIRO_SUBPIXEL_ORDER_VBGR . subpixel-order-vbgr))) (exporting-table table-hint-style - '((:CAIRO_HINT_STYLE_DEFAULT . default) - (:CAIRO_HINT_STYLE_NONE . none) - (:CAIRO_HINT_STYLE_SLIGHT . slight) - (:CAIRO_HINT_STYLE_MEDIUM . medium) - (:CAIRO_HINT_STYLE_FULL . full))) + '((:CAIRO_HINT_STYLE_DEFAULT . hint-style-default) + (:CAIRO_HINT_STYLE_NONE . hint-style-none) + (:CAIRO_HINT_STYLE_SLIGHT . hint-style-slight) + (:CAIRO_HINT_STYLE_MEDIUM . hint-style-medium) + (:CAIRO_HINT_STYLE_FULL . hint-style-full))) (exporting-table table-hint-metrics - '((:CAIRO_HINT_METRICS_DEFAULT . default) - (:CAIRO_HINT_METRICS_OFF . off) - (:CAIRO_HINT_METRICS_ON . on))) + '((:CAIRO_HINT_METRICS_DEFAULT . hint-metrics-default) + (:CAIRO_HINT_METRICS_OFF . hint-metrics-off) + (:CAIRO_HINT_METRICS_ON . hint-metrics-on))) (exporting-table table-status - '((:CAIRO_STATUS_SUCCESS . success) - (:CAIRO_STATUS_NO_MEMORY . no-memory) - (:CAIRO_STATUS_INVALID_RESTORE . invalid-restore) - (:CAIRO_STATUS_INVALID_POP_GROUP . invalid-pop-group) - (:CAIRO_STATUS_NO_CURRENT_POINT . no-current-point) - (:CAIRO_STATUS_INVALID_MATRIX . invalid-matrix) - (:CAIRO_STATUS_INVALID_STATUS . invalid-status) - (:CAIRO_STATUS_NULL_POINTER . null-pointer) - (:CAIRO_STATUS_INVALID_STRING . invalid-string) - (:CAIRO_STATUS_INVALID_PATH_DATA . invalid-path-data) - (:CAIRO_STATUS_READ_ERROR . read-error) - (:CAIRO_STATUS_WRITE_ERROR . write-error) - (:CAIRO_STATUS_SURFACE_FINISHED . surface-finished) - (:CAIRO_STATUS_SURFACE_TYPE_MISMATCH . surface-type-mismatch) - (:CAIRO_STATUS_PATTERN_TYPE_MISMATCH . pattern-type-mismatch) - (:CAIRO_STATUS_INVALID_CONTENT . invalid-content) - (:CAIRO_STATUS_INVALID_FORMAT . invalid-format) - (:CAIRO_STATUS_INVALID_VISUAL . invalid-visual) - (:CAIRO_STATUS_FILE_NOT_FOUND . file-not-found) - (:CAIRO_STATUS_INVALID_DASH . invalid-dash) - (:CAIRO_STATUS_INVALID_DSC_COMMENT . invalid-dsc-comment) - (:CAIRO_STATUS_INVALID_INDEX . invalid-index) - (:CAIRO_STATUS_CLIP_NOT_REPRESENTABLE . clip-not-representable))) + '((:CAIRO_STATUS_SUCCESS . status-success) + (:CAIRO_STATUS_NO_MEMORY . status-no-memory) + (:CAIRO_STATUS_INVALID_RESTORE . status-invalid-restore) + (:CAIRO_STATUS_INVALID_POP_GROUP . status-invalid-pop-group) + (:CAIRO_STATUS_NO_CURRENT_POINT . status-no-current-point) + (:CAIRO_STATUS_INVALID_MATRIX . status-invalid-matrix) + (:CAIRO_STATUS_INVALID_STATUS . status-invalid-status) + (:CAIRO_STATUS_NULL_POINTER . status-null-pointer) + (:CAIRO_STATUS_INVALID_STRING . status-invalid-string) + (:CAIRO_STATUS_INVALID_PATH_DATA . status-invalid-path-data) + (:CAIRO_STATUS_READ_ERROR . status-read-error) + (:CAIRO_STATUS_WRITE_ERROR . status-write-error) + (:CAIRO_STATUS_SURFACE_FINISHED . status-surface-finished) + (:CAIRO_STATUS_SURFACE_TYPE_MISMATCH . status-surface-type-mismatch) + (:CAIRO_STATUS_PATTERN_TYPE_MISMATCH . status-pattern-type-mismatch) + (:CAIRO_STATUS_INVALID_CONTENT . status-invalid-content) + (:CAIRO_STATUS_INVALID_FORMAT . status-invalid-format) + (:CAIRO_STATUS_INVALID_VISUAL . status-invalid-visual) + (:CAIRO_STATUS_FILE_NOT_FOUND . status-file-not-found) + (:CAIRO_STATUS_INVALID_DASH . status-invalid-dash) + (:CAIRO_STATUS_INVALID_DSC_COMMENT . status-invalid-dsc-comment) + (:CAIRO_STATUS_INVALID_INDEX . status-invalid-index) + (:CAIRO_STATUS_CLIP_NOT_REPRESENTABLE . status-clip-not-representable))) (defun lookup-cairo-enum (cairo-enum table) (let ((enum (cdr (assoc cairo-enum table)))) Modified: tutorial/example.lisp ============================================================================== --- tutorial/example.lisp (original) +++ tutorial/example.lisp Sat Jul 21 09:41:55 2007 @@ -75,7 +75,7 @@ (set-source-rgb 1 1 1) (fill-path) ;; setup font -(select-font-face "Arial" 'normal 'normal) +(select-font-face "Arial" 'font-slant-normal 'font-weight-normal) (set-font-size size) ;; starting point (mark-at x y 2 1 0 0) ; red @@ -129,7 +129,7 @@ (set-source-rgb 0 0 1) (stroke) ;; "cl-cairo2" in Arial bold to the center -(select-font-face "Arial" 'normal 'bold) +(select-font-face "Arial" 'font-slant-normal 'font-weight-bold) (set-font-size 100) (set-source-rgba 1 0.75 0 0.5) ; orange (show-text-aligned "cl-cairo2" (/ size 2) (/ size 2)) @@ -159,7 +159,7 @@ (defparameter width 1024) (defparameter height 768) (defparameter max-angle 40d0) -(with-png-file ("hearts.png" 'rgb24 width height) +(with-png-file ("hearts.png" 'format-rgb24 width height) ;; fill with white (rectangle 0 0 width height) (set-source-rgb 1 1 1) Modified: tutorial/tutorial.tex ============================================================================== --- tutorial/tutorial.tex (original) +++ tutorial/tutorial.tex Sat Jul 21 09:41:55 2007 @@ -54,10 +54,10 @@ \href{http://cairographics.org/}{Cairo} is a 2D graphics library with support for multiple output devices. The \lstinline!cl-cairo2! -package provides Common Lisp bindings for the Cairo API. Alternatives +package provides Common Lisp bindings for the Cairo API.\footnote{Alternatives are \href{http://www.cliki.net/cl-cairo}{cl-cairo}, written by Lars -Nostdal and others (which appears to be dormant), and Christian -Haselbach's \href{http://www.cliki.net/cffi-cairo}{cffi-cairo}. +Nostdal and others (this project appears to be dormant), and Christian +Haselbach's \href{http://www.cliki.net/cffi-cairo}{cffi-cairo}.} \lstinline!cl-cairo2! is written with the following principles in mind: @@ -159,7 +159,7 @@ write this to the bitmap file when you are done. The macro \lstinline!with-png-file! will take care of these details: use it like \begin{lstlisting} -(with-png-file ("example.png" 'rgb24 200 100) +(with-png-file ("example.png" 'format-rgb24 200 100) ;; drawing commands ...) \end{lstlisting} @@ -171,10 +171,10 @@ lookup tables (assoc lists) for this purpose, which are defined in \verb!tables.lisp!. Cairo constants \texttt{CAIRO\_\textsl{PROPERTY}\_\textsl{SOMETHING}} usually map to -the Lisp symbol \lstinline!something!, and can only be used in setting -or querying \texttt{PROPERTY}. For example, \verb!CAIRO_FORMAT_RGB24! -is mapped to \lstinline!rgb24!, and using it for some other property -will create an error. +the Lisp symbol \lstinline!property-something!, and can only be used +in setting or querying \texttt{PROPERTY}. For example, +\verb!CAIRO_FORMAT_RGB24! is mapped to \lstinline!format-rgb24!, and +using it for some other property will create an error. Likewise, names of the Lisp function are easy to deduce from the name of the C function in the Cairo API: just drop the \verb!cairo_! prefix @@ -290,7 +290,7 @@ \verb!text.lisp! for an enumeration of what is missing). You can select font face and size using commands like \begin{lstlisting} - (select-font-face "Arial" 'italic 'bold) + (select-font-face "Arial" 'font-slant-italic 'font-weight-bold) (select-font-size 12) \end{lstlisting} and use \lstinline!(show-text "hello world")! to draw it. You can
participants (1)
-
tpapp@common-lisp.net