#glfw #imgui #input #imgui-glfw

imgui-glfw-rs

ImGui 对 GLFW 的输入处理

9 个版本

0.4.1 2019年8月13日
0.4.0 2019年8月13日
0.3.0 2019年5月22日
0.2.7 2019年2月16日
0.2.1 2018年12月28日

#786 in GUI

MIT/Apache

130KB
147

imgui-glfw-rs: GLFW 对 ImGui 的输入处理

实验性!
Documentation on docs.rs Dependencies

GLFW 对 imgui 的输入处理

如何使用

// Use the reexported glfw crate to avoid version conflicts.
use imgui_glfw_rs::glfw;
// Use the reexported imgui crate to avoid version conflicts.
use imgui_glfw_rs::imgui;

use imgui_glfw_rs::ImguiGLFW;
// ImGui uses { ... }

fn main() {
    // Initialize imgui and glfw and imgui renderer.
    // { ... }

    let mut imgui_glfw = ImguiGLFW::new(&mut imgui);

    while !window.should_close() {
        let ui = imgui_glfw.frame(&mut window, &mut imgui);

        // Draw your ui.
        // { ... }

        window.swap_buffers();

        // Handle imgui events
        glfw.poll_events();
        for (_, event) in glfw::flush_messages(&events) {
            imgui_glfw.handle_event(&mut imgui, &event);
        }
    }
}

当前已实现的功能

  • 鼠标按钮的按下和释放
  • 光标位置移动
  • 滚动移动
  • 字符输入
  • 按键的按下和释放
  • 修饰符处理
  • 光标图标
  • 剪贴板复制/粘贴

未实现的功能和已知问题

编译和运行示例

git clone https://github.com/K4ugummi/imgui-glfw-rs.git
cd imgui-glfw-rs
cargo run --example helloworld

贡献

  1. 做出一些更改
  2. 运行 rustfmt 以符合代码风格
    cargofmt
  3. 打开一个 pull request

感谢

依赖关系

~16MB
~294K SLoC