mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Backends: GLFW: Accept glfwGetTime() not returning a monotonically increasing value. (#6491, #6189, #6114)
This commit is contained in:
		| @@ -17,6 +17,7 @@ | |||||||
|  |  | ||||||
| // CHANGELOG | // CHANGELOG | ||||||
| // (minor and older changes stripped away, please see git history for details) | // (minor and older changes stripped away, please see git history for details) | ||||||
|  | //  2023-06-12: Accept glfwGetTime() not returning a monotonically increasing value. This seems to happens on some Windows setup when peripherals disconnect, and is likely to also happen on browser + Emscripten. (#6491) | ||||||
| //  2023-04-04: Inputs: Added support for io.AddMouseSourceEvent() to discriminate ImGuiMouseSource_Mouse/ImGuiMouseSource_TouchScreen/ImGuiMouseSource_Pen on Windows ONLY, using a custom WndProc hook. (#2702) | //  2023-04-04: Inputs: Added support for io.AddMouseSourceEvent() to discriminate ImGuiMouseSource_Mouse/ImGuiMouseSource_TouchScreen/ImGuiMouseSource_Pen on Windows ONLY, using a custom WndProc hook. (#2702) | ||||||
| //  2023-03-16: Inputs: Fixed key modifiers handling on secondary viewports (docking branch). Broken on 2023/01/04. (#6248, #6034) | //  2023-03-16: Inputs: Fixed key modifiers handling on secondary viewports (docking branch). Broken on 2023/01/04. (#6248, #6034) | ||||||
| //  2023-03-14: Emscripten: Avoid using glfwGetError() and glfwGetGamepadState() which are not correctly implemented in Emscripten emulation. (#6240) | //  2023-03-14: Emscripten: Avoid using glfwGetError() and glfwGetGamepadState() which are not correctly implemented in Emscripten emulation. (#6240) | ||||||
| @@ -780,7 +781,10 @@ void ImGui_ImplGlfw_NewFrame() | |||||||
|         io.DisplayFramebufferScale = ImVec2((float)display_w / (float)w, (float)display_h / (float)h); |         io.DisplayFramebufferScale = ImVec2((float)display_w / (float)w, (float)display_h / (float)h); | ||||||
|  |  | ||||||
|     // Setup time step |     // Setup time step | ||||||
|  |     // (Accept glfwGetTime() not returning a monotonically increasing value. Seems to happens on disconnecting peripherals and probably on VMs and Emscripten, see #6491, #6189, #6114, #3644) | ||||||
|     double current_time = glfwGetTime(); |     double current_time = glfwGetTime(); | ||||||
|  |     if (current_time <= bd->Time) | ||||||
|  |         current_time = bd->Time + 0.00001f; | ||||||
|     io.DeltaTime = bd->Time > 0.0 ? (float)(current_time - bd->Time) : (float)(1.0f / 60.0f); |     io.DeltaTime = bd->Time > 0.0 ? (float)(current_time - bd->Time) : (float)(1.0f / 60.0f); | ||||||
|     bd->Time = current_time; |     bd->Time = current_time; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -39,6 +39,9 @@ Other changes: | |||||||
| - Tables: Fixed a regression in 1.89.6 leading to the first column of tables with either | - Tables: Fixed a regression in 1.89.6 leading to the first column of tables with either | ||||||
|   ScrollX or ScrollY flags from being impossible to resize. (#6503) |   ScrollX or ScrollY flags from being impossible to resize. (#6503) | ||||||
| - Backends: OpenGL3: Fixed support for glBindSampler() backup/restore on ES3. (#6375, #6508) [@jsm174] | - Backends: OpenGL3: Fixed support for glBindSampler() backup/restore on ES3. (#6375, #6508) [@jsm174] | ||||||
|  | - Backends: GLFW: Accept glfwGetTime() not returning a monotonically increasing value. | ||||||
|  |   This seems to happens on some Windows setup when peripherals disconnect, and is likely | ||||||
|  |   to also happen on browser+Emscripten. Matches similar 1.89.4 fix in SDL backend. (#6491) | ||||||
|  |  | ||||||
|  |  | ||||||
| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user