As mentioned in https://github.com/cinder/Cinder/issues/2236 the app draw function is not guarantied to be called only once for each call to the update function. And as explained here it is illegal to call ImGui functions after ImGui::EndFrame()/ImGui::Render(). Failing to do so will trigger or an assert or crash the app. I believe the NewFrameGuard was slightly changed when adapted from Cinder-ImGui and is now missing a check before the app emits its draw calls.
This means that currently it is only safe to use ImGui inside the scope of the update function.
This can be easily reproduced on Windows by adding a ImGui::Text( "WillCrash" ) in the app draw method and dragging the window to the corner of the screen.
As mentioned in https://github.com/cinder/Cinder/issues/2236 the app draw function is not guarantied to be called only once for each call to the update function. And as explained here it is illegal to call ImGui functions after
ImGui::EndFrame()/ImGui::Render()
. Failing to do so will trigger or an assert or crash the app. I believe theNewFrameGuard
was slightly changed when adapted fromCinder-ImGui
and is now missing a check before the app emits its draw calls.This means that currently it is only safe to use ImGui inside the scope of the update function.
This can be easily reproduced on Windows by adding a
ImGui::Text( "WillCrash" )
in the app draw method and dragging the window to the corner of the screen.