Skip to content
  • Halla Rempt's avatar
    Use LCMS, not CTLCS for 32 bit float colorspaces · f51b30ac
    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 cea6e6ebee30c19c080dbb64c52c1a5ccc9a84fb
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:28:16 2012 +0200
    
        fix rgba 16 bits
    
    commit 4dfc3e7d8060cf98af6fbce1f523871ed88ca509
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:23:52 2012 +0200
    
        fix lab colorspace
    
    commit da9d6b652c2bf5a3883462285368c977f6e12389
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:13:16 2012 +0200
    
        fix colorspace id
    
    commit d4f26cc899122232f668398d50214de342ad7640
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:12:54 2012 +0200
    
        fix warning
    
    commit 41735f8e8392c7ead9661fdbecf0c07d41cbd17f
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sun Jun 3 11:12:40 2012 +0200
    
        remove KIS from headerguard
    
    commit 1342d497928f271d3214b73792b360c017f5b2e9
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Sat Jun 2 15:32:22 2012 +0200
    
        cleanups
    
    commit 33c423a9966529f199510777da2776b29cc8cfb1
    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 b7ddefafdd896243dde9d79c1f0bbd550326c07e
    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 c8240f83578193f0227c406660b3a2163714f936
    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 54c10a59d17cba5f7f420027535af549a828d83c
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 17:03:27 2012 +0200
    
        compile fixes
    
    commit 428291b9dbd0e58114486cbb3deaad2a763dd27e
    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 a08b07b383256aa7d17da132f28f209e63fc23e4
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 16:41:46 2012 +0200
    
        remove unused include
    
    commit 1059be2c19989b825715f1ac71a03a9509543cd4
    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 ec7a2770c885793a83abd5e83ee6679d18900a24
    Author: Boudewijn Rempt <boud@valdyas.org>
    Date:   Thu May 31 15:42:26 2012 +0200
    
        remove obsolete file
    
    commit 67e139504a19b88cc20d44e779ce6ef342d51240
    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 57f2b0224b1abf70b350b15a3d5da9e1fb7d6750
    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.
    f51b30ac