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
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
fill-collide-list-from-box(obj: drawable, arg0: int, arg1: collide-list, arg2: collide-query) => intsource
Collect a list of collision meshes contained in the box.
fill-collide-list-from-line-sphere(obj: drawable, arg0: int, arg1: collide-list, arg2: collide-query) => intsource
Collect a list of collision meshes contained in 'line-sphere'.
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
collect-regions(obj: draw-node, arg0: sphere, arg1: int, arg2: region-prim-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
Call the dma-add-func callback on a draw-control to draw it.
default-end-buffer(arg0: bucket-id, arg1: gs-zbuf, arg2: gs-test) => nonesource
default-init-buffer(arg0: bucket-id, arg1: gs-zbuf, arg2: gs-test) => nonesource
determine-pause-mode() => intsource
display-frame-finish(arg0: display) => displaysource
Do final DMA setup after drawing.
Note that this runs after rendering, while VU1/GS are not doing anything.
so it's best to keep this code as simple as possible.
display-frame-start(arg0: display, arg1: int, arg2: float) => nonesource
Advance clocks, poll pads/mouse, set up buckets.
display-sync(arg0: display) => nonesource
Determine frame timing, possibly vsync, and kick off next DMA.
This also calls sync-path, but this appears redundant because the display loop did this already.
dma-add-process-drawable(pd: process-drawable, dc: draw-control, flag: symbol, dma-buf: dma-buffer) => nonesource
Draw a normal process-drawable. Set up lighting/shadow settings, then pass on to foreground renderer.
dma-add-process-drawable-hud(arg0: process-drawable, arg1: draw-control, arg2: float, arg3: dma-buffer) => nonesource
Generate DMA for a foreground-hud process-drawable.
draw-instance-info(arg0: string) => nonesource
error-sphere(arg0: drawable-error, arg1: string) => nonesource
Draw a sphere with an error message around this drawable-error.
find-instance-by-index(arg0: type, arg1: int, arg2: bsp-header) => prototype-bucketsource
find-instance-by-name(arg0: string) => prototype-bucketsource
Look in all levels for prototypes with the given name.
Will find both tie and shrub.
Despite the name, returns the prototype, not the instance (the instances aren't named).
find-instance-by-name-level(arg0: string, arg1: level) => prototype-bucketsource
Look in the given level for prototypes with the given name.
Will find both tie and shrub.
Despite the name, returns the prototype, not the instance (the instances aren't named).
foreground-engine-execute(arg0: engine, arg1: display-frame) => nonesource
Run the foreground drawing engine.
foreground-execute-cpu-vu0-engines() => nonesource
Run the CPU/VU0 part of foreground. Happens after the foreground-engine-execute is done (first pass dma done).
Generates bone matrices for VU1 renderers and does leftover stuff that depends on bones.
foreground-initialize-engines() => nonesource
Called before dispatching foreground engine to set up.
get-shadow-by-name(arg0: string) => nonesource
guard-band-cull(arg0: vector) => symbolsource
Is the given sphere within the guard band, and possibly needs clipping?
line-in-view-frustum?(arg0: vector, arg1: vector) => symbolsource
Is the line segment at least partially in the view frustum?
Safe to use anywhere, uses planes in math-camera.
main-debug-hook() => nonesource
Execute the debug engine, collision renderer, and draw-instance-info.
main-draw-hook() => nonesource
pc-maybe-vsync() => floatsource
PC Port implementation of the block of code in display-sync that computes frame-time-ratio and maybe vsyncs.
print-prototype-list() => nonesource
prototype-bucket-type(arg0: prototype-bucket) => typesource
prototypes-game-visible-set!(arg0: pair, arg1: symbol) => intsource
Set the visibility of the given prototypes, to hide stuff in levels that shouldn't appear.
Also disables collision.
real-main-draw-hook() => nonesource
Main function to run the drawable system, called from the display-loop in main.gc
screen-shot() => nonesource
screen-shot-scale(arg0: int, arg1: string) => nonesource
set-shadow-by-name(arg0: string, arg1: int, arg2: int) => nonesource
sphere-cull(arg0: vector) => symbolsource
Is the given sphere in the view frustum?
Uses the planes in vf16-vf19.
sphere-in-view-frustum?(arg0: sphere) => symbolsource
Is the given sphere in the view frustum?
Safe to use anywhere, uses planes from math-camera.
Unlike sphere-cull, which assumes that the register are setup.
swap-display(arg0: display) => nonesource
teleport-camera-by-name(arg0: string) => nonesource
vis-cull(id: int) => symbolsource
Is this thing visible in the precomputed visiblity data? By draw-node id.
Assumes the scratchpad has the vis-list loaded.