Skip to main content

repose_app/
app_config.rs

1use repose_core::present_mode::PresentModePref;
2
3/// Options common to all platforms.
4#[derive(Clone, Copy, Debug)]
5pub struct ReposeOptions {
6    pub msaa_samples: u32,
7    pub max_fps: Option<f32>,
8    pub present_mode: PresentModePref,
9}
10
11impl Default for ReposeOptions {
12    fn default() -> Self {
13        Self {
14            msaa_samples: 4,
15            max_fps: None,
16            present_mode: PresentModePref::Auto,
17        }
18    }
19}
20
21/// Configuration for desktop `run_desktop_app`.
22#[derive(Clone, Debug)]
23pub struct AppConfig {
24    pub common: ReposeOptions,
25    pub window_title: String,
26    pub window_size: (u32, u32),
27    /// Start borderless fullscreen on the window's monitor.
28    pub fullscreen: bool,
29    pub enable_inspector: bool,
30}
31
32impl Default for AppConfig {
33    fn default() -> Self {
34        Self {
35            common: ReposeOptions::default(),
36            window_title: "Repose".to_string(),
37            window_size: (1280, 800),
38            fullscreen: false,
39            enable_inspector: true,
40        }
41    }
42}
43
44/// Options for the Android runner.
45#[derive(Clone, Copy, Debug, Default)]
46pub struct AndroidOptions {
47    pub continuous_redraw: bool,
48    pub ime_height_px: Option<f32>,
49    pub common: ReposeOptions,
50}