feature: Implement display rotation

This commit is contained in:
Tera << 8 2025-06-27 22:08:51 -04:00
parent 6911afb6e0
commit 0efaf19b40
Signed by: imterah
GPG key ID: 8FA7DD57BA6CEA37
3 changed files with 75 additions and 17 deletions

View file

@ -6,10 +6,12 @@ import _ "embed"
var InitialConfig []byte
type DisplayConfig struct {
Angle *int `yaml:"angle"`
FOV *int `yaml:"fov"`
Spacing *float32 `yaml:"spacing"`
Count *int `yaml:"count"`
Angle *int `yaml:"angle"`
FOV *int `yaml:"fov"`
Spacing *float32 `yaml:"spacing"`
RadiusMultiplier *float32 `yaml:"circle_radius_multiplier"`
UseCircularSpacing *bool `yaml:"use_circular_spacing"`
Count *int `yaml:"count"`
}
type AppOverrides struct {
@ -38,10 +40,12 @@ func getPtrToBool(bool bool) *bool {
var DefaultConfig = &Config{
DisplayConfig: DisplayConfig{
Angle: getPtrToInt(45),
FOV: getPtrToInt(45),
Spacing: getPtrToFloat32(0.5),
Count: getPtrToInt(3),
Angle: getPtrToInt(45),
FOV: getPtrToInt(45),
Spacing: getPtrToFloat32(0.5),
RadiusMultiplier: getPtrToFloat32(2),
UseCircularSpacing: getPtrToBool(true),
Count: getPtrToInt(3),
},
Overrides: AppOverrides{
AllowUnsupportedDevices: getPtrToBool(false),

View file

@ -9,7 +9,9 @@
display:
angle: 45 # Angle of the virtual displays
fov: 45 # FOV of the 3D camera
spacing: 0.5 # Spacing between virtual displays
spacing: 0.5 # Raw spacing between virtual displays. Does not use circles in the layout. Purely flat plane.
circle_radius_multiplier: 2 # Multiplier for the radius of the circle used to calculate the spacing between virtual displays. "Rounded" plane of sorts.
use_circular_spacing: true # If true, uses a circular layout for the virtual displays.
count: 3 # Count of virtual displays
overrides:
allow_unsupported_devices: false # If true, allows unsupported devices to be used as long as they're a compatible vendor (Xreal)