Skip to content
  • Andrew Osmond's avatar
    Bug 1618345 - Enforce proper color management by splitting gfx::Color into... · 91b071ed
    Andrew Osmond authored
    Bug 1618345 - Enforce proper color management by splitting gfx::Color into sRGBColor and DeviceColor types. r=jrmuizel
    
    gfx::Color is currently misused in many places. The DrawTargets expect
    the color space to be in device space, e.g. what we are actually going
    to draw using. Everything sitting above generally deals with sRGB, as
    specified in CSS. Sometimes we missed the conversion from sRGB to device
    space when issuing draw calls, and similarly sometimes we converted the
    color to device space twice.
    
    This patch splits the type in two. sRGBColor and DeviceColor now
    represent sRGB and device color spaces respectively. DrawTarget only
    accepts DeviceColor, and one can get a DeviceColor from an sRGBColor via
    the ToDeviceColor helper API. The reftests now pass with color
    management enabled for everything (e.g. CSS) instead of just tagged
    raster images.
    
    There will be a follow up patch to enable color management everywhere by
    default on all supported platforms.
    
    Differential Revision: https://phabricator.services.mozilla.com/D64771
    
    --HG--
    extra : moz-landing-system : lando
    91b071ed