The WindowUtils interface provides a handful of functions to integrate the framework's render loop and the renderer with the underlying windowing library's events API.

It looks like this:

class WindowUtils
{
public:
    static bool shouldRender() noexcept;
    
    static void pollEvents(double& now, double& deltaTime, double& lastTime) noexcept;
    
    // In milliseconds
    static void waitEventsTimeout(double timeout) noexcept;
    static void waitEvents() noexcept;
};

The event safety of all functions is set at post-begin.

There is also a C API which is the same as the C++ one, but using standard C API semantics such as prefixing each function with UImGui_WindowUtils_, as defined here.