[cl-gd-devel] :do-not-draw of draw-freetype-string
Jong-won Choi
jc at itsec.co.kr
Fri Mar 30 09:04:46 UTC 2007
Edi Weitz wrote:
> Could you please send a self-contained example that I can use to
> reproduce your problem? Also, it's generally a good idea to tell us
> which Lisp you are using, which OS you are on, and so on.
>
I thought they are unrelated on this specific problem (maybe I'm wrong).
I'm using LW4.4.5 and Ubuntu LTS
>
>> I think there was no transformer for x and y coordinates, and
>> finally gd-image-string-ft was called with the exactly same x and y
>> arguments of draw-freetype-string.
>>
>> I do not have this problem with old cl-gd (0.4.8). Here is a diff
>> output between 0.4.8 and 0.5.3(draw-freetype-string only):
>>
>
> I don't see anything in the diff that would affect transformations.
>
I don't know much about cl-gd details. But with 0.4.8 code, _image_ in
with-transformed-alternative(code below) is not *null-image* yet. I
think that's the main difference between 0.4.8 and 0.5.3. I'm guessing,
for 0.5.3 code (find image *transformers* ...) returns nil with
*null-image*, in contrast to 0.4.8 code returns a correct(?)
transformer. For this one I can't send you a simple example - because
the existing code is very hairy.
------------------------------------
(defmacro with-transformed-alternative ((&rest transformations) &body body)
"Internal macro used to make functions
transformation-aware. TRANSFORMATION is a list of (EXPR
TRANSFORMATION) pairs where each EXPR will be replaced by the
transformation denoted by TRANSFORMATION."
(with-unique-names (transformer)
(let ((transformations-alist
(loop for (expr transformation) in transformations
collect `(,expr . (funcall (,transformation
,transformer) ,expr)))))
;; note that we always use the name 'IMAGE' - no problem because
;; this is a private macro
`(let ((,transformer (find image *transformers* :key #'image)))
(cond (,transformer
,(sublis transformations-alist
`(progn , at body)
:test #'equal))
(t (progn
, at body)))))))
More information about the Cl-gd-devel
mailing list