jak-project/goal_src/jak1/engine/gfx/vu1-user-h.gc

110 lines
2.7 KiB
Common Lisp
Raw Normal View History

;;-*-Lisp-*-
2020-09-04 14:44:23 -04:00
(in-package goal)
;; name: vu1-user-h.gc
;; name in dgo: vu1-user-h
;; dgos: GAME, ENGINE
;; VU1 renderers are enabled/disabled with a bitmask.
;; I believe this is renderers which can be enabled/disabled in the debug menu?
(defenum vu1-renderer-mask
:bitfield #t
(sky 3)
(ocean 4)
(ocean-wave 5)
(tfrag 6)
(tie-near 7)
(tie 8)
(generic 9)
(merc 10)
(shrubbery 11)
(shrub-near 12)
(billboard 13)
(trans-shrubbery 14)
(trans-tfrag 15)
(sprite 16)
(shadow 17)
(depth-cue 18)
(nineteen 19)
(twenty 20)
)
(define *vu1-enable-user-menu*
(vu1-renderer-mask
sky
ocean
ocean-wave
tfrag
tie-near
tie
generic
merc
shrubbery
shrub-near
billboard
trans-shrubbery
trans-tfrag
sprite
shadow
depth-cue
nineteen
twenty
)
)
;; disable depth-cue by default for the PC port
(#when PC_PORT
(logclear! *vu1-enable-user-menu* (vu1-renderer-mask depth-cue))
)
;; by default, all off.
;; the menu renderers get copied to this on each frame
(define *vu1-enable-user* (the-as vu1-renderer-mask 0))
;; a dma "sink" is somewhere where a renderer can put stuff.
(deftype dma-foreground-sink (basic)
((bucket bucket-id :offset-assert 4) ;; the DMA bucket
(foreground-texture-page int8 :offset-assert 8) ;; the tpage we need (in the level)
(foreground-texture-level int8 :offset-assert 9) ;; the level we belong to
(foreground-output-bucket int8 :offset-assert 10) ;; ?
)
:method-count-assert 9
:size-assert #xb
:flag-assert #x90000000b
)
;; additional info for the generic renderer
(deftype generic-bucket-state (structure)
((gifbuf-adr uint32 :offset-assert 0)
(inbuf-adr uint32 :offset-assert 4)
)
:pack-me
:method-count-assert 9
:size-assert #x8
:flag-assert #x900000008
)
;; sink for the generic renderer, a normal sink + extra data.
(deftype generic-dma-foreground-sink (dma-foreground-sink)
((state generic-bucket-state :inline :offset-assert 12)
)
:method-count-assert 9
:size-assert #x14
:flag-assert #x900000014
)
;; group of sinks used for the foreground renderers.
(declare-type level basic)
(deftype dma-foreground-sink-group (basic)
((sink dma-foreground-sink 3 :offset-assert 4)
(merc-sink dma-foreground-sink :offset 4)
(generic-sink generic-dma-foreground-sink :offset 8)
(level level :offset-assert 16)
)
:method-count-assert 9
:size-assert #x14
:flag-assert #x900000014
)