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
_______________________________________________
cells-devel site list
[email protected]
http://common-lisp.net/mailman/listinfo/cells-devel