pub fn create_native<'a>(
app_name: &str,
native_options: NativeOptions,
app_creator: AppCreator<'a>,
event_loop: &EventLoop<UserEvent>,
) -> EframeWinitApplication<'a>Expand description
Provides a proxy for your native eframe application to run on your own event loop.
See run_native for details about app_name.
Call from fn main like this:
use eframe::{egui, UserEvent};
use winit::event_loop::{ControlFlow, EventLoop};
fn main() -> eframe::Result {
let native_options = eframe::NativeOptions::default();
let eventloop = EventLoop::<UserEvent>::with_user_event().build()?;
eventloop.set_control_flow(ControlFlow::Poll);
let mut winit_app = eframe::create_native(
"MyExtApp",
native_options,
Box::new(|cc| Ok(Box::new(MyEguiApp::new(cc)))),
&eventloop,
);
eventloop.run_app(&mut winit_app)?;
Ok(())
}
#[derive(Default)]
struct MyEguiApp {}
impl MyEguiApp {
fn new(cc: &eframe::CreationContext<'_>) -> Self {
Self::default()
}
}
impl eframe::App for MyEguiApp {
fn ui(&mut self, ui: &mut egui::Ui, frame: &mut eframe::Frame) {
egui::CentralPanel::default().show_inside(ui, |ui| {
ui.heading("Hello World!");
});
}
}See the external_eventloop example for a more complete example.