allow exiting full screen

This commit is contained in:
Logan McNaughton 2023-10-12 18:20:06 -06:00
parent 86326683bd
commit 39afb26bfc
3 changed files with 17 additions and 4 deletions

View File

@ -50,6 +50,7 @@ enum vi_registers
VI_REGS_COUNT
};
static bool fullscreen;
static void *rdram;
static SDL_Window *window;
static RDP::CommandProcessor *processor;
@ -136,8 +137,9 @@ enum
MB_RDRAM_DRAM_ALIGNMENT_REQUIREMENT = 64 * 1024
};
void vk_init(void *mem_base, uint32_t rdram_size)
void vk_init(void *mem_base, uint32_t rdram_size, uint8_t _fullscreen)
{
fullscreen = _fullscreen != 0;
rdram = mem_base;
bool window_vsync = 0;
wsi = new WSI;
@ -191,6 +193,17 @@ int sdl_event_filter(void *userdata, SDL_Event *event)
break;
}
}
else if (fullscreen && event->type == SDL_KEYDOWN)
{
switch (event->key.keysym.scancode)
{
case SDL_SCANCODE_ESCAPE:
emu_running = 0;
break;
default:
break;
}
}
return 0;
}

View File

@ -5,7 +5,7 @@ extern "C"
{
#endif
void vk_init(void *mem_base, uint32_t rdram_size);
void vk_init(void *mem_base, uint32_t rdram_size, uint8_t fullscreen);
void vk_close();
void set_sdl_window(void *_window);
void rdp_set_vi_register(uint32_t reg, uint32_t value);

View File

@ -1,7 +1,7 @@
use crate::ui;
extern "C" {
pub fn vk_init(rdram_ptr: usize, rdram_size: u32);
pub fn vk_init(rdram_ptr: usize, rdram_size: u32, fullscreen: u8);
pub fn set_sdl_window(window: usize);
pub fn rdp_update_screen() -> u8;
pub fn rdp_set_vi_register(reg: u32, value: u32);
@ -24,7 +24,7 @@ pub fn init(ui: &mut ui::Ui, rdram_ptr: *mut u8, rdram_size: usize, fullscreen:
ui.window = Some(builder.build().unwrap());
unsafe {
set_sdl_window(ui.window.as_mut().unwrap().raw() as usize);
vk_init(rdram_ptr as usize, rdram_size as u32)
vk_init(rdram_ptr as usize, rdram_size as u32, fullscreen as u8)
}
}