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

easy-imgui-renderer

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

14 releases (6 breaking)

0.7.0 Aug 7, 2024
0.6.1 Jul 10, 2024
0.5.0 Jun 8, 2024
0.4.1 May 13, 2024
0.1.1 Jan 27, 2024

#1027 in GUI

Download history 174/week @ 2024-05-13 152/week @ 2024-05-20 13/week @ 2024-05-27 164/week @ 2024-06-03 73/week @ 2024-06-10 3/week @ 2024-06-17 117/week @ 2024-07-01 155/week @ 2024-07-08 22/week @ 2024-07-15 9/week @ 2024-07-22 25/week @ 2024-07-29 130/week @ 2024-08-05 29/week @ 2024-08-12 21/week @ 2024-08-19 22/week @ 2024-08-26

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

MIT license

9MB
119K SLoC

C++ 101K SLoC // 0.2% comments Rust 6.5K SLoC // 0.0% comments Visual Studio Project 6.5K SLoC Objective-C++ 3.5K SLoC // 0.2% comments C 731 SLoC // 0.3% comments Visual Studio Solution 341 SLoC Batch 273 SLoC GLSL 85 SLoC Kotlin 59 SLoC // 0.1% comments Shell 3 SLoC // 0.7% comments GDB Script 1 SLoC // 0.9% comments

easy-imgui-rs

build

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

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–8MB
~168K SLoC