minimal fixes for displaying

This commit is contained in:
bQUARKz 2026-05-16 09:53:25 +01:00
parent 13fc1bdbe4
commit 74ef393294
Signed by: bquarkz
SSH Key Fingerprint: SHA256:Z7dgqoglWwoK6j6u4QC87OveEq74WOhFN+gitsxtkf8
3 changed files with 16 additions and 5 deletions

View File

@ -23,7 +23,7 @@ impl SplashScreenStep {
ctx.hw.pad_mut().begin_frame(ctx.signals);
// Clear screen
ctx.hw.gfx_mut().clear(Color::BLACK);
ctx.hw.gfx_mut().clear(Color::ORANGE);
// Draw expanding square
let (sw, sh) = ctx.hw.gfx().size();

View File

@ -99,6 +99,10 @@ impl SystemOS {
self.log_service.get_after(seq)
}
pub fn frame_index(&mut self) -> u64 {
self.vm().logical_frame_index()
}
pub fn lifecycle(&mut self) -> LifecycleFacade<'_> {
LifecycleFacade { os: self }
}

View File

@ -10,7 +10,7 @@ use pixels::wgpu::PresentMode;
use pixels::{Pixels, PixelsBuilder, SurfaceTexture};
use prometeu_drivers::AudioCommand;
use prometeu_drivers::hardware::Hardware;
use prometeu_firmware::{BootTarget, Firmware};
use prometeu_firmware::{BootTarget, Firmware, FirmwareState};
use prometeu_hal::telemetry::CertificationConfig;
use std::time::{Duration, Instant};
use winit::application::ApplicationHandler;
@ -198,10 +198,17 @@ impl HostRunner {
}
fn request_redraw_if_needed(&mut self) {
match self.firmware.state {
FirmwareState::GameRunning(_) => {
if self.presentation.should_request_redraw() {
self.request_redraw();
}
}
_ => {
self.request_redraw();
}
}
}
fn machine_running(&mut self) -> bool {
!self.firmware.os.vm().paused() && !self.debugger.waiting_for_start
@ -383,7 +390,7 @@ impl ApplicationHandler for HostRunner {
self.stats.record_frame();
}
self.presentation.note_published_frame(self.firmware.os.vm().logical_frame_index());
self.presentation.note_published_frame(self.firmware.os.frame_index());
if was_debugger_connected != self.debugger.stream.is_some()
|| was_waiting_for_start != self.debugger.waiting_for_start