Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Assert when shutting down and recreating backend #2769

Closed
metarutaiga opened this issue Aug 29, 2019 · 4 comments
Closed

Assert when shutting down and recreating backend #2769

metarutaiga opened this issue Aug 29, 2019 · 4 comments

Comments

@metarutaiga
Copy link

Version/Branch of Dear ImGui:

Version: 1.73
Branch: viewport

Back-end/Renderer/Compiler/OS

Back-ends: imgui_impl_win32.cpp
Compiler: msvc_v142
Operating System: win10

My Issue/Question:

I implement a graphic library that it can change APIs in runtime.
But it always assert when recreating imgui.
I modified it below, but it's not a good method.
Has any good idea to resolve this assert?

Standalone, minimal, complete and verifiable example:
-- ImGuiViewport* main_viewport = ImGui::GetMainViewport();
++ ImGuiViewportP* main_viewport = (ImGuiViewportP*)ImGui::GetMainViewport();
++ main_viewport->PlatformWindowCreated = true;

@ocornut
Copy link
Owner

ocornut commented Aug 29, 2019

Please:

  • Actually specify WHAT is asserting, including a callstack. You haven't mentioned what the assert is.
  • Provide a repro or pseudo code to explain what you are doing.

TL;DR; we need more context please.

@metarutaiga
Copy link
Author

My recreating method :
ImGui_ImplXX_Shutdown();
ImGui_ImplWin32_Shutdown();
ImGui_ImplWin32_Init(hWnd);
ImGui_ImplXX_Init(g_instance, 0, g_device);

I don't run ImGui::DestroyContext(); / ImGui::CreateContext();
And the PlatformWindowCreated of main-viewport is initialized in ImGui::CreateContext(); only.
So it would be assert the problem.

x1
x2

@ocornut ocornut changed the title Assert when recreating imgui Assert when shutting down and recreating backend Aug 29, 2019
@kudaba
Copy link
Contributor

kudaba commented Aug 30, 2019

I think you're hitting the crash that I fixed here: #2698, at least I think you're using the vulkan backend, you should include that in reports.

@ocornut
Copy link
Owner

ocornut commented Sep 17, 2019

Pushed a fix for this issue.
Ideally we may want this field to be set/cleared by the platform back-end. We'll probably refactor this when working on #2471.

@ocornut ocornut closed this as completed Sep 17, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants