Loading...
Searching...
No Matches
Scene Struct Reference

A single scene's callbacks. More...

#include <scene.h>

Public Attributes

void(* init )(void)
 Called once when the scene is first pushed onto the stack.
 
void(* update )(void)
 Called every VBlank while the scene is on top of the stack.
 

Detailed Description

A single scene's callbacks.

Field stability: this struct is part of the public API. New fields may be added at the END only — designated initialisers stay compatible. Position-based initialisation is therefore discouraged.

Member Data Documentation

◆ init

void(* Scene::init) (void)

Called once when the scene is first pushed onto the stack.

NOT called again when the scene is resumed after a pop. May be NULL to skip. A common shape is to load tilesets / palettes / configure backgrounds in init so the work happens in force blank or before setScreenOn.

◆ update

void(* Scene::update) (void)

Called every VBlank while the scene is on top of the stack.

MUST NOT be NULL. The framework does NOT defend against this: if update is NULL, the dispatcher will JSL to whatever lives at address $00:0000 (SNES register hardware page) and crash immediately. The check is omitted on purpose — a fast crash is more diagnosable than a silent skip would be, and the per-frame cost of the check is non-zero on a 1.79 MHz CPU.

The caller may invoke scenePush or scenePop from inside update; the change takes effect on the next VBlank dispatch.


The documentation for this struct was generated from the following file: