Skip to content
  • Halla Rempt's avatar
    Use LCMS, not CTLCS for 32 bit float colorspaces · 252723f2
    Halla Rempt authored
    This merges branch pigment-lcms2_rgbaf32-rempt. When lcms2 supports
    16 bit floating point numbers, the last two colorspaces will be
    moved from ctlcs to lcms, effectively retiring ctlcs. The technology
    was way cool, but it's easier to support all features in lcms.
    
    This also changes pigment:
    
    * if an icc-based colorspace factory is encountered for which there
    are no profiles, don't assert but warn and disregard the factory
    * previously, if the color conversion graph would encounter its
    base alpha 8 node, we would assert because there was no factory for
    alpha8.
    * the colorspace traits are now made complete and split out in
    separate files for easier editing.
    
    This also adds a bunch of more or less useful variations of colorspaces
    to the lcms2, as well as whole new YCbCr classes. For which there are
    no free profiles available, so users will have to provide those, for
    instance from the lcms2 website.
    
    Squashed commit of the following:
    
    commit cea6e6eb
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:28:16 2012 +0200
    
        fix rgba 16 bits
    
    commit 4dfc3e7d
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:23:52 2012 +0200
    
        fix lab colorspace
    
    commit da9d6b65
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:13:16 2012 +0200
    
        fix colorspace id
    
    commit d4f26cc8
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:12:54 2012 +0200
    
        fix warning
    
    commit 41735f8e
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:12:40 2012 +0200
    
        remove KIS from headerguard
    
    commit 1342d497
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat Jun 2 15:32:22 2012 +0200
    
        cleanups
    
    commit 33c423a9
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat Jun 2 11:45:15 2012 +0200
    
        Don't delete all the colorspace stuff on app exit
    
        It's faster and safer.
    
    commit b7ddefaf
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat Jun 2 11:44:19 2012 +0200
    
        Color Conversion System: don't assert if there is no profile
    
        For some colorspaces (ycbcr) there are no free profiles available. If
        the user wants, they can add a profile and the cs will work, but until
        that time, don't crash.
    
    commit c8240f83
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat Jun 2 11:31:42 2012 +0200
    
        Implement floating point versions of all supported color models
    
        This also adds ycbcr support using lcms2; however, users should bring
        their own profiles.
    
    commit 54c10a59
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 17:03:27 2012 +0200
    
        compile fixes
    
    commit 428291b9
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 16:44:16 2012 +0200
    
        pigment: rename the rgb traits to bgr traits
    
        The reason is that they actually describe a bgra pixel, not an rgba
        pixel and we need rgba traits for the floating point rgba color space.
    
    commit a08b07b3
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 16:41:46 2012 +0200
    
        remove unused include
    
    commit 1059be2c
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 16:41:00 2012 +0200
    
        pigment: split out the traits into separate files
    
        And add traits for all supported color models and typedefs for all
        (potentially) supported channel depths.
    
    commit ec7a2770
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 15:42:26 2012 +0200
    
        remove obsolete file
    
    commit 67e13950
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 12:57:53 2012 +0200
    
        ctlss: Remove profiles and colorspace definitions that are in lcms2
    
        gray32f, rgba32f, xyza32, ycbcr8, ycbcr16 can be done using lcms2.
    
        Also remove the unused lmsaf32 profile.
    
    commit 57f2b022
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 11:44:23 2012 +0200
    
        lcms color engine: add an experimental rgbaf32 colorspace
    
        This uses the new floating point capabilities of lcms2 to create a
        hdr rgba colorspace that automatically uses all the templated functions
        of pigment.
    252723f2