[cells-devel] Cells: Why am I put in the debugger here ?

Ramarren ramarren at gmail.com
Wed May 20 20:24:38 UTC 2009


Hello,

On Wed, May 20, 2009 at 7:43 PM, Frank Goenninger <frgo at me.com> wrote:
>  :foreign-object (c? (progn
>                        (when (and (^foreign-object)

I think the problem is here, you have a slot dependent on itself. To
access slot previous value use .cache symbol macro, like this:

(defmd color ()
 red
 green
 blue
 alpha
 foreign-object

 :md-name (gensym "CELLO-COLOR-")
 :red     (c-in 0)
 :green   (c-in 0)
 :blue    (c-in 0)
 :alpha   (c-in 0)
 :foreign-object (c? (progn
                       (when (and .cache
                                  (not (null-pointer-p .cache)))
                         (foreign-free .cache))
                       (let ((fo (foreign-alloc :float :count 4)))
                         (when (not (null-pointer-p fo))
                           (progn
                              (setf (mem-aref fo :float 0)
                                   (/ (^red) 255.00000000000f0))
                              (setf (mem-aref fo :float 1)
                                    (/ (^green) 255.0000000000f0))
                              (setf (mem-aref fo :float 2)
                                    (/ (^blue) 255.0000000000f0))
                              (setf (mem-aref fo :float 3)
                                    (/ (^alpha) 255.0000000000f0))))))))

Regards,
Jakub Higersberger




More information about the cells-devel mailing list