Files
jak-project/goal_src/engine/draw/drawable-h.gc
T
water111 798356802b [game] make visibility work (#1031)
* make vis work

* update comments
2021-12-28 15:13:46 -05:00

62 lines
2.4 KiB
Common Lisp

;;-*-Lisp-*-
(in-package goal)
;; name: drawable-h.gc
;; name in dgo: drawable-h
;; dgos: GAME, ENGINE
(declare-type ambient-list structure)
(declare-type collide-list structure)
;; These is the base class for the scene graph node.
;; Note that it doesn't always make sense to call all of these methods on all types,
;; and that certain methods should only be called at certain times, and may require coordination
;; with having certain VU0 or scratchpad data present.
;; In many cases, "draw" simply adds data to a buffer that must later be converted to dma in finish-background
;; or similar.
(declare-type drawable-error drawable)
(deftype drawable (basic)
((id int16 :offset-assert 4) ;; ID number (not always used)
(bsphere vector :inline :offset-assert 16) ;; bounding sphere
)
:method-count-assert 18
:size-assert #x20
:flag-assert #x1200000020
(:methods
(login (_type_) _type_ 9)
(draw (_type_ _type_ display-frame) none 10)
(collide-with-box (_type_ int collide-list) none 11)
(collide-y-probe (_type_ int collide-list) none 12)
(collide-ray (_type_ int collide-list) none 13)
(collect-stats (_type_) none 14)
(debug-draw (_type_ drawable display-frame) none 15)
(unpack-vis (_type_ (pointer int8) (pointer int8)) (pointer int8) 16)
(collect-ambients (_type_ sphere int ambient-list) none 17)
)
)
;; A drawable that simply draws a sphere and an error message at the origin of the bounding sphere.
(deftype drawable-error (drawable)
((name string :offset-assert 32)
)
:method-count-assert 18
:size-assert #x24
:flag-assert #x1200000024
)
(declare-type process-drawable process)
(define-extern process-drawable-art-error (state string process-drawable))
(define-extern foreground-engine-execute (function engine display-frame int int none))
(define-extern sphere-in-view-frustum? (function sphere symbol))
(declare-type draw-control basic)
(define-extern add-process-drawable (function process-drawable draw-control symbol dma-buffer none))
(define-extern dma-add-process-drawable-hud (function process-drawable draw-control symbol dma-buffer none))
(define-extern dma-add-process-drawable (function process-drawable draw-control symbol dma-buffer none))
(define-extern vis-cull (function int symbol))
(define-extern line-in-view-frustum? (function vector vector symbol)) ;; TODO - not confirmed