diff options
Diffstat (limited to 'tiny_skia/src')
| -rw-r--r-- | tiny_skia/src/text.rs | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/tiny_skia/src/text.rs b/tiny_skia/src/text.rs index d1b33293..70e95d01 100644 --- a/tiny_skia/src/text.rs +++ b/tiny_skia/src/text.rs @@ -1,6 +1,7 @@  use crate::core::alignment;  use crate::core::text::{LineHeight, Shaping};  use crate::core::{Color, Font, Pixels, Point, Rectangle}; +use crate::graphics::color;  use crate::graphics::text::cache::{self, Cache};  use crate::graphics::text::editor;  use crate::graphics::text::font_system; @@ -216,7 +217,18 @@ fn draw(  fn from_color(color: cosmic_text::Color) -> Color {      let [r, g, b, a] = color.as_rgba(); -    Color::from_rgba8(r, g, b, a as f32 / 255.0) +    if color::GAMMA_CORRECTION { +        // `cosmic_text::Color` is linear RGB in this case, so we +        // need to convert back to sRGB +        Color::from_linear_rgba( +            r as f32 / 255.0, +            g as f32 / 255.0, +            b as f32 / 255.0, +            a as f32 / 255.0, +        ) +    } else { +        Color::from_rgba8(r, g, b, a as f32 / 255.0) +    }  }  #[derive(Debug, Clone, Default)] | 
