mirror of
https://github.com/libretro/parallel-gx1.git
synced 2026-11-07 12:37:59 -10:00
With version 2 of the frontend interface, a picture whose draw would be a plain copy is not drawn: the XFB texture itself is named with set_texture and the frontend reads it where it is. That is the case when the XFB fills the whole output from its top-left corner at the same size, with one layer, no stereo, no colour correction and the default resampling; with crop overscan on, a full-height XFB at the internal resolution. Anything else is drawn into the output's targets as before. The immediate context orders the frontend's reads before anything later drawn into the texture, so no sync index is waited on. Fields that repeat the picture keep its XFB copy locked as the one being shown, and fields that blank the screen lock it until another picture replaces it, so the copy the frontend shows again is never written meanwhile. The hook is FrameOutput::PresentTexture, reached through AbstractGfx::PresentTexture: an output that only hands on its own targets returns false and the picture is drawn.