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 ,@body) :test #'equal)) (t (progn ,@body)))))))