Browse Source

sokol_imgui.h: update for Dear ImGui 1.91.1 (fixed https://github.com/floooh/sokol/issues/1105)

Andre Weissflog 1 year ago
parent
commit
1eb96dd0f9
2 changed files with 14 additions and 6 deletions
  1. 6 0
      CHANGELOG.md
  2. 8 6
      util/sokol_imgui.h

+ 6 - 0
CHANGELOG.md

@@ -1,5 +1,11 @@
 ## Updates
 ## Updates
 
 
+### 10-Sep-2024
+
+- Update sokol_imgui.h for Dear ImGui and cimgui version 1.91.1. This
+  breaks compatibility with older ImGui versions.
+  Fixes issue https://github.com/floooh/sokol/issues/1105.
+
 ### 02-Sep-2024
 ### 02-Sep-2024
 
 
 - Minor breaking change in sokol_gfx.h: The enum item `SG_FILTER_NONE` has been
 - Minor breaking change in sokol_gfx.h: The enum item `SG_FILTER_NONE` has been

+ 8 - 6
util/sokol_imgui.h

@@ -1844,13 +1844,13 @@ static const char* _simgui_fs_source_dummy = "";
 #endif
 #endif
 
 
 #if !defined(SOKOL_IMGUI_NO_SOKOL_APP)
 #if !defined(SOKOL_IMGUI_NO_SOKOL_APP)
-static void _simgui_set_clipboard(void* user_data, const char* text) {
-    (void)user_data;
+static void _simgui_set_clipboard(ImGuiContext* ctx, const char* text) {
+    (void)ctx;
     sapp_set_clipboard_string(text);
     sapp_set_clipboard_string(text);
 }
 }
 
 
-static const char* _simgui_get_clipboard(void* user_data) {
-    (void)user_data;
+static const char* _simgui_get_clipboard(ImGuiContext* ctx) {
+    (void)ctx;
     return sapp_get_clipboard_string();
     return sapp_get_clipboard_string();
 }
 }
 #endif
 #endif
@@ -2200,6 +2200,7 @@ SOKOL_API_IMPL void simgui_setup(const simgui_desc_t* desc) {
         ImGui::CreateContext();
         ImGui::CreateContext();
         ImGui::StyleColorsDark();
         ImGui::StyleColorsDark();
         ImGuiIO* io = &ImGui::GetIO();
         ImGuiIO* io = &ImGui::GetIO();
+        ImGuiPlatformIO* pio = &ImGui::GetPlatformIO();
         if (!_simgui.desc.no_default_font) {
         if (!_simgui.desc.no_default_font) {
             io->Fonts->AddFontDefault();
             io->Fonts->AddFontDefault();
         }
         }
@@ -2207,6 +2208,7 @@ SOKOL_API_IMPL void simgui_setup(const simgui_desc_t* desc) {
         igCreateContext(NULL);
         igCreateContext(NULL);
         igStyleColorsDark(igGetStyle());
         igStyleColorsDark(igGetStyle());
         ImGuiIO* io = igGetIO();
         ImGuiIO* io = igGetIO();
+        ImGuiPlatformIO* pio = igGetPlatformIO();
         if (!_simgui.desc.no_default_font) {
         if (!_simgui.desc.no_default_font) {
             ImFontAtlas_AddFontDefault(io->Fonts, NULL);
             ImFontAtlas_AddFontDefault(io->Fonts, NULL);
         }
         }
@@ -2218,8 +2220,8 @@ SOKOL_API_IMPL void simgui_setup(const simgui_desc_t* desc) {
         if (!_simgui.desc.disable_set_mouse_cursor) {
         if (!_simgui.desc.disable_set_mouse_cursor) {
             io->BackendFlags |= ImGuiBackendFlags_HasMouseCursors;
             io->BackendFlags |= ImGuiBackendFlags_HasMouseCursors;
         }
         }
-        io->SetClipboardTextFn = _simgui_set_clipboard;
-        io->GetClipboardTextFn = _simgui_get_clipboard;
+        pio->Platform_SetClipboardTextFn = _simgui_set_clipboard;
+        pio->Platform_GetClipboardTextFn = _simgui_get_clipboard;
     #endif
     #endif
     io->ConfigWindowsResizeFromEdges = !_simgui.desc.disable_windows_resize_from_edges;
     io->ConfigWindowsResizeFromEdges = !_simgui.desc.disable_windows_resize_from_edges;