Types
draw-node: drawablesource
drawable-inline-array-node: drawable-inline-arraysource
Types
drawable-actor: drawablesource
drawable-inline-array-actor: drawable-inline-arraysource
drawable-tree-actor: drawable-treesource
Types
ambient-list: structuresource
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-arraysource
drawable-tree-ambient: drawable-treesource
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
Types
Variables
Types
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
Types
Types
drawable-tree: drawable-groupsource
drawable-tree-array: drawable-groupsource
Functions
add-process-drawable(arg0: process-drawable, arg1: draw-control, arg2: symbol, arg3: dma-buffer) => nonesource
cave-cam-restore() => nonesource
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() => intsource
Update pause system
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(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(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(arg0: process-drawable, arg1: draw-control, arg2: symbol, arg3: dma-buffer) => nonesource
dma-add-process-drawable-hud(arg0: process-drawable, arg1: draw-control, arg2: symbol, arg3: dma-buffer) => nonesource
eddie-cam-restore() => nonesource
error-sphere(arg0: drawable-error, arg1: string) => nonesource
find-instance-by-index(arg0: type, arg1: int, arg2: bsp-header) => prototype-bucketsource
find-instance-by-name(arg0: string) => prototype-bucketsource
foreground-engine-execute(arg0: engine, arg1: display-frame, arg2: int, arg3: int) => nonesource
gregs-jungle-cam-restore() => nonesource
gregs-texture-cam-restore() => nonesource
gregs-texture2-cam-restore() => nonesource
gregs-village1-cam-restore() => nonesource
guard-band-cull(arg0: vector) => symbolsource
line-in-view-frustum?(arg0: vector, arg1: vector) => symbolsource
main-debug-hook() => nonesource
main-draw-hook() => nonesource
Nice.
marks-cam-restore() => nonesource
paals-cam-restore() => nonesource
prototype-bucket-type(arg0: prototype-bucket) => typesource
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(arg0: vector) => symbolsource
sphere-in-view-frustum?(arg0: sphere) => symbolsource
swap-display(disp: display) => nonesource
Swap frames! Synchronizes with rendering and vsync, kicks off the next render, and initializes the
to-draw frame