summaryrefslogtreecommitdiffstats
path: root/src/glfw_impl.zig
diff options
context:
space:
mode:
authors-ol <s+removethis@s-ol.nu>2021-03-25 18:19:41 +0000
committers-ol <s+removethis@s-ol.nu>2021-03-25 18:19:41 +0000
commit05eb0d1ecbe4b438f8323d3261102c58341f60cf (patch)
tree118422ff1141e5f6eaf61d8b546e4647352dc998 /src/glfw_impl.zig
parentzig-fmt everything (diff)
downloadzig-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.zig94
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);
}