Hmm, I was hoping I wouldn't have to describe my framework.
The Project class inherits Screen and then overrides Screen::primary_timer_func().
Afterwhich, the flip is called.
for (unsigned d=0; d<Display::displays.size(); d++)
for (unsigned i=0; i<screens.size(); i++)
if (screens[i]->display == Display::displays[d])
Display::displays[d]->flip(); // <-- here
A Screen is anything, like a menu screen, a game screen, a world map screen. You can nest several screens at the same time, so you would have a world screen and a hud screen at the same time.
But that's all tangential.
TLDR; the flip is in there.