upgrade egui

This commit is contained in:
kirjavascript 2023-02-18 12:11:37 +00:00
parent 9a295225f3
commit f0f10129fc
8 changed files with 431 additions and 190 deletions

582
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -7,5 +7,4 @@ members = [
[profile.release]
opt-level = 2
# lto = true
debug = 1
debug = true

View file

@ -22,8 +22,8 @@ emu = { path = "../emu" }
# wasm-bindgen-futures = "0.4"
# hqx = { git = "https://github.com/CryZe/wasmboy-rs", branch = "master" }
egui = "0.19.0"
eframe = { version = "0.19.0", features = ["persistence"] }
egui = "0.20.1"
eframe = { version = "0.20.1", features = ["persistence"] }
# egui = { path = "/home/cake/dev/egui/egui" }
# eframe = { path = "/home/cake/dev/egui/eframe" }
# egui = { git = "https://github.com/emilk/egui", rev = "7eeb292a" }
@ -38,3 +38,4 @@ tracing-subscriber = "0.3"
[target.'cfg(target_arch = "wasm32")'.dependencies]
console_error_panic_hook = "0.1.6"
tracing-wasm = "0.2"
wasm-bindgen-futures = "0.4"

View file

@ -28,6 +28,8 @@ impl VRAM {
pub fn render(&mut self, ctx: &egui::Context, emu: &emu::Megadrive) {
egui::Window::new("vram")
.vscroll(true)
// TODO: only show onscreen ram"
// TODO: show_rows
.show(ctx, |ui| {
ui.horizontal(|ui| {
ui.radio_value(&mut self.palette_line, 0, "0");
@ -40,7 +42,6 @@ impl VRAM {
const HEIGHT: usize = 128;
const PIXEL_QTY: usize = (WIDTH * 8) * (HEIGHT * 8);
// TODO use retained buffer
// TODO: only show onscreen ram"
let mut pixels: [egui::Color32; PIXEL_QTY] = [ egui::Color32::from_rgb(0, 0, 0); PIXEL_QTY];
let palette_offset = self.palette_line * 0x10;
@ -74,7 +75,7 @@ impl VRAM {
size: [WIDTH*8, HEIGHT*8],
pixels: pixels.to_vec(),
},
egui::TextureFilter::Nearest
egui::TextureOptions::NEAREST
);
let img = egui::Image::new(texture, texture.size_vec2() * 2.);

View file

@ -10,7 +10,7 @@ pub fn palette_window(ctx: &egui::Context, emu: &emu::Megadrive) {
size: [16, 4],
pixels,
},
egui::TextureFilter::Nearest
egui::TextureOptions::NEAREST
);
let img = egui::Image::new(texture, texture.size_vec2() * 20.);

View file

@ -17,9 +17,17 @@ pub fn start() {
// redirect tracing to console.log and friends
tracing_wasm::set_as_global_default();
eframe::start_web(
"emu",
Default::default(),
Box::new(|cc| Box::new(App::new(cc)))
).expect("eframe didnt load");
wasm_bindgen_futures::spawn_local(async {
eframe::start_web(
"emu",
eframe::WebOptions {
follow_system_theme: false,
default_theme: eframe::Theme::Dark,
..Default::default()
},
Box::new(|cc| Box::new(App::new(cc))),
)
.await
.expect("failed to start eframe");
});
}

View file

@ -3,9 +3,9 @@ pub fn menu<'a>(fullscreen: &'a mut bool, _frame: &'a mut eframe::Frame) ->
{
move |ui: &mut egui::Ui| {
egui::menu::bar(ui, |ui| {
ui.menu_button("File", |ui| {
ui.menu_button("File", |_ui| {
#[cfg(not(target_arch = "wasm32"))]
if ui.button("Quit").clicked() {
if _ui.button("Quit").clicked() {
_frame.close();
}
});

View file

@ -10,7 +10,7 @@ fn viewport_ui(ui: &mut egui::Ui, emu: &Megadrive, centered: bool) -> egui::Resp
size: [320, 240],
pixels,
},
egui::TextureFilter::Nearest
egui::TextureOptions::NEAREST
);
let (width, height) = (ui.available_width(), ui.available_height());