Skip to content

Commit

Permalink
Implement Timer Delta Background
Browse files Browse the repository at this point in the history
  • Loading branch information
CryZe committed Aug 5, 2022
1 parent a498186 commit becc951
Show file tree
Hide file tree
Showing 13 changed files with 190 additions and 35 deletions.
14 changes: 9 additions & 5 deletions src/component/detailed_timer/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ pub struct Component {
#[serde(default)]
pub struct Settings {
/// The background shown behind the component.
pub background: Gradient,
pub background: timer::DeltaGradient,
/// The first comparison to show the segment time of. If it's not specified,
/// the current comparison is used.
pub comparison1: Option<String>,
Expand Down Expand Up @@ -114,7 +114,7 @@ fn update_comparison(
impl Default for Settings {
fn default() -> Self {
Settings {
background: Gradient::Transparent,
background: timer::DeltaGradient::from(Gradient::Transparent),
comparison1: None,
comparison2: Some(String::from(best_segments::NAME)),
hide_second_comparison: false,
Expand Down Expand Up @@ -271,11 +271,11 @@ impl Component {
.update_with(current_split.filter(|_| display_icon).map(Segment::icon))
.map(Into::into);

state.background = self.settings.background;

self.timer
.update_state(&mut state.timer, timer, layout_settings);

state.background = state.timer.background;

self.segment_timer
.update_state(&mut state.segment_timer, timer, layout_settings);

Expand Down Expand Up @@ -374,7 +374,11 @@ impl Component {
/// the setting provided is out of bounds.
pub fn set_value(&mut self, index: usize, value: Value) {
match index {
0 => self.settings.background = value.into(),
0 => {
let value = value.into();
self.settings.background = value;
self.settings.timer.background = value;
}
1 => {
let value = value.into();
self.settings.timer.timing_method = value;
Expand Down
64 changes: 61 additions & 3 deletions src/component/timer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,67 @@ pub struct Component {
settings: Settings,
}

/// Represents the possible backgrounds for a timer.
/// Right now these are just gradients, and gradients with delta,
/// however in the future timers may support other types of backgrounds.]
#[derive(Copy, Clone, PartialEq, Serialize, Deserialize)]
pub enum DeltaGradient {
/// A normal gradient of some kind
Gradient(Gradient),
/// Delta based plain color
DeltaPlain,
/// Delta based gradient, Vertical
DeltaVertical,
/// Delta based gradient, horizontal
DeltaHorizontal,
}

impl From<Gradient> for DeltaGradient {
fn from(g: Gradient) -> Self {
Self::Gradient(g)
}
}

impl Default for DeltaGradient {
fn default() -> Self {
Self::Gradient(Gradient::default())
}
}

impl DeltaGradient {
/// Converts the DeltaGradient to a normal gradient for purposes of rendering
///
/// # Arguments
/// * `delta` - the color used to represent the timer's current state
pub fn gradient(&self, delta: Color) -> Gradient {
let [h, s, v, a] = delta.to_hsva();

match self {
DeltaGradient::Gradient(g) => *g,
DeltaGradient::DeltaVertical => {
let color_a = Color::hsva(h, s * 0.5, v * 0.25, a * (1.0 / 6.0));
let color_b = Color::hsva(h, s * 0.5, v * 0.25, a);

Gradient::Vertical(color_a, color_b)
}
DeltaGradient::DeltaPlain => {
Gradient::Plain(Color::hsva(h, s * 0.5, v * 0.25, a * (7.0 / 12.0)))
}
DeltaGradient::DeltaHorizontal => {
let color_a = Color::hsva(h, s * 0.5, v * 0.25, a * (1.0 / 6.0));
let color_b = Color::hsva(h, s * 0.5, v * 0.25, a);

Gradient::Horizontal(color_a, color_b)
}
}
}
}
/// The Settings for this component.
#[derive(Clone, Serialize, Deserialize)]
#[serde(default)]
pub struct Settings {
/// The background shown behind the component.
pub background: Gradient,
pub background: DeltaGradient,
/// Specifies the Timing Method to use. If set to `None` the Timing Method
/// of the Timer is used for showing the time. Otherwise the Timing Method
/// provided is used.
Expand Down Expand Up @@ -58,7 +113,7 @@ pub struct Settings {
impl Default for Settings {
fn default() -> Self {
Self {
background: Gradient::Transparent,
background: DeltaGradient::default(),
timing_method: None,
height: 60,
color_override: None,
Expand Down Expand Up @@ -222,7 +277,10 @@ impl Component {
(visual_color, visual_color)
};

state.background = self.settings.background;
state.background = self
.settings
.background
.gradient(semantic_color.visualize(layout_settings));

state.time.clear();
let _ = write!(
Expand Down
6 changes: 4 additions & 2 deletions src/layout/parser/detailed_timer.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
use super::{
accuracy, color, comparison_override, end_tag, parse_bool, parse_children, text_parsed,
timer_format, timing_method_override, translate_size, GradientBuilder, Result,
timer_format, timing_method_override, translate_size, DeltaGradientKind, GradientBuilder,
Result,
};
use crate::{timing::formatter::DigitsFormat, util::xml::Reader};

pub use crate::component::detailed_timer::Component;

pub fn settings(reader: &mut Reader<'_>, component: &mut Component) -> Result<()> {
let mut settings = component.settings().clone();
let mut background_builder = GradientBuilder::new();
let mut background_builder = GradientBuilder::<DeltaGradientKind>::new_gradient_type();
let mut timer_override_color = false;
let (mut total_height, mut segment_timer_ratio) = (65u32, 0.4);

Expand Down Expand Up @@ -91,6 +92,7 @@ pub fn settings(reader: &mut Reader<'_>, component: &mut Component) -> Result<()
settings.timer.color_override = None;
}
settings.background = background_builder.build();
settings.timer.background = settings.background;

settings.segment_timer.height = (total_height as f32 * segment_timer_ratio) as u32;
settings.timer.height = total_height - settings.segment_timer.height;
Expand Down
44 changes: 43 additions & 1 deletion src/layout/parser/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
use super::{Component, Layout, LayoutDirection};
use crate::{
component::separator,
component::{separator, timer::DeltaGradient},
platform::{math::f32::powf, prelude::*},
settings::{
Alignment, Color, Font, FontStretch, FontStyle, FontWeight, Gradient, ListGradient,
Expand Down Expand Up @@ -107,6 +107,16 @@ enum GradientKind {
Horizontal,
}

enum DeltaGradientKind {
Transparent,
Plain,
Vertical,
Horizontal,
PlainWithDeltaColor,
VerticalWithDeltaColor,
HorizontalWithDeltaColor,
}

enum ListGradientKind {
Same(GradientKind),
Alternating,
Expand All @@ -119,6 +129,38 @@ trait GradientType: Sized {
fn build(self, first: Color, second: Color) -> Self::Built;
}

impl GradientType for DeltaGradientKind {
type Built = DeltaGradient;

fn default() -> Self {
DeltaGradientKind::Transparent
}

fn parse(kind: &str) -> Result<Self> {
match kind {
"Plain" => Ok(DeltaGradientKind::Plain),
"PlainWithDeltaColor" => Ok(DeltaGradientKind::PlainWithDeltaColor),
"Vertical" => Ok(DeltaGradientKind::Vertical),
"VerticalWithDeltaColor" => Ok(DeltaGradientKind::VerticalWithDeltaColor),
"Horizontal" => Ok(DeltaGradientKind::Horizontal),
"HorizontalWithDeltaColor" => Ok(DeltaGradientKind::HorizontalWithDeltaColor),
_ => Err(Error::ParseGradientType),
}
}

fn build(self, first: Color, second: Color) -> Self::Built {
match self {
DeltaGradientKind::Transparent => Gradient::Transparent.into(),
DeltaGradientKind::Plain => Gradient::Plain(first).into(),
DeltaGradientKind::Vertical => Gradient::Vertical(first, second).into(),
DeltaGradientKind::Horizontal => Gradient::Horizontal(first, second).into(),
DeltaGradientKind::PlainWithDeltaColor => DeltaGradient::DeltaPlain,
DeltaGradientKind::VerticalWithDeltaColor => DeltaGradient::DeltaVertical,
DeltaGradientKind::HorizontalWithDeltaColor => DeltaGradient::DeltaHorizontal,
}
}
}

impl GradientType for GradientKind {
type Built = Gradient;
fn default() -> Self {
Expand Down
4 changes: 2 additions & 2 deletions src/layout/parser/timer.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
use super::{
accuracy, color, end_tag, parse_bool, parse_children, text_parsed, timer_format,
timing_method_override, translate_size, GradientBuilder, Result,
timing_method_override, translate_size, DeltaGradientKind, GradientBuilder, Result,
};
use crate::util::xml::Reader;

pub use crate::component::timer::Component;

pub fn settings(reader: &mut Reader<'_>, component: &mut Component) -> Result<()> {
let settings = component.settings_mut();
let mut background_builder = GradientBuilder::new();
let mut background_builder = GradientBuilder::<DeltaGradientKind>::new_gradient_type();
let mut override_color = false;

parse_children(reader, |reader, tag, _| {
Expand Down
28 changes: 27 additions & 1 deletion src/settings/value.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
use crate::{
component::splits::{ColumnStartWith, ColumnUpdateTrigger, ColumnUpdateWith},
component::{
splits::{ColumnStartWith, ColumnUpdateTrigger, ColumnUpdateWith},
timer::DeltaGradient,
},
hotkey::KeyCode,
layout::LayoutDirection,
platform::prelude::*,
Expand Down Expand Up @@ -57,6 +60,9 @@ pub enum Value {
/// A value describing a font to use. `None` if a default font should be
/// used.
Font(Option<Font>),
/// A gradient that may or may not take one of it's colors from the current
/// delta.
DeltaGradient(DeltaGradient),
}

impl From<bool> for Value {
Expand Down Expand Up @@ -173,6 +179,12 @@ impl From<Option<Font>> for Value {
}
}

impl From<DeltaGradient> for Value {
fn from(x: DeltaGradient) -> Self {
Value::DeltaGradient(x)
}
}

/// The Error type for values that couldn't be converted.
#[derive(Debug, snafu::Snafu)]
pub enum Error {
Expand Down Expand Up @@ -345,6 +357,14 @@ impl Value {
_ => Err(Error::WrongType),
}
}

/// Tries to convert the value into a delta gradient.
pub fn into_delta_gradient(self) -> Result<DeltaGradient> {
match self {
Value::DeltaGradient(v) => Ok(v),
_ => Err(Error::WrongType),
}
}
}

impl From<Value> for bool {
Expand Down Expand Up @@ -460,3 +480,9 @@ impl From<Value> for Option<Font> {
value.into_font().unwrap()
}
}

impl From<Value> for DeltaGradient {
fn from(value: Value) -> Self {
value.into_delta_gradient().unwrap()
}
}
4 changes: 2 additions & 2 deletions src/util/clear_vec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,14 @@ impl<T: Clear> FromIterator<T> for ClearVec<T> {
}
}

impl<'a, T: Clear> Index<usize> for ClearVec<T> {
impl<T: Clear> Index<usize> for ClearVec<T> {
type Output = T;
fn index(&self, index: usize) -> &Self::Output {
&self.vec[index]
}
}

impl<'a, T: Clear> IndexMut<usize> for ClearVec<T> {
impl<T: Clear> IndexMut<usize> for ClearVec<T> {
fn index_mut(&mut self, index: usize) -> &mut Self::Output {
&mut self.vec[index]
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
<PausedColor>FFFFFF00</PausedColor>
<TextOutlineColor>00000000</TextOutlineColor>
<ShadowsColor>80000000</ShadowsColor>
<TimesFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAdDYWxpYnJpAABAQQX8////GFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQEAAAAHdmFsdWVfXwAIAgAAAAEAAAAF+////xtTeXN0ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAIAAAADAAAACw==]]></TimesFont>
<TimerFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAA5EaWdpdGFsLTcgTW9ubwAAL0IF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAAAAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAgAAAAs=]]></TimerFont>
<TextFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAdDYWxpYnJpAABAQQX8////GFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQEAAAAHdmFsdWVfXwAIAgAAAAAAAAAF+////xtTeXN0ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAIAAAADAAAACw==]]></TextFont>
<TimesFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAhTZWdvZSBVSQAAQEEF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAABAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAwAAAAs=]]></TimesFont>
<TimerFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAdDYWxpYnJpAAAvQgX8////GFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQEAAAAHdmFsdWVfXwAIAgAAAAEAAAAF+////xtTeXN0ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAIAAAACAAAACw==]]></TimerFont>
<TextFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAhTZWdvZSBVSQAAQEEF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAAAAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAwAAAAs=]]></TextFont>
<AlwaysOnTop>False</AlwaysOnTop>
<ShowBestSegments>True</ShowBestSegments>
<AntiAliasing>True</AntiAliasing>
Expand Down Expand Up @@ -67,7 +67,7 @@
<Version>1.6</Version>
<CurrentSplitTopColor>FF0B365F</CurrentSplitTopColor>
<CurrentSplitBottomColor>FF153574</CurrentSplitBottomColor>
<VisualSplitCount>19</VisualSplitCount>
<VisualSplitCount>5</VisualSplitCount>
<SplitPreviewCount>1</SplitPreviewCount>
<DisplayIcons>False</DisplayIcons>
<ShowThinSeparators>False</ShowThinSeparators>
Expand Down Expand Up @@ -123,7 +123,7 @@
<TimerColor>FFAAAAAA</TimerColor>
<BackgroundColor>00000000</BackgroundColor>
<BackgroundColor2>FF222222</BackgroundColor2>
<BackgroundGradient>PlainWithDeltaColor</BackgroundGradient>
<BackgroundGradient>HorizontalWithDeltaColor</BackgroundGradient>
<CenterTimer>False</CenterTimer>
<TimingMethod>Current Timing Method</TimingMethod>
<DecimalsSize>35</DecimalsSize>
Expand All @@ -147,4 +147,4 @@
</Settings>
</Component>
</Components>
</Layout>
</Layout>
2 changes: 1 addition & 1 deletion tests/layout_files/dark.lsl
Original file line number Diff line number Diff line change
Expand Up @@ -236,4 +236,4 @@
</Settings>
</Component>
</Components>
</Layout>
</Layout>
2 changes: 1 addition & 1 deletion tests/layout_files/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ pub const ALL: &str = include_str!("All.lsl");
pub const DARK: &str = include_str!("dark.lsl");
pub const SUBSPLITS: &str = include_str!("subsplits.lsl");
pub const WSPLIT: &str = include_str!("WSplit.lsl");
pub const WITH_TIMER_GRADIENT_BACKGROUND: &str = include_str!("WithTimerGradientBackground.lsl");
pub const WITH_TIMER_DELTA_BACKGROUND: &str = include_str!("WithTimerDeltaBackground.lsl");
8 changes: 4 additions & 4 deletions tests/layout_files/subsplits.lsl
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@
<PausedColor>FF7A7A7A</PausedColor>
<TextOutlineColor>00000000</TextOutlineColor>
<ShadowsColor>80000000</ShadowsColor>
<TimesFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAhTZWdvZSBVSQAAMEEF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAABAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAwAAAAs=]]></TimesFont>
<TimerFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAABRNaWNyb3NvZnQgU2FucyBTZXJpZgAAL0IF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAABAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAgAAAAs=]]></TimerFont>
<TextFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAhTZWdvZSBVSQAAMEEF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAABAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAwAAAAs=]]></TextFont>
<TimesFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAhTZWdvZSBVSQAAQEEF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAABAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAwAAAAs=]]></TimesFont>
<TimerFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAdDYWxpYnJpAAAvQgX8////GFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQEAAAAHdmFsdWVfXwAIAgAAAAEAAAAF+////xtTeXN0ZW0uRHJhd2luZy5HcmFwaGljc1VuaXQBAAAAB3ZhbHVlX18ACAIAAAACAAAACw==]]></TimerFont>
<TextFont><![CDATA[AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0ZW0uRHJhd2luZy5Gb250BAAAAAROYW1lBFNpemUFU3R5bGUEVW5pdAEABAQLGFN5c3RlbS5EcmF3aW5nLkZvbnRTdHlsZQIAAAAbU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AgAAAAIAAAAGAwAAAAhTZWdvZSBVSQAAQEEF/P///xhTeXN0ZW0uRHJhd2luZy5Gb250U3R5bGUBAAAAB3ZhbHVlX18ACAIAAAAAAAAABfv///8bU3lzdGVtLkRyYXdpbmcuR3JhcGhpY3NVbml0AQAAAAd2YWx1ZV9fAAgCAAAAAwAAAAs=]]></TextFont>
<AlwaysOnTop>True</AlwaysOnTop>
<ShowBestSegments>True</ShowBestSegments>
<AntiAliasing>False</AntiAliasing>
Expand Down Expand Up @@ -297,4 +297,4 @@
</Settings>
</Component>
</Components>
</Layout>
</Layout>
4 changes: 1 addition & 3 deletions tests/layout_parsing.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ mod parse {

#[test]
fn with_timer_delta_background() {
livesplit(layout_files::WITH_TIMER_GRADIENT_BACKGROUND);
// FIXME: Add a rendering test to render out the gradient once we have
// support for this.
livesplit(layout_files::WITH_TIMER_DELTA_BACKGROUND);
}

#[test]
Expand Down
Loading

0 comments on commit becc951

Please sign in to comment.