Summary
ImGuiController behaves incorrectly when put in Render loop of Window, when frame is not drawn due to FPS limit.
Currently noticed issue - Mouse wheel inputs missing.
Steps to reproduce
https://github.com/dotnet/Silk.NET/blob/main/examples/CSharp/OpenGL%20Demos/ImGui/Program.cs
Windows 11, window options Default with disabled VSync and FramesPerSecond much lower than system can handle.
- Add
ImGui.ShowDemoWindow(); to open demo window.
- Start application
- In demo window, find any place with scroll bar
- Try scrolling
Comments
DoRender has if ((delta >= _renderPeriod) || VSync) which completly skips Render event call. Keyboard and mouse inputs are sent with ImGuiController.Update(delta), not using IInputContext callbackes. This makes some inputs like mouse wheel scroll to not being sent, because they have been sent in the frame which was not drawn.