Skip to main content

draw-node-h

source

Types


draw-node

draw-node: drawablesource
Fields
type: type
id: int16
bsphere: vector
child-count: uint8
flags: uint8
child: drawable
distance: float

draw-node-dma

draw-node-dma: structuresource
Fields
banka: draw-node
bankb: draw-node

drawable-inline-array-node

drawable-inline-array-node: drawable-inline-arraysource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: draw-node
pad: uint32

drawable-actor-h

source

Types


drawable-actor

drawable-actor: drawablesource
Fields
type: type
id: int16
bsphere: vector
actor: entity-actor

drawable-inline-array-actor

drawable-inline-array-actor: drawable-inline-arraysource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: drawable-actor
pad: uint8

drawable-tree-actor

drawable-tree-actor: drawable-treesource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: drawable

drawable-ambient-h

source

Types


ambient-list

ambient-list: structuresource
Fields
num-items: int32
items: drawable-ambient

drawable-ambient

drawable-ambient: drawablesource
Fields
type: type
id: int16
bsphere: vector
ambient: entity-ambient
Methods
execute-ambient(obj: drawable-ambient, arg0: vector) => nonesource

drawable-inline-array-ambient

drawable-inline-array-ambient: drawable-inline-arraysource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: drawable-ambient
pad: uint32

drawable-tree-ambient

drawable-tree-ambient: drawable-treesource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: drawable

level-hint

level-hint: processsource
Fields
type: type
name: basic
mask: process-mask
parent: pointer
brother: pointer
child: pointer
ppointer: pointer
self: process-tree
pool: dead-pool
status: basic
pid: int32
main-thread: cpu-thread
top-thread: thread
entity: entity-actor
state: state
trans-hook: function
post-hook: function
event-hook: function
allocated-length: int32
next-state: state
heap-base: pointer
heap-top: pointer
heap-cur: pointer
stack-frame-top: stack-frame
connection-list: connectable
stack: uint8
text-id-to-display: text-id
sound-to-play: string
trans: vector
sound-id: sound-id
mode: symbol
total-time: time-frame
total-off-time: time-frame
last-time: time-frame
voicebox: handle
Methods
print-text(obj: level-hint) => nonesource
appeared-for-long-enough?(obj: level-hint) => symbolsource
States
level-hint-ambient-sound: TODO
level-hint-error: TODO
level-hint-exit: TODO
level-hint-normal: TODO
level-hint-sidekick: TODO

drawable-group-h

source

Types


drawable-group

drawable-group: drawablesource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: drawable

Variables


*collide-nodes*

*collide-nodes*: intsource

drawable-h

source

Types


drawable

drawable: basicsource
Fields
type: type
id: int16
bsphere: vector
Methods
login(obj: drawable-tree-collide-fragment) => _type_source
draw(obj: drawable-tree-collide-fragment, arg0: drawable-tree-collide-fragment, arg1: display-frame) => nonesource

Note: this doesn't do anything (sadly)

collide-with-box(obj: collide-fragment, arg0: int, arg1: collide-list) => nonesource
collide-y-probe(obj: collide-fragment, arg0: int, arg1: collide-list) => nonesource
collide-ray(obj: collide-fragment, arg0: int, arg1: collide-list) => nonesource

Inline-array function to do line-sphere with non-instanced fragments.
If the bsphere of the mesh is in the non-aligned bounding box, the mesh will be added
to the given collide-list.
Note: collide-probe is the faster implementation of this.

collect-stats(obj: drawable-group) => nonesource
debug-draw(obj: drawable-group, arg0: drawable, arg1: display-frame) => nonesource
unpack-vis(obj: drawable-tree-collide-fragment, arg0: pointer, arg1: pointer) => pointersource

We don't use vis, so just return the input.

collect-ambients(obj: draw-node, arg0: sphere, arg1: int, arg2: ambient-list) => nonesource

drawable-error

drawable-error: drawablesource
Fields
type: type
id: int16
bsphere: vector
name: string

drawable-inline-array-h

source

Types


drawable-inline-array

drawable-inline-array: drawablesource
Fields
type: type
id: int16
bsphere: vector
length: int16

drawable-tree-h

source

Types


drawable-tree

drawable-tree: drawable-groupsource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: drawable

drawable-tree-array

drawable-tree-array: drawable-groupsource
Fields
type: type
id: int16
bsphere: vector
length: int16
data: drawable
trees: drawable-tree

drawable

