From 62465842099908f9e50b8edabfec709b37b1ade3 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 3 Nov 2022 04:37:23 +0100 Subject: Convert colors to linear RGB before uploading in `solid` pipelines --- glow/src/triangle/solid.rs | 10 ++++++---- wgpu/src/triangle/solid.rs | 4 +++- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/glow/src/triangle/solid.rs b/glow/src/triangle/solid.rs index 311e3704..fb3d40c3 100644 --- a/glow/src/triangle/solid.rs +++ b/glow/src/triangle/solid.rs @@ -63,13 +63,15 @@ impl Program { } if color != &self.uniform_data.color { + let [r, g, b, a] = color.into_linear(); + unsafe { gl.uniform_4_f32( Some(&self.uniform_data.color_location), - color.r, - color.g, - color.b, - color.a, + r, + g, + b, + a, ); } diff --git a/wgpu/src/triangle/solid.rs b/wgpu/src/triangle/solid.rs index 0373ebee..75455310 100644 --- a/wgpu/src/triangle/solid.rs +++ b/wgpu/src/triangle/solid.rs @@ -20,9 +20,11 @@ pub(super) struct Uniforms { impl Uniforms { pub fn new(transform: Transformation, color: Color) -> Self { + let [r, g, b, a] = color.into_linear(); + Self { transform: transform.into(), - color: Vec4::new(color.r, color.g, color.b, color.a), + color: Vec4::new(r, g, b, a), } } } -- cgit