From 84c05a9d2e444d6b0a98a49350d22b3b2195915d Mon Sep 17 00:00:00 2001 From: codegirl-007 Date: Mon, 15 Jun 2026 01:15:54 -0700 Subject: [PATCH] remove imgui things --- imgui_impl_raylib/imgui_impl_raylib.odin | 470 ----------------------- odin-imgui | 1 - 2 files changed, 471 deletions(-) delete mode 100644 imgui_impl_raylib/imgui_impl_raylib.odin delete mode 160000 odin-imgui diff --git a/imgui_impl_raylib/imgui_impl_raylib.odin b/imgui_impl_raylib/imgui_impl_raylib.odin deleted file mode 100644 index 96845c4..0000000 --- a/imgui_impl_raylib/imgui_impl_raylib.odin +++ /dev/null @@ -1,470 +0,0 @@ -package imgui_impl_raylib - -// Based on the raylib extras rlImGui: https://github.com/raylib-extras/rlImGui/blob/main/rlImGui.cpp -/* Usage: - -import imgui_rl "imgui_impl_raylib" -import imgui "../../odin-imgui" - -main :: proc() { - rl.SetConfigFlags({ rl.ConfigFlag.WINDOW_RESIZABLE }) - rl.InitWindow(800, 600, "raylib basic window") - defer rl.CloseWindow() - - imgui.CreateContext(nil) - defer imgui.DestroyContext(nil) - - imgui_rl.init() - defer imgui_rl.shutdown() - - imgui_rl.build_font_atlas() - - for !rl.WindowShouldClose() { - imgui_rl.process_events() - imgui_rl.new_frame() - imgui.NewFrame() - - rl.BeginDrawing() - rl.ClearBackground(rl.RAYWHITE) - - imgui.ShowDemoWindow(nil) - - imgui.Render() - imgui_rl.render_draw_data(imgui.GetDrawData()) - - rl.EndDrawing() - } -} -*/ - -import "core:c" -import "core:mem" -import "core:math" - -// Follow build instruction for imgui bindings in: https://gitlab.com/L-4/odin-imgui -import imgui "../odin-imgui" -import rl "vendor:raylib" - -current_mouse_cursor: imgui.MouseCursor = imgui.MouseCursor.COUNT -mouse_cursor_map: [imgui.MouseCursor.COUNT]rl.MouseCursor - -last_frame_focused := false -last_control_pressed := false -last_shift_pressed := false -last_alt_pressed := false -last_super_pressed := false - -raylib_key_map: map[rl.KeyboardKey]imgui.Key = {} - -init :: proc() -> bool { - setup_globals() - setup_keymap() - setup_mouse_cursor() - setup_backend() - - return true -} - -build_font_atlas :: proc() -> mem.Allocator_Error { - io: ^imgui.IO = imgui.GetIO() - - pixels: ^c.uchar - width, height: c.int - imgui.FontAtlas_GetTexDataAsRGBA32(io.Fonts, &pixels, &width, &height, nil) - image: rl.Image = rl.GenImageColor(width, height, rl.BLANK) - mem.copy(image.data, pixels, int(width * height * 4)) - - font_texture: ^rl.Texture2D = transmute(^rl.Texture)io.Fonts.TexID - if font_texture != nil && font_texture.id != 0 { - rl.UnloadTexture(font_texture^) - mem.free(font_texture) - } - - font_texture = cast(^rl.Texture2D)(mem.alloc(size_of(rl.Texture2D), align_of(rl.Texture2D)) or_return) - font_texture^ = rl.LoadTextureFromImage(image) - rl.UnloadImage(image) - io.Fonts.TexID = font_texture - - return nil -} - -shutdown :: proc() { - io: ^imgui.IO = imgui.GetIO() - font_texture: ^rl.Texture2D = transmute(^rl.Texture)io.Fonts.TexID - - if font_texture != nil && font_texture.id != 0 { - rl.UnloadTexture(font_texture^) - mem.free(font_texture) - } - - io.Fonts.TexID = nil -} - -new_frame :: proc() { - io: ^imgui.IO = imgui.GetIO() - - if rl.IsWindowFullscreen() { - monitor := rl.GetCurrentMonitor() - io.DisplaySize.x = f32(rl.GetMonitorWidth(monitor)) - io.DisplaySize.y = f32(rl.GetMonitorHeight(monitor)) - } else { - io.DisplaySize.x = f32(rl.GetScreenWidth()) - io.DisplaySize.y = f32(rl.GetScreenHeight()) - } - - io.DisplayFramebufferScale = rl.GetWindowScaleDPI() - io.DeltaTime = rl.GetFrameTime() - - if io.WantSetMousePos { - rl.SetMousePosition(c.int(io.MousePos.x), c.int(io.MousePos.y)) - } else { - mouse_pos := rl.GetMousePosition() - imgui.IO_AddMousePosEvent(io, mouse_pos.x, mouse_pos.y) - } - - set_mouse_event :: proc(io: ^imgui.IO, rl_mouse: rl.MouseButton, imgui_mouse: c.int) { - if rl.IsMouseButtonPressed(rl_mouse) { - imgui.IO_AddMouseButtonEvent(io, imgui_mouse, true) - } else if rl.IsMouseButtonReleased(rl_mouse) { - imgui.IO_AddMouseButtonEvent(io, imgui_mouse, false) - } - } - - set_mouse_event(io, rl.MouseButton.LEFT, c.int(imgui.MouseButton.Left)) - set_mouse_event(io, rl.MouseButton.RIGHT, c.int(imgui.MouseButton.Right)) - set_mouse_event(io, rl.MouseButton.MIDDLE, c.int(imgui.MouseButton.Middle)) - set_mouse_event(io, rl.MouseButton.FORWARD, c.int(imgui.MouseButton.Middle) + 1) - set_mouse_event(io, rl.MouseButton.BACK, c.int(imgui.MouseButton.Middle) + 2) - - mouse_wheel := rl.GetMouseWheelMoveV() - imgui.IO_AddMouseWheelEvent(io, mouse_wheel.x, mouse_wheel.y) - - if imgui.ConfigFlag.NoMouseCursorChange not_in io.ConfigFlags { - imgui_cursor: imgui.MouseCursor = imgui.GetMouseCursor() - if imgui_cursor != current_mouse_cursor || io.MouseDrawCursor { - current_mouse_cursor = imgui_cursor - if io.MouseDrawCursor || imgui_cursor == imgui.MouseCursor.None { - rl.HideCursor() - } else { - rl.ShowCursor() - if c.int(imgui_cursor) > -1 && imgui_cursor < imgui.MouseCursor.COUNT { - rl.SetMouseCursor(mouse_cursor_map[imgui_cursor]) - } else { - rl.SetMouseCursor(rl.MouseCursor.DEFAULT) - } - } - } - } -} - -render_draw_data :: proc(draw_data: ^imgui.DrawData) { - rl.rlDrawRenderBatchActive() - rl.rlDisableBackfaceCulling() - - command_lists: []^imgui.DrawList = mem.slice_ptr(draw_data.CmdLists.Data, int(draw_data.CmdLists.Size)) - for command_list in command_lists { - cmd_slice: []imgui.DrawCmd = mem.slice_ptr(command_list.CmdBuffer.Data, int(command_list.CmdBuffer.Size)) - for i in 0.. bool { return rl.IsKeyDown(rl.KeyboardKey.RIGHT_CONTROL) || rl.IsKeyDown(rl.KeyboardKey.LEFT_CONTROL); } -is_shift_down :: proc() -> bool { return rl.IsKeyDown(rl.KeyboardKey.RIGHT_SHIFT) || rl.IsKeyDown(rl.KeyboardKey.LEFT_SHIFT); } -is_alt_down :: proc() -> bool { return rl.IsKeyDown(rl.KeyboardKey.RIGHT_ALT) || rl.IsKeyDown(rl.KeyboardKey.LEFT_ALT); } -is_super_down :: proc() -> bool { return rl.IsKeyDown(rl.KeyboardKey.RIGHT_SUPER) || rl.IsKeyDown(rl.KeyboardKey.LEFT_SUPER); } - -process_events :: proc() -> bool { - io: ^imgui.IO = imgui.GetIO() - - focused := rl.IsWindowFocused() - if (focused != last_frame_focused) { - imgui.IO_AddFocusEvent(io, focused) - } - last_frame_focused = focused - - // Handle modifers for key evets so that shortcuts work - ctrl_down := is_control_down() - if ctrl_down != last_control_pressed { - imgui.IO_AddKeyEvent(io, imgui.Key.ImGuiMod_Ctrl, ctrl_down) - } - last_control_pressed = ctrl_down - - shift_down := is_shift_down() - if shift_down != last_shift_pressed { - imgui.IO_AddKeyEvent(io, imgui.Key.ImGuiMod_Shift, shift_down) - } - last_shift_pressed = shift_down - - alt_down := is_alt_down() - if alt_down != last_alt_pressed { - imgui.IO_AddKeyEvent(io, imgui.Key.ImGuiMod_Alt, alt_down) - } - last_alt_pressed = alt_down - - super_down := is_super_down() - if super_down != last_super_pressed { - imgui.IO_AddKeyEvent(io, imgui.Key.ImGuiMod_Super, super_down) - } - last_super_pressed = super_down - - // Get pressed keys, they are in event order - key_id: rl.KeyboardKey = rl.GetKeyPressed() - for key_id != rl.KeyboardKey.KEY_NULL { - key, ok := raylib_key_map[key_id] - if ok { - imgui.IO_AddKeyEvent(io, key, true) - } - - key_id = rl.GetKeyPressed() - } - - // Check for released keys - for key in raylib_key_map { - if rl.IsKeyReleased(key) { - imgui.IO_AddKeyEvent(io, raylib_key_map[key], false) - } - } - - // Add text input in order - pressed: rune = rl.GetCharPressed() - for pressed != 0 { - imgui.IO_AddInputCharacter(io, u32(pressed)) - pressed = rl.GetCharPressed() - } - - return true -} - -@private -setup_globals :: proc() { - last_frame_focused = rl.IsWindowFocused() - last_control_pressed = false - last_shift_pressed = false - last_alt_pressed = false - last_super_pressed = false -} - -@private -setup_keymap :: proc() { - raylib_key_map[rl.KeyboardKey.APOSTROPHE] = imgui.Key.Apostrophe - raylib_key_map[rl.KeyboardKey.COMMA] = imgui.Key.Comma - raylib_key_map[rl.KeyboardKey.MINUS] = imgui.Key.Minus - raylib_key_map[rl.KeyboardKey.PERIOD] = imgui.Key.Period - raylib_key_map[rl.KeyboardKey.SLASH] = imgui.Key.Slash - raylib_key_map[rl.KeyboardKey.ZERO] = imgui.Key._0 - raylib_key_map[rl.KeyboardKey.ONE] = imgui.Key._1 - raylib_key_map[rl.KeyboardKey.TWO] = imgui.Key._2 - raylib_key_map[rl.KeyboardKey.THREE] = imgui.Key._3 - raylib_key_map[rl.KeyboardKey.FOUR] = imgui.Key._4 - raylib_key_map[rl.KeyboardKey.FIVE] = imgui.Key._5 - raylib_key_map[rl.KeyboardKey.SIX] = imgui.Key._6 - raylib_key_map[rl.KeyboardKey.SEVEN] = imgui.Key._7 - raylib_key_map[rl.KeyboardKey.EIGHT] = imgui.Key._8 - raylib_key_map[rl.KeyboardKey.NINE] = imgui.Key._9 - raylib_key_map[rl.KeyboardKey.SEMICOLON] = imgui.Key.Semicolon - raylib_key_map[rl.KeyboardKey.EQUAL] = imgui.Key.Equal - raylib_key_map[rl.KeyboardKey.A] = imgui.Key.A - raylib_key_map[rl.KeyboardKey.B] = imgui.Key.B - raylib_key_map[rl.KeyboardKey.C] = imgui.Key.C - raylib_key_map[rl.KeyboardKey.D] = imgui.Key.D - raylib_key_map[rl.KeyboardKey.E] = imgui.Key.E - raylib_key_map[rl.KeyboardKey.F] = imgui.Key.F - raylib_key_map[rl.KeyboardKey.G] = imgui.Key.G - raylib_key_map[rl.KeyboardKey.H] = imgui.Key.H - raylib_key_map[rl.KeyboardKey.I] = imgui.Key.I - raylib_key_map[rl.KeyboardKey.J] = imgui.Key.J - raylib_key_map[rl.KeyboardKey.K] = imgui.Key.K - raylib_key_map[rl.KeyboardKey.L] = imgui.Key.L - raylib_key_map[rl.KeyboardKey.M] = imgui.Key.M - raylib_key_map[rl.KeyboardKey.N] = imgui.Key.N - raylib_key_map[rl.KeyboardKey.O] = imgui.Key.O - raylib_key_map[rl.KeyboardKey.P] = imgui.Key.P - raylib_key_map[rl.KeyboardKey.Q] = imgui.Key.Q - raylib_key_map[rl.KeyboardKey.R] = imgui.Key.R - raylib_key_map[rl.KeyboardKey.S] = imgui.Key.S - raylib_key_map[rl.KeyboardKey.T] = imgui.Key.T - raylib_key_map[rl.KeyboardKey.U] = imgui.Key.U - raylib_key_map[rl.KeyboardKey.V] = imgui.Key.V - raylib_key_map[rl.KeyboardKey.W] = imgui.Key.W - raylib_key_map[rl.KeyboardKey.X] = imgui.Key.X - raylib_key_map[rl.KeyboardKey.Y] = imgui.Key.Y - raylib_key_map[rl.KeyboardKey.Z] = imgui.Key.Z - raylib_key_map[rl.KeyboardKey.SPACE] = imgui.Key.Space - raylib_key_map[rl.KeyboardKey.ESCAPE] = imgui.Key.Escape - raylib_key_map[rl.KeyboardKey.ENTER] = imgui.Key.Enter - raylib_key_map[rl.KeyboardKey.TAB] = imgui.Key.Tab - raylib_key_map[rl.KeyboardKey.BACKSPACE] = imgui.Key.Backspace - raylib_key_map[rl.KeyboardKey.INSERT] = imgui.Key.Insert - raylib_key_map[rl.KeyboardKey.DELETE] = imgui.Key.Delete - raylib_key_map[rl.KeyboardKey.RIGHT] = imgui.Key.RightArrow - raylib_key_map[rl.KeyboardKey.LEFT] = imgui.Key.LeftArrow - raylib_key_map[rl.KeyboardKey.DOWN] = imgui.Key.DownArrow - raylib_key_map[rl.KeyboardKey.UP] = imgui.Key.UpArrow - raylib_key_map[rl.KeyboardKey.PAGE_UP] = imgui.Key.PageUp - raylib_key_map[rl.KeyboardKey.PAGE_DOWN] = imgui.Key.PageDown - raylib_key_map[rl.KeyboardKey.HOME] = imgui.Key.Home - raylib_key_map[rl.KeyboardKey.END] = imgui.Key.End - raylib_key_map[rl.KeyboardKey.CAPS_LOCK] = imgui.Key.CapsLock - raylib_key_map[rl.KeyboardKey.SCROLL_LOCK] = imgui.Key.ScrollLock - raylib_key_map[rl.KeyboardKey.NUM_LOCK] = imgui.Key.NumLock - raylib_key_map[rl.KeyboardKey.PRINT_SCREEN] = imgui.Key.PrintScreen - raylib_key_map[rl.KeyboardKey.PAUSE] = imgui.Key.Pause - raylib_key_map[rl.KeyboardKey.F1] = imgui.Key.F1 - raylib_key_map[rl.KeyboardKey.F2] = imgui.Key.F2 - raylib_key_map[rl.KeyboardKey.F3] = imgui.Key.F3 - raylib_key_map[rl.KeyboardKey.F4] = imgui.Key.F4 - raylib_key_map[rl.KeyboardKey.F5] = imgui.Key.F5 - raylib_key_map[rl.KeyboardKey.F6] = imgui.Key.F6 - raylib_key_map[rl.KeyboardKey.F7] = imgui.Key.F7 - raylib_key_map[rl.KeyboardKey.F8] = imgui.Key.F8 - raylib_key_map[rl.KeyboardKey.F9] = imgui.Key.F9 - raylib_key_map[rl.KeyboardKey.F10] = imgui.Key.F10 - raylib_key_map[rl.KeyboardKey.F11] = imgui.Key.F11 - raylib_key_map[rl.KeyboardKey.F12] = imgui.Key.F12 - raylib_key_map[rl.KeyboardKey.LEFT_SHIFT] = imgui.Key.LeftShift - raylib_key_map[rl.KeyboardKey.LEFT_CONTROL] = imgui.Key.LeftCtrl - raylib_key_map[rl.KeyboardKey.LEFT_ALT] = imgui.Key.LeftAlt - raylib_key_map[rl.KeyboardKey.LEFT_SUPER] = imgui.Key.LeftSuper - raylib_key_map[rl.KeyboardKey.RIGHT_SHIFT] = imgui.Key.RightShift - raylib_key_map[rl.KeyboardKey.RIGHT_CONTROL] = imgui.Key.RightCtrl - raylib_key_map[rl.KeyboardKey.RIGHT_ALT] = imgui.Key.RightAlt - raylib_key_map[rl.KeyboardKey.RIGHT_SUPER] = imgui.Key.RightSuper - raylib_key_map[rl.KeyboardKey.KB_MENU] = imgui.Key.Menu - raylib_key_map[rl.KeyboardKey.LEFT_BRACKET] = imgui.Key.LeftBracket - raylib_key_map[rl.KeyboardKey.BACKSLASH] = imgui.Key.Backslash - raylib_key_map[rl.KeyboardKey.RIGHT_BRACKET] = imgui.Key.RightBracket - raylib_key_map[rl.KeyboardKey.GRAVE] = imgui.Key.GraveAccent - raylib_key_map[rl.KeyboardKey.KP_0] = imgui.Key.Keypad0 - raylib_key_map[rl.KeyboardKey.KP_1] = imgui.Key.Keypad1 - raylib_key_map[rl.KeyboardKey.KP_2] = imgui.Key.Keypad2 - raylib_key_map[rl.KeyboardKey.KP_3] = imgui.Key.Keypad3 - raylib_key_map[rl.KeyboardKey.KP_4] = imgui.Key.Keypad4 - raylib_key_map[rl.KeyboardKey.KP_5] = imgui.Key.Keypad5 - raylib_key_map[rl.KeyboardKey.KP_6] = imgui.Key.Keypad6 - raylib_key_map[rl.KeyboardKey.KP_7] = imgui.Key.Keypad7 - raylib_key_map[rl.KeyboardKey.KP_8] = imgui.Key.Keypad8 - raylib_key_map[rl.KeyboardKey.KP_9] = imgui.Key.Keypad9 - raylib_key_map[rl.KeyboardKey.KP_DECIMAL] = imgui.Key.KeypadDecimal - raylib_key_map[rl.KeyboardKey.KP_DIVIDE] = imgui.Key.KeypadDivide - raylib_key_map[rl.KeyboardKey.KP_MULTIPLY] = imgui.Key.KeypadMultiply - raylib_key_map[rl.KeyboardKey.KP_SUBTRACT] = imgui.Key.KeypadSubtract - raylib_key_map[rl.KeyboardKey.KP_ADD] = imgui.Key.KeypadAdd - raylib_key_map[rl.KeyboardKey.KP_ENTER] = imgui.Key.KeypadEnter - raylib_key_map[rl.KeyboardKey.KP_EQUAL] = imgui.Key.KeypadEqual -} - -@private -setup_mouse_cursor :: proc() { - mouse_cursor_map[imgui.MouseCursor.Arrow] = rl.MouseCursor.ARROW; - mouse_cursor_map[imgui.MouseCursor.TextInput] = rl.MouseCursor.IBEAM; - mouse_cursor_map[imgui.MouseCursor.Hand] = rl.MouseCursor.POINTING_HAND; - mouse_cursor_map[imgui.MouseCursor.ResizeAll] = rl.MouseCursor.RESIZE_ALL; - mouse_cursor_map[imgui.MouseCursor.ResizeEW] = rl.MouseCursor.RESIZE_EW; - mouse_cursor_map[imgui.MouseCursor.ResizeNESW] = rl.MouseCursor.RESIZE_NESW; - mouse_cursor_map[imgui.MouseCursor.ResizeNS] = rl.MouseCursor.RESIZE_NS; - mouse_cursor_map[imgui.MouseCursor.ResizeNWSE] = rl.MouseCursor.RESIZE_NWSE; - mouse_cursor_map[imgui.MouseCursor.NotAllowed] = rl.MouseCursor.NOT_ALLOWED; -} - -@private -setup_backend :: proc() { - io: ^imgui.IO = imgui.GetIO() - io.BackendPlatformName = "imgui_impl_raylib" - - io.BackendFlags |= { imgui.BackendFlag.HasMouseCursors } - - io.MousePos = { 0, 0 } - - io.SetClipboardTextFn = set_clip_text_callback - io.GetClipboardTextFn = get_clip_text_callback - - io.ClipboardUserData = nil -} - -@private -set_clip_text_callback :: proc "c" (user_data: rawptr, text: cstring) { - rl.SetClipboardText(text) -} - -@private -get_clip_text_callback :: proc "c" (user_data: rawptr) -> cstring { - return rl.GetClipboardText() -} \ No newline at end of file diff --git a/odin-imgui b/odin-imgui deleted file mode 160000 index 0615247..0000000 --- a/odin-imgui +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0615247fab19bc7317fba308aff5de087cc2dd39