#memory #imgui #editor #bindings #imgui-memory-editor

sys imgui-memory-editor-sys

对imgui内存编辑器的原始FFI绑定

4个版本 (2个破坏性更新)

0.3.0 2021年8月2日
0.2.0 2021年1月14日
0.1.1 2020年5月30日
0.1.0 2020年5月30日

#1204GUI


用于 imgui-memory-editor

MIT/Apache

12KB
105 代码行

Dear ImGui Memory Editor Rust绑定

Documentation on docs.rs

用法

此包旨在与imgui-rs一起使用。

您可以使用自定义结构和闭包或切片来使用内存。

使用切片

let mut vec = vec![0xFF; 0x100];
// Can also use a &mut [u8] if you want to use the editor to modify the slice
let mut memory_editor = MemoryEditor::<&[u8]>::new()
    .draw_window(im_str!("Memory")) // Can omit if you don't want to create a window
    .read_only(true);

// In your main loop, draw the memory editor with draw_vec()
if memory_editor.open() { // open() can be omitted if draw_window was not used
    memory_editor.draw_vec(&ui, &mut vec)
}

使用自定义结构

let mut mem = Memory::new(); // Custom struct
let mut times_written = 0; // Variable captured in closure
let mut memory_editor = MemoryEditor::<Memory>::new()
    .draw_window(im_str!("Name"))
    .read_only(false)
    .mem_size(0x100)
    .read_fn(|mem, offset| mem.read(offset))
    .write_fn(|mem, offset, value| {
        mem.write(offset);
        times_written += 1; // Variable used in closure
        println!("Written {} times", times_written);
    });

// In your main loop, draw the memory editor with draw()
if memory_editor.open() {
    memory_editor.draw(&ui, &mut mem)
}

依赖关系

~12MB
~215K SLoC