source

Functions


add-process-drawable

add-process-drawable(arg0: process-drawable, arg1: draw-control, arg2: symbol, arg3: dma-buffer) => nonesource

cave-cam-restore

cave-cam-restore() => nonesource

debug-init-buffer

debug-init-buffer(arg0: bucket-id, arg1: gs-zbuf, arg2: gs-test) => nonesource

Initialize a bucket for debug draw with the given zbuf and test settings

determine-pause-mode

determine-pause-mode() => intsource

Update pause system

display-frame-finish

display-frame-finish(disp: display) => displaysource

End drawing. Call this after drawing everything.
Note that this does not start a DMA transfer, just finishes up the buffered data for
the frame.

display-frame-start

display-frame-start(disp: display, new-frame-idx: int, odd-even: int) => nonesource

Set up a new frame. Call this before drawing anything.
new-frame-idx is the display frame that will be set up.
odd-even is the odd-even of the new frame

display-sync

display-sync(disp: display) => nonesource

Switch frames! This assumes that you have called display-frame-finish on the current frame.
It will:
- wait for the current rendering frame to stop.
- do a vsync to get that frame on screen (possibly waiting up to 1 frame, if the prev frame
did not finish in time. This is why we drop to 30fps
as soon as we don't fit into 60 fps)
- start rendering the current frame
- initialize DMA buffers for the next frame drawing, advance to next frame

dma-add-process-drawable

dma-add-process-drawable(arg0: process-drawable, arg1: draw-control, arg2: symbol, arg3: dma-buffer) => nonesource

dma-add-process-drawable-hud

dma-add-process-drawable-hud(arg0: process-drawable, arg1: draw-control, arg2: symbol, arg3: dma-buffer) => nonesource

eddie-cam-restore

eddie-cam-restore() => nonesource

error-sphere

error-sphere(arg0: drawable-error, arg1: string) => nonesource

find-instance-by-index

find-instance-by-index(arg0: type, arg1: int, arg2: bsp-header) => prototype-bucketsource

find-instance-by-name

find-instance-by-name(arg0: string) => prototype-bucketsource

foreground-engine-execute

foreground-engine-execute(arg0: engine, arg1: display-frame, arg2: int, arg3: int) => nonesource

gregs-jungle-cam-restore

gregs-jungle-cam-restore() => nonesource

gregs-texture-cam-restore

gregs-texture-cam-restore() => nonesource

gregs-texture2-cam-restore

gregs-texture2-cam-restore() => nonesource

gregs-village1-cam-restore

gregs-village1-cam-restore() => nonesource

guard-band-cull

guard-band-cull(arg0: vector) => symbolsource

line-in-view-frustum?

line-in-view-frustum?(arg0: vector, arg1: vector) => symbolsource

main-debug-hook

main-debug-hook() => nonesource

main-draw-hook

main-draw-hook() => nonesource

Nice.

marks-cam-restore

marks-cam-restore() => nonesource

paals-cam-restore

paals-cam-restore() => nonesource

prototype-bucket-recalc-fields

prototype-bucket-recalc-fields(arg0: prototype-bucket) => prototype-bucketsource

prototype-bucket-type

prototype-bucket-type(arg0: prototype-bucket) => typesource

real-main-draw-hook

real-main-draw-hook() => nonesource

The main drawing function. This dispatches all renderers and is called directly from the display-loop
in main.gc

sphere-cull

sphere-cull(arg0: vector) => symbolsource

sphere-in-view-frustum?

sphere-in-view-frustum?(arg0: sphere) => symbolsource

swap-display

swap-display(disp: display) => nonesource

Swap frames! Synchronizes with rendering and vsync, kicks off the next render, and initializes the
to-draw frame

vis-cull

vis-cull(id: int) => symbolsource

Is this thing visible? By draw-node id.

Variables


*add-sphere*

*add-sphere*: symbolsource

*debug-hook*

*debug-hook*: functionsource

*disasm-count*

*disasm-count*: intsource

*draw-hook*

*draw-hook*: functionsource

*edit-instance*

*edit-instance*: stringsource

*generic-effect-mode*

*generic-effect-mode*: intsource

*hud-lights*

*hud-lights*: vu-lightssource

*instance-mem-usage*

*instance-mem-usage*: memory-usage-blocksource

*screen-shot*

*screen-shot*: symbolsource

*surrogate-dma-buffer*

*surrogate-dma-buffer*: dma-buffersource