New implementation for reading/showing vram
This commit is contained in:
+8
-15
@@ -18,8 +18,8 @@ use crate::{
|
||||
controller::ControllerManager,
|
||||
emulator::{EmulatorClient, EmulatorCommand, SimId},
|
||||
input::MappingProvider,
|
||||
memory::MemoryMonitor,
|
||||
persistence::Persistence,
|
||||
vram::VramLoader,
|
||||
window::{
|
||||
AboutWindow, AppWindow, BgMapWindow, CharacterDataWindow, GameWindow, GdbServerWindow,
|
||||
InputWindow,
|
||||
@@ -40,11 +40,11 @@ fn load_icon() -> anyhow::Result<IconData> {
|
||||
pub struct Application {
|
||||
icon: Option<Arc<IconData>>,
|
||||
wgpu: WgpuState,
|
||||
vram: Arc<VramLoader>,
|
||||
client: EmulatorClient,
|
||||
proxy: EventLoopProxy<UserEvent>,
|
||||
mappings: MappingProvider,
|
||||
controllers: ControllerManager,
|
||||
memory: MemoryMonitor,
|
||||
persistence: Persistence,
|
||||
viewports: HashMap<ViewportId, Viewport>,
|
||||
focused: Option<ViewportId>,
|
||||
@@ -62,6 +62,7 @@ impl Application {
|
||||
let persistence = Persistence::new();
|
||||
let mappings = MappingProvider::new(persistence.clone());
|
||||
let controllers = ControllerManager::new(client.clone(), &mappings);
|
||||
let memory = MemoryMonitor::new(client.clone());
|
||||
{
|
||||
let mappings = mappings.clone();
|
||||
let proxy = proxy.clone();
|
||||
@@ -70,10 +71,10 @@ impl Application {
|
||||
Self {
|
||||
icon,
|
||||
wgpu,
|
||||
vram: Arc::new(VramLoader::new(client.clone())),
|
||||
client,
|
||||
proxy,
|
||||
mappings,
|
||||
memory,
|
||||
controllers,
|
||||
persistence,
|
||||
viewports: HashMap::new(),
|
||||
@@ -89,13 +90,7 @@ impl Application {
|
||||
}
|
||||
self.viewports.insert(
|
||||
viewport_id,
|
||||
Viewport::new(
|
||||
event_loop,
|
||||
&self.wgpu,
|
||||
self.icon.clone(),
|
||||
self.vram.clone(),
|
||||
window,
|
||||
),
|
||||
Viewport::new(event_loop, &self.wgpu, self.icon.clone(), window),
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -210,11 +205,11 @@ impl ApplicationHandler<UserEvent> for Application {
|
||||
self.open(event_loop, Box::new(about));
|
||||
}
|
||||
UserEvent::OpenCharacterData(sim_id) => {
|
||||
let vram = CharacterDataWindow::new(sim_id);
|
||||
let vram = CharacterDataWindow::new(sim_id, &mut self.memory);
|
||||
self.open(event_loop, Box::new(vram));
|
||||
}
|
||||
UserEvent::OpenBgMap(sim_id) => {
|
||||
let bgmap = BgMapWindow::new(sim_id);
|
||||
let bgmap = BgMapWindow::new(sim_id, &mut self.memory);
|
||||
self.open(event_loop, Box::new(bgmap));
|
||||
}
|
||||
UserEvent::OpenDebugger(sim_id) => {
|
||||
@@ -328,7 +323,6 @@ impl Viewport {
|
||||
event_loop: &ActiveEventLoop,
|
||||
wgpu: &WgpuState,
|
||||
icon: Option<Arc<IconData>>,
|
||||
vram: Arc<VramLoader>,
|
||||
mut app: Box<dyn AppWindow>,
|
||||
) -> Self {
|
||||
let ctx = Context::default();
|
||||
@@ -350,7 +344,6 @@ impl Viewport {
|
||||
s.visuals.menu_rounding = Default::default();
|
||||
});
|
||||
egui_extras::install_image_loaders(&ctx);
|
||||
ctx.add_image_loader(vram);
|
||||
|
||||
let wgpu_config = egui_wgpu::WgpuConfiguration {
|
||||
present_mode: wgpu::PresentMode::AutoNoVsync,
|
||||
@@ -374,7 +367,7 @@ impl Viewport {
|
||||
let (window, state) = create_window_and_state(&ctx, event_loop, &builder, &mut painter);
|
||||
egui_winit::update_viewport_info(&mut info, &ctx, &window, true);
|
||||
|
||||
app.on_init(painter.render_state().as_ref().unwrap());
|
||||
app.on_init(&ctx, painter.render_state().as_ref().unwrap());
|
||||
Self {
|
||||
painter,
|
||||
ctx,
|
||||
|
||||
Reference in New Issue
Block a user