Expand description
§Usage
Create an instance of EguiMq and call its event-handler from
your miniquad::EventHandler implementation.
In your miniquad::EventHandler::draw method do this:
use miniquad as mq;
struct MyMiniquadApp {
egui_mq: egui_miniquad::EguiMq,
mq_ctx: Box<dyn mq::RenderingBackend>
}
impl MyMiniquadApp {
fn new() -> Self {
let mut mq_ctx = mq::window::new_rendering_backend();
Self {
egui_mq: egui_miniquad::EguiMq::new(&mut *mq_ctx),
mq_ctx,
}
}
}
impl mq::EventHandler for MyMiniquadApp {
fn update(&mut self) {}
fn draw(&mut self) {
self.mq_ctx.begin_default_pass(mq::PassAction::clear_color(0.0, 0.0, 0.0, 1.0));
self.mq_ctx.end_render_pass();
self.egui_mq.run(&mut *self.mq_ctx, |_mq_ctx, egui_ctx|{
egui::Window::new("Egui Window").show(egui_ctx, |ui| {
ui.heading("Hello World!");
});
});
// Draw things behind egui here
self.egui_mq.draw(&mut *self.mq_ctx);
// Draw things in front of egui here
self.mq_ctx.commit_frame();
}
fn mouse_motion_event(&mut self, x: f32, y: f32) {
self.egui_mq.mouse_motion_event(x, y);
}
fn mouse_wheel_event(&mut self, dx: f32, dy: f32) {
self.egui_mq.mouse_wheel_event(dx, dy);
}
fn mouse_button_down_event(
&mut self,
mb: mq::MouseButton,
x: f32,
y: f32,
) {
self.egui_mq.mouse_button_down_event(mb, x, y);
}
fn mouse_button_up_event(
&mut self,
mb: mq::MouseButton,
x: f32,
y: f32,
) {
self.egui_mq.mouse_button_up_event(mb, x, y);
}
fn char_event(
&mut self,
character: char,
_keymods: mq::KeyMods,
_repeat: bool,
) {
self.egui_mq.char_event(character);
}
fn key_down_event(
&mut self,
keycode: mq::KeyCode,
keymods: mq::KeyMods,
_repeat: bool,
) {
self.egui_mq.key_down_event(keycode, keymods);
}
fn key_up_event(&mut self, keycode: mq::KeyCode, keymods: mq::KeyMods) {
self.egui_mq.key_up_event(keycode, keymods);
}
}Structs§
- Callback
Fn - A callback function that can be used to compose an
egui::PaintCallbackfor custom rendering with [egui-miniquad]. - EguiMq
- egui bindings for miniquad.