From 597cadd9f2e7e2c5a4c032764fc3edcc1c0309c0 Mon Sep 17 00:00:00 2001 From: Nova Date: Mon, 28 Nov 2022 00:32:41 -0500 Subject: [PATCH] fix(lines): use sRGB colors --- src/nodes/drawable/lines.rs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/nodes/drawable/lines.rs b/src/nodes/drawable/lines.rs index 919a439..5583fcb 100644 --- a/src/nodes/drawable/lines.rs +++ b/src/nodes/drawable/lines.rs @@ -83,7 +83,12 @@ impl Lines { } pub fn set_points_flex(node: &Node, _calling_client: Arc, data: &[u8]) -> Result<()> { - let points: Vec = deserialize(data)?; + let mut points: Vec = deserialize(data)?; + for p in &mut points { + p.color[0] = p.color[0].powf(2.2); + p.color[1] = p.color[1].powf(2.2); + p.color[2] = p.color[2].powf(2.2); + } node.lines.get().unwrap().data.lock().points = points; Ok(()) } @@ -113,11 +118,17 @@ pub fn create_flex(_node: &Node, calling_client: Arc, data: &[u8]) -> Re points: Vec, cyclic: bool, } - let info: CreateTextInfo = deserialize(data)?; + let mut info: CreateTextInfo = deserialize(data)?; let node = Node::create(&calling_client, "/drawable/lines", info.name, true); let parent = find_spatial_parent(&calling_client, info.parent_path)?; let transform = parse_transform(info.transform, true, true, true)?; + for p in &mut info.points { + p.color[0] = p.color[0].powf(2.2); + p.color[1] = p.color[1].powf(2.2); + p.color[2] = p.color[2].powf(2.2); + } + let node = node.add_to_scenegraph(); Spatial::add_to(&node, Some(parent), transform, false)?; Lines::add_to(&node, info.points, info.cyclic)?;