(bind-func xtm_get_lights
(let ((i 0)
(lights:xtm_lights* (zalloc))
(p:float* (zalloc (* 10 4)))
(t:float* (zalloc (* 10 4)))
(u:float* (zalloc (* 10 4)))
(a:float* (zalloc (* 10 4)))
(d:float* (zalloc (* 10 4)))
(s:float* (zalloc (* 10 4)))
(pows:float* (zalloc 10))
(angs:float* (zalloc 10))
(matrices:float* (zalloc (* 10 16))))
(dotimes (i 10)
(pfill! (pref-ptr d (* i 4)) 1.0 0.8 0.5 1.0)
(pfill! (pref-ptr s (* i 4)) 1.0 1.0 1.0 1.0)
(pfill! (pref-ptr a (* i 4)) 1.0 0.8 0.5 1.0)
(pfill! (pref-ptr p (* i 4)) 1.0 10.0 10.0 1.0)
(pfill! (pref-ptr t (* i 4)) 0.0 0.0 0.0 1.0) ;;looking at origin
(pfill! (pref-ptr u (* i 4)) 0.0 1.0 0.0 0.0)
(pfill! (pref-ptr angs i) 60.0)
(pfill! (pref-ptr pows i) 30.0)
(fill_view_matrix (pref-ptr matrices (* i 16))
(pref-ptr p (* i 4)) ;; position
(pref-ptr t (* i 4)) ;; target
(pref-ptr u (* i 4)))) ;; up
(tfill! lights p t u a d s pows angs matrices 0)
(lambda ()
lights)))