In Tier 1 the Sync() command handles all inputs, outputs, physics updates, etc..
In Tier 2, it will update the display and physics anywhere. But the user inputs are only updated once per call to the app::Loop() method.
So, while you can have a while loop in Tier 1 that waits for a pointer press and then continues to the code after the while loop. In Tier 2, you will get a hung application.
This made me a little crazy when I converted my Tier 1 app to Tier 2 until I figured out what was happening.
But, once I reworked the code to use state machine like processing, the benefits of C++ are great. String handling alone makes the biggest difference (std::string, sprintf, etc.).
Cheers,
Ancient Lady