mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-12 13:35:35 -04:00
fbbf27e73d
The framebuffer size flows into Aurora as follows: Into JUTVideo: AURORA_WINDOW_RESIZED handler -> mDoGph_gInf_c::setWindowSize -> JUTVideo::setWindowSize From JUTVideo -> dComIfG_play_c: fpcCt_Handler -> phase_4 -> dComIfGp_setWindow From dComIfGp_play_c -> Aurora: mDoGph_Painter -> drawDepth2 -> GXSetTexCopySrc -> GXCopyTex -> aurora::gfx::resolve_pass (called by GXCopyTex) The trouble is that 1) phase_4 is only called when creating a new scene/room, and 2) even when it is called, mDoGph_Painter is executed before fpcCt_Handler in the main loop so the new size isn't visible to aurora::gfx::resolve_pass until one frame after it's set. This causes a crash due to the original size being passed to CopyTextureToTexture despite the destination framebuffer now being smaller. As a workaround, we just cut out the whole middleman section and call dComIfGp_setWindow immediately when we receive a resize event. This way the new size is immediately visible to Aurora.