diff options
| author | s-ol <s+removethis@s-ol.nu> | 2021-03-25 18:19:41 +0000 |
|---|---|---|
| committer | s-ol <s+removethis@s-ol.nu> | 2021-03-25 18:19:41 +0000 |
| commit | 05eb0d1ecbe4b438f8323d3261102c58341f60cf (patch) | |
| tree | 118422ff1141e5f6eaf61d8b546e4647352dc998 /src/glfw_impl.zig | |
| parent | zig-fmt everything (diff) | |
| download | zig-imgui-05eb0d1ecbe4b438f8323d3261102c58341f60cf.tar.gz zig-imgui-05eb0d1ecbe4b438f8323d3261102c58341f60cf.zip | |
update for zig 0.7.0
Diffstat (limited to 'src/glfw_impl.zig')
| -rw-r--r-- | src/glfw_impl.zig | 94 |
1 files changed, 47 insertions, 47 deletions
diff --git a/src/glfw_impl.zig b/src/glfw_impl.zig index d2defa5..7d28e08 100644 --- a/src/glfw_impl.zig +++ b/src/glfw_impl.zig @@ -15,7 +15,7 @@ var g_Window: ?*c.GLFWwindow = null; var g_ClientApi: ClientApi = .Unknown; var g_Time: f64 = 0.0; var g_MouseJustPressed = [_]bool{false} ** 5; -var g_MouseCursors = [_]?*c.GLFWcursor{null} ** @enumToInt(c.ImGuiMouseCursor_COUNT); +var g_MouseCursors = [_]?*c.GLFWcursor{null} ** c.ImGuiMouseCursor_COUNT; var g_WantUpdateMonitors = true; // Chain GLFW callbacks for main viewport: @@ -31,51 +31,51 @@ pub fn Init(window: *c.GLFWwindow, install_callbacks: bool, client_api: ClientAp // Setup back-end capabilities flags const io = c.igGetIO(); - io.*.BackendFlags |= @enumToInt(c.ImGuiBackendFlags_HasMouseCursors); // We can honor GetMouseCursor() values (optional) - io.*.BackendFlags |= @enumToInt(c.ImGuiBackendFlags_HasSetMousePos); // We can honor io.WantSetMousePos requests (optional, rarely used) - if (false) io.*.BackendFlags |= @enumToInt(c.ImGuiBackendFlags_PlatformHasViewports); // We can create multi-viewports on the Platform side (optional) + io.*.BackendFlags |= c.ImGuiBackendFlags_HasMouseCursors; // We can honor GetMouseCursor() values (optional) + io.*.BackendFlags |= c.ImGuiBackendFlags_HasSetMousePos; // We can honor io.WantSetMousePos requests (optional, rarely used) + if (false) io.*.BackendFlags |= c.ImGuiBackendFlags_PlatformHasViewports; // We can create multi-viewports on the Platform side (optional) if (false and @hasField(c, "GLFW_HAS_GLFW_HOVERED") and builtin.os == builtin.Os.windows) { - io.*.BackendFlags |= @enumToInt(ImGuiBackendFlags_HasMouseHoveredViewport); // We can set io.MouseHoveredViewport correctly (optional, not easy) + io.*.BackendFlags |= ImGuiBackendFlags_HasMouseHoveredViewport; // We can set io.MouseHoveredViewport correctly (optional, not easy) } - io.*.BackendPlatformName = c"imgui_impl_glfw.zig"; + io.*.BackendPlatformName = "imgui_impl_glfw.zig"; // Keyboard mapping. ImGui will use those indices to peek into the io.KeysDown[] array. - io.*.KeyMap[@enumToInt(c.ImGuiKey_Tab)] = c.GLFW_KEY_TAB; - io.*.KeyMap[@enumToInt(c.ImGuiKey_LeftArrow)] = c.GLFW_KEY_LEFT; - io.*.KeyMap[@enumToInt(c.ImGuiKey_RightArrow)] = c.GLFW_KEY_RIGHT; - io.*.KeyMap[@enumToInt(c.ImGuiKey_UpArrow)] = c.GLFW_KEY_UP; - io.*.KeyMap[@enumToInt(c.ImGuiKey_DownArrow)] = c.GLFW_KEY_DOWN; - io.*.KeyMap[@enumToInt(c.ImGuiKey_PageUp)] = c.GLFW_KEY_PAGE_UP; - io.*.KeyMap[@enumToInt(c.ImGuiKey_PageDown)] = c.GLFW_KEY_PAGE_DOWN; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Home)] = c.GLFW_KEY_HOME; - io.*.KeyMap[@enumToInt(c.ImGuiKey_End)] = c.GLFW_KEY_END; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Insert)] = c.GLFW_KEY_INSERT; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Delete)] = c.GLFW_KEY_DELETE; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Backspace)] = c.GLFW_KEY_BACKSPACE; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Space)] = c.GLFW_KEY_SPACE; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Enter)] = c.GLFW_KEY_ENTER; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Escape)] = c.GLFW_KEY_ESCAPE; - io.*.KeyMap[@enumToInt(c.ImGuiKey_KeyPadEnter)] = c.GLFW_KEY_KP_ENTER; - io.*.KeyMap[@enumToInt(c.ImGuiKey_A)] = c.GLFW_KEY_A; - io.*.KeyMap[@enumToInt(c.ImGuiKey_C)] = c.GLFW_KEY_C; - io.*.KeyMap[@enumToInt(c.ImGuiKey_V)] = c.GLFW_KEY_V; - io.*.KeyMap[@enumToInt(c.ImGuiKey_X)] = c.GLFW_KEY_X; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Y)] = c.GLFW_KEY_Y; - io.*.KeyMap[@enumToInt(c.ImGuiKey_Z)] = c.GLFW_KEY_Z; + io.*.KeyMap[c.ImGuiKey_Tab] = c.GLFW_KEY_TAB; + io.*.KeyMap[c.ImGuiKey_LeftArrow] = c.GLFW_KEY_LEFT; + io.*.KeyMap[c.ImGuiKey_RightArrow] = c.GLFW_KEY_RIGHT; + io.*.KeyMap[c.ImGuiKey_UpArrow] = c.GLFW_KEY_UP; + io.*.KeyMap[c.ImGuiKey_DownArrow] = c.GLFW_KEY_DOWN; + io.*.KeyMap[c.ImGuiKey_PageUp] = c.GLFW_KEY_PAGE_UP; + io.*.KeyMap[c.ImGuiKey_PageDown] = c.GLFW_KEY_PAGE_DOWN; + io.*.KeyMap[c.ImGuiKey_Home] = c.GLFW_KEY_HOME; + io.*.KeyMap[c.ImGuiKey_End] = c.GLFW_KEY_END; + io.*.KeyMap[c.ImGuiKey_Insert] = c.GLFW_KEY_INSERT; + io.*.KeyMap[c.ImGuiKey_Delete] = c.GLFW_KEY_DELETE; + io.*.KeyMap[c.ImGuiKey_Backspace] = c.GLFW_KEY_BACKSPACE; + io.*.KeyMap[c.ImGuiKey_Space] = c.GLFW_KEY_SPACE; + io.*.KeyMap[c.ImGuiKey_Enter] = c.GLFW_KEY_ENTER; + io.*.KeyMap[c.ImGuiKey_Escape] = c.GLFW_KEY_ESCAPE; + io.*.KeyMap[c.ImGuiKey_KeyPadEnter] = c.GLFW_KEY_KP_ENTER; + io.*.KeyMap[c.ImGuiKey_A] = c.GLFW_KEY_A; + io.*.KeyMap[c.ImGuiKey_C] = c.GLFW_KEY_C; + io.*.KeyMap[c.ImGuiKey_V] = c.GLFW_KEY_V; + io.*.KeyMap[c.ImGuiKey_X] = c.GLFW_KEY_X; + io.*.KeyMap[c.ImGuiKey_Y] = c.GLFW_KEY_Y; + io.*.KeyMap[c.ImGuiKey_Z] = c.GLFW_KEY_Z; // @TODO: Clipboard // io.SetClipboardTextFn = ImGui_ImplGlfw_SetClipboardText; // io.GetClipboardTextFn = ImGui_ImplGlfw_GetClipboardText; io.*.ClipboardUserData = g_Window; - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_Arrow)] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_TextInput)] = c.glfwCreateStandardCursor(c.GLFW_IBEAM_CURSOR); - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_ResizeAll)] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); // FIXME: GLFW doesn't have this. - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_ResizeNS)] = c.glfwCreateStandardCursor(c.GLFW_VRESIZE_CURSOR); - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_ResizeEW)] = c.glfwCreateStandardCursor(c.GLFW_HRESIZE_CURSOR); - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_ResizeNESW)] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); // FIXME: GLFW doesn't have this. - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_ResizeNWSE)] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); // FIXME: GLFW doesn't have this. - g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_Hand)] = c.glfwCreateStandardCursor(c.GLFW_HAND_CURSOR); + g_MouseCursors[c.ImGuiMouseCursor_Arrow] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); + g_MouseCursors[c.ImGuiMouseCursor_TextInput] = c.glfwCreateStandardCursor(c.GLFW_IBEAM_CURSOR); + g_MouseCursors[c.ImGuiMouseCursor_ResizeAll] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); // FIXME: GLFW doesn't have this. + g_MouseCursors[c.ImGuiMouseCursor_ResizeNS] = c.glfwCreateStandardCursor(c.GLFW_VRESIZE_CURSOR); + g_MouseCursors[c.ImGuiMouseCursor_ResizeEW] = c.glfwCreateStandardCursor(c.GLFW_HRESIZE_CURSOR); + g_MouseCursors[c.ImGuiMouseCursor_ResizeNESW] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); // FIXME: GLFW doesn't have this. + g_MouseCursors[c.ImGuiMouseCursor_ResizeNWSE] = c.glfwCreateStandardCursor(c.GLFW_ARROW_CURSOR); // FIXME: GLFW doesn't have this. + g_MouseCursors[c.ImGuiMouseCursor_Hand] = c.glfwCreateStandardCursor(c.GLFW_HAND_CURSOR); // Chain GLFW callbacks: our callbacks will call the user's previously installed callbacks, if any. g_PrevUserCallbackMousebutton = null; @@ -92,11 +92,11 @@ pub fn Init(window: *c.GLFWwindow, install_callbacks: bool, client_api: ClientAp // Our mouse update function expect PlatformHandle to be filled for the main viewport const main_viewport = c.igGetMainViewport(); main_viewport.*.PlatformHandle = g_Window; - if (builtin.os == builtin.Os.windows) - main_viewport.*.PlatformHandleRaw = c.glfwGetWin32Window(g_Window); + // if (builtin.os == builtin.Os.windows) + // main_viewport.*.PlatformHandleRaw = c.glfwGetWin32Window(g_Window); // @TODO: Platform Interface (Viewport) - if (io.*.ConfigFlags & @enumToInt(c.ImGuiConfigFlags_ViewportsEnable) != 0) + if (io.*.ConfigFlags & c.ImGuiConfigFlags_ViewportsEnable != 0) unreachable; // ImGui_ImplGlfw_InitPlatformInterface(); @@ -207,7 +207,7 @@ fn UpdateMousePosAndButtons() void { var mouse_x: f64 = undefined; var mouse_y: f64 = undefined; c.glfwGetCursorPos(window, &mouse_x, &mouse_y); - if (io.*.ConfigFlags & @enumToInt(c.ImGuiConfigFlags_ViewportsEnable) != 0) { + if (io.*.ConfigFlags & c.ImGuiConfigFlags_ViewportsEnable != 0) { // Multi-viewport mode: mouse position in OS absolute coordinates (io.MousePos is (0,0) when the mouse is on the upper-left of the primary monitor) var window_x: c_int = undefined; var window_y: c_int = undefined; @@ -230,7 +230,7 @@ fn UpdateMousePosAndButtons() void { fn UpdateMouseCursor() void { const io = c.igGetIO(); - if (io.*.ConfigFlags & @enumToInt(c.ImGuiConfigFlags_NoMouseCursorChange) != 0 or c.glfwGetInputMode(g_Window, c.GLFW_CURSOR) == c.GLFW_CURSOR_DISABLED) + if (io.*.ConfigFlags & c.ImGuiConfigFlags_NoMouseCursorChange != 0 or c.glfwGetInputMode(g_Window, c.GLFW_CURSOR) == c.GLFW_CURSOR_DISABLED) return; const imgui_cursor = c.igGetMouseCursor(); @@ -238,13 +238,13 @@ fn UpdateMouseCursor() void { var n: usize = 0; while (n < @intCast(usize, platform_io.*.Viewports.Size)) : (n += 1) { const window = @ptrCast(*c.GLFWwindow, platform_io.*.Viewports.Data[n].*.PlatformHandle); - if (imgui_cursor == @enumToInt(c.ImGuiMouseCursor_None) or io.*.MouseDrawCursor) { + if (imgui_cursor == c.ImGuiMouseCursor_None or io.*.MouseDrawCursor) { // Hide OS mouse cursor if imgui is drawing it or if it wants no cursor c.glfwSetInputMode(window, c.GLFW_CURSOR, c.GLFW_CURSOR_HIDDEN); } else { // Show OS mouse cursor // FIXME-PLATFORM: Unfocused windows seems to fail changing the mouse cursor with GLFW 3.2, but 3.3 works here. - c.glfwSetCursor(window, if (g_MouseCursors[@intCast(usize, imgui_cursor)]) |cursor| cursor else g_MouseCursors[@enumToInt(c.ImGuiMouseCursor_Arrow)]); + c.glfwSetCursor(window, if (g_MouseCursors[@intCast(usize, imgui_cursor)]) |cursor| cursor else g_MouseCursors[c.ImGuiMouseCursor_Arrow]); c.glfwSetInputMode(window, c.GLFW_CURSOR, c.GLFW_CURSOR_NORMAL); } } @@ -255,7 +255,7 @@ fn UpdateGamepads() void { } // GLFW Callbacks -extern fn Callback_MouseButton(window: ?*c.GLFWwindow, button: c_int, action: c_int, mods: c_int) void { +fn Callback_MouseButton(window: ?*c.GLFWwindow, button: c_int, action: c_int, mods: c_int) callconv(.C) void { if (g_PrevUserCallbackMousebutton) |prev| { prev(window, button, action, mods); } @@ -268,7 +268,7 @@ extern fn Callback_MouseButton(window: ?*c.GLFWwindow, button: c_int, action: c_ g_MouseJustPressed[button_u] = true; } -extern fn Callback_Scroll(window: ?*c.GLFWwindow, dx: f64, dy: f64) void { +fn Callback_Scroll(window: ?*c.GLFWwindow, dx: f64, dy: f64) callconv(.C) void { if (g_PrevUserCallbackScroll) |prev| { prev(window, dx, dy); } @@ -278,7 +278,7 @@ extern fn Callback_Scroll(window: ?*c.GLFWwindow, dx: f64, dy: f64) void { io.*.MouseWheel += @floatCast(f32, dy); } -extern fn Callback_Key(window: ?*c.GLFWwindow, key: c_int, scancode: c_int, action: c_int, modifiers: c_int) void { +fn Callback_Key(window: ?*c.GLFWwindow, key: c_int, scancode: c_int, action: c_int, modifiers: c_int) callconv(.C) void { if (g_PrevUserCallbackKey) |prev| { prev(window, key, scancode, action, modifiers); } @@ -301,7 +301,7 @@ extern fn Callback_Key(window: ?*c.GLFWwindow, key: c_int, scancode: c_int, acti io.*.KeySuper = io.*.KeysDown[c.GLFW_KEY_LEFT_SUPER] or io.*.KeysDown[c.GLFW_KEY_RIGHT_SUPER]; } -extern fn Callback_Char(window: ?*c.GLFWwindow, char: c_uint) void { +fn Callback_Char(window: ?*c.GLFWwindow, char: c_uint) callconv(.C) void { if (g_PrevUserCallbackChar) |prev| { prev(window, char); } |
