mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 13:11:05 +01:00 
			
		
		
		
	Backends: support for multiple imgui context with little testing (#586, #1851, #2004, #3012, #3934, #4141)
I believe more renderer backends should work. GLFW/Win32/SDL/Vulkan probably have many issues.
This commit is contained in:
		| @@ -86,11 +86,13 @@ struct ImGui_ImplGlfw_Data | ||||
|     ImGui_ImplGlfw_Data()   { memset(this, 0, sizeof(*this)); } | ||||
| }; | ||||
|  | ||||
| // Wrapping access to backend data (to facilitate multiple-contexts stored in io.BackendPlatformUserData) | ||||
| static ImGui_ImplGlfw_Data* g_Data; | ||||
| static ImGui_ImplGlfw_Data* ImGui_ImplGlfw_CreateBackendData()  { IM_ASSERT(g_Data == NULL); g_Data = IM_NEW(ImGui_ImplGlfw_Data); return g_Data; } | ||||
| static ImGui_ImplGlfw_Data* ImGui_ImplGlfw_GetBackendData()     { return ImGui::GetCurrentContext() != NULL ? g_Data : NULL; } | ||||
| static void                 ImGui_ImplGlfw_DestroyBackendData() { IM_DELETE(g_Data); g_Data = NULL; } | ||||
| // Backend data stored in io.BackendPlatformUserData to allow support for multiple Dear ImGui contexts | ||||
| // It is STRONGLY preferred that you use docking branch with multi-viewports (== single Dear ImGui context + multiple windows) instead of multiple Dear ImGui contexts. | ||||
| // FIXME: multi-context support is not well tested and probably dysfunctional in this backend. | ||||
| // FIXME: some shared resources (mouse cursor shape, gamepad) are mishandled when using multi-context. | ||||
| static ImGui_ImplGlfw_Data* ImGui_ImplGlfw_CreateBackendData()  { return IM_NEW(ImGui_ImplGlfw_Data)(); } | ||||
| static ImGui_ImplGlfw_Data* ImGui_ImplGlfw_GetBackendData()     { return (ImGui_ImplGlfw_Data*)ImGui::GetIO().BackendPlatformUserData; } | ||||
| static void                 ImGui_ImplGlfw_DestroyBackendData() { IM_DELETE(ImGui_ImplGlfw_GetBackendData()); } | ||||
|  | ||||
| // Functions | ||||
| static const char* ImGui_ImplGlfw_GetClipboardText(void* user_data) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user