dsfb_computer_graphics/
config.rs1use serde::{Deserialize, Serialize};
2
3use crate::parameters::{
4 baseline_parameters, host_realistic_parameters, AlphaRange, BaselineParameters,
5};
6
7#[derive(Clone, Debug, Serialize, Deserialize)]
8pub struct SceneConfig {
9 pub width: usize,
10 pub height: usize,
11 pub frame_count: usize,
12 pub object_width: usize,
13 pub object_height: usize,
14 pub object_start_x: i32,
15 pub object_stop_x: i32,
16 pub object_top_y: i32,
17 pub move_frames: usize,
18 pub thin_vertical_x: i32,
19}
20
21impl Default for SceneConfig {
22 fn default() -> Self {
23 Self {
24 width: 160,
25 height: 96,
26 frame_count: 18,
27 object_width: 38,
28 object_height: 44,
29 object_start_x: 24,
30 object_stop_x: 58,
31 object_top_y: 26,
32 move_frames: 6,
33 thin_vertical_x: 54,
34 }
35 }
36}
37
38#[derive(Clone, Debug, Serialize, Deserialize)]
39pub struct DemoConfig {
40 pub scene: SceneConfig,
41 pub baseline: BaselineParameters,
42 pub dsfb_alpha_range: AlphaRange,
43 pub trust_map_frame_offset: usize,
44 pub comparison_frame_offset: usize,
45 pub demo_b_reference_spp: usize,
46 pub demo_b_uniform_spp: usize,
47 pub demo_b_min_spp: usize,
48 pub demo_b_max_spp: usize,
49}
50
51impl Default for DemoConfig {
52 fn default() -> Self {
53 let host = host_realistic_parameters();
54 Self {
55 scene: SceneConfig::default(),
56 baseline: baseline_parameters(),
57 dsfb_alpha_range: host.alpha_range,
58 trust_map_frame_offset: 0,
59 comparison_frame_offset: 2,
60 demo_b_reference_spp: 64,
61 demo_b_uniform_spp: 2,
62 demo_b_min_spp: 1,
63 demo_b_max_spp: 12,
64 }
65 }
66}