mirror of
https://github.com/gopher64/gopher64.git
synced 2026-11-03 13:00:44 +01:00
40 lines
1.2 KiB
Rust
40 lines
1.2 KiB
Rust
pub mod audio;
|
|
pub mod input;
|
|
pub mod storage;
|
|
pub mod video;
|
|
|
|
pub struct Ui {
|
|
pub paths: storage::Paths,
|
|
pub saves: storage::Saves,
|
|
pub sdl_context: Option<sdl2::Sdl>,
|
|
pub video_subsystem: Option<sdl2::VideoSubsystem>,
|
|
pub audio_subsystem: Option<sdl2::AudioSubsystem>,
|
|
pub window: Option<sdl2::video::Window>,
|
|
pub audio_device: Option<sdl2::audio::AudioQueue<i16>>,
|
|
}
|
|
|
|
impl Ui {
|
|
pub fn new() -> Ui {
|
|
let sdl_context = sdl2::init().unwrap();
|
|
let video_subsystem = sdl_context.video().unwrap();
|
|
let audio_subsystem = sdl_context.audio().unwrap();
|
|
let window = video_subsystem
|
|
.window("gopher64", 640, 480)
|
|
.position_centered()
|
|
.vulkan()
|
|
.build()
|
|
.unwrap();
|
|
Ui {
|
|
paths: storage::Paths {
|
|
eep_file_path: std::path::PathBuf::new(),
|
|
},
|
|
saves: storage::Saves { eeprom: Vec::new() },
|
|
sdl_context: Some(sdl_context),
|
|
video_subsystem: Some(video_subsystem),
|
|
audio_subsystem: Some(audio_subsystem),
|
|
window: Some(window),
|
|
audio_device: None,
|
|
}
|
|
}
|
|
}
|