From f3d2b0643e505d66870f564644de52c61b45b845 Mon Sep 17 00:00:00 2001 From: Jay Oster Date: Sat, 8 May 2021 23:14:26 -0700 Subject: [PATCH] Fix UI colors in `imgui-winit` example (#166) - Removes the sRGB workaround that was needed before `imgui-winit` 0.12 --- examples/imgui-winit/src/gui.rs | 17 ----------------- img/imgui-winit.png | Bin 14367 -> 13965 bytes 2 files changed, 17 deletions(-) diff --git a/examples/imgui-winit/src/gui.rs b/examples/imgui-winit/src/gui.rs index e57dc60..1616bee 100644 --- a/examples/imgui-winit/src/gui.rs +++ b/examples/imgui-winit/src/gui.rs @@ -41,12 +41,6 @@ impl Gui { }), }]); - // Fix incorrect colors with sRGB framebuffer - let style = imgui.style_mut(); - for color in 0..style.colors.len() { - style.colors[color] = gamma_to_linear(style.colors[color]); - } - // Create Dear ImGui WGPU renderer let device = pixels.device(); let queue = pixels.queue(); @@ -140,14 +134,3 @@ impl Gui { .handle_event(self.imgui.io_mut(), window, event); } } - -fn gamma_to_linear(color: [f32; 4]) -> [f32; 4] { - const GAMMA: f32 = 2.2; - - let x = color[0].powf(GAMMA); - let y = color[1].powf(GAMMA); - let z = color[2].powf(GAMMA); - let w = 1.0 - (1.0 - color[3]).powf(GAMMA); - - [x, y, z, w] -} diff --git a/img/imgui-winit.png b/img/imgui-winit.png index 52d2ab525f503e8bc7228a80790650d40502f2e0..da95c6871f3b47659704902d944f4b7cada43eb4 100644 GIT binary patch literal 13965 zcmb8W2|Sd2_dkAFijt)bC0mL+*(zK1B_yGe-B@l7#xBM(43Z@Ym9iVMO&Ano-$JE~ zr7@Yo*kv6|VJu_&UGDq;e4pihp6B)aUtXWr%yrFmeXh@S&gY!-KJRnH-Z9c+KYI2k z008XzH*een0LBP#0IY|>Gu%(uKLY?m6ii$Dj=r|GkoQ9`Czv}F0DgOce4%=?UE|y* zyOy`NKDBb3=QvX=#eGBPqkgdkGh0FFx8lcN3+%q-3+wy%oU&o#2$eA7x5D?3x+x#(uqiGZlEpk3X4BEzJ1H_mPlM_&F$BvFldu?GPiCLc*a~ z!8)nyJD=-ZDpQ=JX}4Wbink?BDO)VqoAsTZyfpa)^Y#_BTS>xqbP{vl6$3ZkYrA6$ z(f7@o;hMD2V$^4SenC`8E#V>ys(%HVkv!AnM{LUMUy$p2!!2aCfm#75hOcw^Z-5T5xz&X3Sgz{aciglOGqJn!?GiNh{d&5wxE6>c# z%sUu>@VZLnNUps_lkC0|0O0!o3YS~#17B%XpNkpbVrKZK!TWq9Xmo9Xgo$nn7_|(X zFb-R#wmYk@!b*<;-$+86)UYM>$do0!qrw+dgAu26^D_473o|Cd&%BzcX zL~S%Hgv`Cr`yIXCW<7dhbSohslGMBmuX>$EIonG1k8ewnRzD-K*VNJGwVR@Tgt}Fp z%}U+BXy!NR)y0m1BV{DV|wE3B&&>m10s;si2zONE8m$;|mSQOKqHx>W$ zo7E^OX*6ke*Jm}cJ#g09b+0O>O?P7YbW!l&v=J%bocx0HgJO(c`$R=$x#}tTLQ4Iw zI~F)O#n)C24-ubM(mkC|-t|_ivzcUcH$Ufm1FhQ8l$0HoN^>n|%uV@*%5( zUeTpLmwqmhZGvSvu&^-X3bOc0$0gjCqOX%#PDz9Yw~06L zMJDfJ1d)5No-V{lrh0?G!MPLY-%0A{)ck*q{`}lNPrJS|_Z>Erb!*tBLr-wziwj|P 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