#imgui #graphics #ui #gui-applications #ui-framework #bindings

easy-imgui-renderer

Default renderer for the easy-imgui crate, using OpenGl via glow

20 releases (11 breaking)

new 0.12.0 Dec 12, 2024
0.11.0 Nov 8, 2024
0.10.0 Oct 26, 2024
0.6.1 Jul 10, 2024
0.2.4 Mar 22, 2024

#1156 in GUI

Download history 19/week @ 2024-08-18 19/week @ 2024-08-25 5/week @ 2024-09-01 16/week @ 2024-09-08 197/week @ 2024-09-15 216/week @ 2024-09-22 62/week @ 2024-09-29 178/week @ 2024-10-06 26/week @ 2024-10-13 88/week @ 2024-10-20 73/week @ 2024-10-27 131/week @ 2024-11-03 32/week @ 2024-11-10 14/week @ 2024-11-17 8/week @ 2024-11-24 7/week @ 2024-12-01

96 downloads per month
Used in 2 crates (via easy-imgui-window)

MIT license

9MB
122K SLoC

C++ 104K SLoC // 0.2% comments Visual Studio Project 6.5K SLoC Rust 6K SLoC // 0.0% comments Objective-C++ 3.5K SLoC // 0.2% comments C 732 SLoC // 0.3% comments Batch 390 SLoC Visual Studio Solution 362 SLoC GLSL 86 SLoC Kotlin 60 SLoC // 0.1% comments Shell 4 SLoC // 0.7% comments GDB Script 2 SLoC // 0.9% comments

easy-imgui-rs

build

Build full GUI applications with Rust and Dear ImGui. It currently uses version v1.91.6.

There are several crates in this repository:

See some examples at the examples directory. The simplest one is just a few lines of code:

use easy_imgui_window::{MainWindow, MainWindowWithRenderer,
    winit::event_loop::EventLoopBuilder,
    easy_imgui as imgui,
};

fn main() {
    let event_loop = EventLoopBuilder::new().build().unwrap();
    let main_window = MainWindow::new(&event_loop, "Example").unwrap();
    let mut window = MainWindowWithRenderer::new(main_window);

    let mut app = App;

    event_loop.run(move |event, w| {
        let res = window.do_event(&mut app, &event, w);
        if res.is_break() {
            w.exit();
        }
    }).unwrap();
}

struct App;

impl imgui::UiBuilder for App {
    fn do_ui(&mut self, ui: &imgui::Ui<Self>) {
        ui.show_demo_window(None);
    }
}

Dependencies

~4.5–8.5MB
~178K SLoC