The frame's sprite lists: affine matrices, depth slots and the OAM build. More...
Go to the source code of this file.
Typedefs | |
| typedef void(*) | OamBuildRoutine(void *work) |
Enumerations | |
| enum | { OBJ_AFFINE_MATRIX_COUNT = 32 , RENDER_DEPTH_SLOT_COUNT = 256 } |
Functions | |
| void | Render_ResetFrame (void) |
| Starts a new frame of sprites: frees the affine matrices and empties the 256 depth slots sprites are linked into. | |
| s32 | AffineMatrix_BuildForEffect (struct AffineTransform *source) |
| Hands out the next OAM affine matrix for a sprite drawn with source's scale and rotation and fills it in. | |
| void | Runtime_PushSlotEntry (void *slotEntry, s32 slot) |
| Links a sprite entry into depth slot slot (clamped to 0..255) for this frame. | |
| void | Render_BuildOamList (void *work) |
| Builds this frame's OAM list in work from the sprites linked into the depth slots, with a RAM copy of the ARM builder. | |
Variables | |
| u8 | IwramClearWords [] |
The frame's sprite lists: affine matrices, depth slots and the OAM build.
Part of runtime.c, the runtime object, compiled only through it.
Definition in file render.c.
| anonymous enum |
| void Render_ResetFrame | ( | void | ) |
Starts a new frame of sprites: frees the affine matrices and empties the 256 depth slots sprites are linked into.
Called by WaitFrames after each VBlank.
Definition at line 12 of file render.c.
Referenced by Render_ResetFrame(), System_GetLanguage(), and WaitFrames().
| s32 AffineMatrix_BuildForEffect | ( | struct AffineTransform * | source | ) |
Hands out the next OAM affine matrix for a sprite drawn with source's scale and rotation and fills it in.
Called by the field sprites and the windows' scaled sprites. Returns the matrix number, 0 to 31. When all 32 are taken it fills nothing and still returns 0, which a caller cannot tell from matrix 0: the sprite is drawn with whatever matrix 0 holds.
Definition at line 27 of file render.c.
Referenced by AffineEffect_UpdateFrame(), AffineMatrix_BuildForEffect(), BattleTarget_RunSelection(), Colosso_UpdateLettering(), Menu_RunCommandRow(), Render_ApplyProjectedPlacement(), Render_PlaceProjectedSprite(), RenderOutput_UpdateScaleAnimation(), SelectionScreen_Draw(), System_GetLanguage(), Ui_ApplyTableScaleToObject(), and UiWork_AnimateSpriteSlots().
| void Runtime_PushSlotEntry | ( | void * | slotEntry, |
| s32 | slot ) |
Links a sprite entry into depth slot slot (clamped to 0..255) for this frame.
The entry's first word becomes its link to the next entry. Called by everything that draws a sprite, before WaitFrames builds the OAM list.
Definition at line 79 of file render.c.
Referenced by AffineEffect_UpdateFrame(), Battle_SelectAbility(), BattleEvent_Playback(), BattleMenu_RunActionSelection(), BattlePresentation_WaitForAdvance(), BattlePresentation_WaitForPromptAt(), BattleTarget_RunSelection(), Colosso_DrawGauge(), Colosso_UpdateLettering(), Colosso_UpdateMarker(), Curtain_Close(), Djinn_ShowJoinedMessage(), FadeOverlay_DrawMarks(), FieldEffect_UpdateSparkles(), FieldFx_UpdateGroundParticles(), FieldMotes_Update(), HeatGauge_Draw(), ItemList_SelectEntry(), Map_UpdateWorldMapMarkers(), Menu_RunCommandRow(), Party_ShowJoinedMessage(), Party_ShowPairJoinedMessage(), Render_ApplyProjectedPlacement(), Render_PlaceProjectedSprite(), Runtime_PushSlotEntry(), SelectionScreen_Draw(), SelectionScreen_DrawArrow(), SolSanctumStatue_UpdateScrollingSprites(), SummonMenu_SelectSummon(), System_GetLanguage(), Title_ShowIntro(), Title_UpdateSpriteReveal(), Ui_RunOwnerStatusScreen(), UiTextResource_SetPosition(), UiWork_AnimateSpriteSlots(), and UpdateLinkSessionCountdown().
| void Render_BuildOamList | ( | void * | work | ) |
Builds this frame's OAM list in work from the sprites linked into the depth slots, with a RAM copy of the ARM builder.
Called by WaitFrames into the frame scratch heap slot.
Definition at line 96 of file render.c.
Referenced by Render_BuildOamList(), System_GetLanguage(), and WaitFrames().
|
extern |
Referenced by Render_ResetFrame().