Crate eframe[−][src]
Expand description
eframe - the egui framework crate
If you are planning to write an app for web or native,
and are happy with just using egui for all visuals,
Then eframe
is for you!
To get started, look at https://github.com/emilk/eframe_template.
You write your application code for epi
(implementing epi::App
) and then
call from crate::run_native
your main.rs
, and/or call eframe::start_web
from your lib.rs
.
eframe
is implemented using egui_web
for web and
egui_glium
or egui_glow
for native.
Usage, native:
use eframe::{epi, egui};
#[derive(Default)]
struct MyEguiApp {}
impl epi::App for MyEguiApp {
fn name(&self) -> &str {
"My egui App"
}
fn update(&mut self, ctx: &egui::CtxRef, frame: &epi::Frame) {
egui::CentralPanel::default().show(ctx, |ui| {
ui.heading("Hello World!");
});
}
}
fn main() {
let app = MyEguiApp::default();
let native_options = eframe::NativeOptions::default();
eframe::run_native(Box::new(app), native_options);
}
Usage, web:
#[cfg(target_arch = "wasm32")]
use wasm_bindgen::prelude::*;
/// Call this once from the HTML.
#[cfg(target_arch = "wasm32")]
#[wasm_bindgen]
pub fn start(canvas_id: &str) -> Result<(), eframe::wasm_bindgen::JsValue> {
let app = MyEguiApp::default();
eframe::start_web(canvas_id, Box::new(app))
}
Re-exports
Structs
Options controlling the behavior of a native window.
Functions
Call from fn main
like this: `