mosra / magnum-examples

Examples for the Magnum C++11 graphics engine
https://magnum.graphics/
The Unlicense
282 stars 95 forks source link

Update ImGuiExample.cpp #67

Closed xiconxi closed 5 years ago

xiconxi commented 5 years ago

Fixing Crashing issue in windows 10

mosra commented 5 years ago

Hi, thanks for the patch!

While the code looks okay and I have nothing against the change, can you elaborate on why it was crashing (backtrace, debugger screenshot, or at least a function where it happened)? Because the way it's currently done should work as well and if it doesn't, it points to a deeper issue in the ImGui integration itself.

xiconxi commented 5 years ago

This modification should be dropped. This Example have two weird phenomenons, crashing randomly(random Crashing while calling ImGui::**() which access the global variable 'GImGui' in 'imgui.cpp' and flicking. it means directly linked ImGui function in the executable crashing while using the integration's newFrame() and drawFrame(). then I think it may have two 'GImGui' in the memory, I move the newFrame()'s implements to the scope of this ui implement in this cpp. Those weird phenomenons just disappear !! So, Is it possible to exist two different 'GImGui' while this app load imgui.dll from system path and magnumintegration-imgui.dll load imgui.dll from the relative path? Or just something relative to these kind of stuff.

mosra commented 5 years ago

Yeah, the symbol duplication between the DLL and the exe is a problem. Not sure how to solve it really, let's continue the discussion in mosra/magnum-integration#55.