;;-*-Lisp-*-
(in-package goal)

;; definition of type fake-shadow
(deftype fake-shadow (structure)
  ((px    float  :offset-assert   0)
   (py    float  :offset-assert   4)
   (pz    float  :offset-assert   8)
   (scale float  :offset-assert  12)
   (qx    float  :offset-assert  16)
   (qy    float  :offset-assert  20)
   (qz    float  :offset-assert  24)
   (flags int32  :offset-assert  28)
   )
  :pack-me
  :method-count-assert 9
  :size-assert         #x20
  :flag-assert         #x900000020
  )

;; definition for method 3 of type fake-shadow
(defmethod inspect fake-shadow ((obj fake-shadow))
  (format #t "[~8x] ~A~%" obj 'fake-shadow)
  (format #t "~Tpx: ~f~%" (-> obj px))
  (format #t "~Tpy: ~f~%" (-> obj py))
  (format #t "~Tpz: ~f~%" (-> obj pz))
  (format #t "~Tscale: ~f~%" (-> obj scale))
  (format #t "~Tqx: ~f~%" (-> obj qx))
  (format #t "~Tqy: ~f~%" (-> obj qy))
  (format #t "~Tqz: ~f~%" (-> obj qz))
  (format #t "~Tflags: ~D~%" (-> obj flags))
  obj
  )

;; definition of type fake-shadow-buffer
(deftype fake-shadow-buffer (basic)
  ((num-shadows int32                  :offset-assert   4)
   (data        fake-shadow 32 :inline :offset-assert   8)
   )
  :method-count-assert 9
  :size-assert         #x408
  :flag-assert         #x900000408
  )

;; definition for method 3 of type fake-shadow-buffer
(defmethod inspect fake-shadow-buffer ((obj fake-shadow-buffer))
  (format #t "[~8x] ~A~%" obj (-> obj type))
  (format #t "~Tnum-shadows: ~D~%" (-> obj num-shadows))
  (format #t "~Tdata[32] @ #x~X~%" (-> obj data))
  obj
  )

;; definition for symbol *fake-shadow-buffer-1*, type fake-shadow-buffer
(define *fake-shadow-buffer-1* (new 'global 'fake-shadow-buffer))

;; definition for symbol *fake-shadow-buffer-2*, type fake-shadow-buffer
(define *fake-shadow-buffer-2* (new 'global 'fake-shadow-buffer))

;; definition for symbol *fake-shadow-buffer*, type fake-shadow-buffer
(define *fake-shadow-buffer* *fake-shadow-buffer-1*)

;; failed to figure out what this is:
0
