[cells-devel] Problem with defmd and dependency ...
Ken Tilton
kennytilton at optonline.net
Thu Aug 30 13:03:45 UTC 2007
Frank Goenninger wrote:
> Hi Kenny (and all on the list):
>
> I have a simple defmd:
>
> (defmd gnc-point ()
> (x (c-in 0))
> (y (c-in 0))
> (z (c-in 0))
> (foreign-ptr (c_? (let ((ptr (or (^foreign-ptr) (fgn-alloc 'glInt 3
> :gnc-point))))
> (when ptr
> (setf (eltgli ptr 0) (^x))
> (setf (eltgli ptr 1) (^y))
> (setf (eltgli ptr 2) (^z)))
> ptr))))
>
>
> This is a model for a point ( x | y | z ) and a foreign object pointer.
> The pointer shall be set to a an FFI memory pointer (via CFFI) when the
> instance is created. Also, the elements of the memory array (which is 3
> glInt, this being three OpenGL Integers) shall be updated when any of
> the coordinates x y z is changed...
>
> I get x, y, and z updated but the foreign-ptr remains NIL ... What am
> I doing wrong ???
Sorry, I was out for the day at the US Open Tennis tournament.
I am just going to throw notes over the wall cuz no time to dig...
Cells debugging issue: pretty sure you can turn on some global such as
*c-debug* to have been warned earlier about referencing the cell in its
own rule. I might even have made it a parameter to cells-reset.
To do what you are trying to do, use (I think) the .cache symbol-macro
(or is it .cache.?):
(or .cache.
(let ((ptr <allocate>))
(assert (and (^x)(^y)(^z)))
(setf eo x e1 y e2 z)))
Something like that.
hth, kt
More information about the cells-devel
mailing list