1. 24 Jan, 2022 1 commit
  2. 10 Feb, 2021 1 commit
    • Amy spark's avatar
      Feature: HDR gradients · 4cfda40a
      Amy spark authored
      This commit adds suport in Krita for rendering of HDR, high-bit-depth
      gradients, and dithering for all output bit depths.
      
      Firstly, all gradient operations are now upgraded; this includes color
      mixing ops (step values, upgraded to 16-bit signed integer), and
      gradients' default bit depth, which was upgraded to 16-bit integer
      or the image's bit depth, whichever is higher.
      
      Secondly, this commit implements a fully SSE+ vectorizable dithering
      operator, based on the Pixman low-level graphics library's
      implementation (MIT-licensed) available at the following commits:
      
      https://gitlab.freedesktop.org/pixman/pixman/-/commit/ddcc41b999562efdd9f88daa51ffbf39782748b5
      https://gitlab.freedesktop.org/pixman/pixman/-/commit/98b5ec74ca14448349ef6a33a663ad19d446ed6b
      https://gitlab.freedesktop.org/pixman/pixman/-/commit/cb2ec4268fbde0df3b588ce5cbe2e43e0465452
      
      This version follows closely the original paper of Ulichney's:
      
      Robert A. Ulichney. "Void-and-cluster method for dither array
      generation", Proc. SPIE 1913, Human Vision, Visual Processing, and
      Digital Display IV, (8 September 1993); doi:10.1117/12.152707
      
      Based on Pixman's work, there are two available options
      (but three in code, see below):
      
      - a no-op downsampler
      
      - blue-noise Ulichney's dithering, 64x64, which is the default when
      enabled
      
      - Bayer's ordered dithering, 8x8, which has been left as a backup.
      
      The dither operator works by upcasting the pixel to normalized,
      floating point color space; applying modulated noise with scale
      1 / 2^bit_depth, and then downcasting the pixel to the destination
      depth. For obvious reasons, the first step is skipped if the source
      is already floating point, and the two latter are no-ops if the
      destination's floating point.
      
      The implementation in this commit is structured in a two-level
      abstract pattern:
      
      - KisDitherOp is the interface that all operators
      expose to dither a single pixel. They are implemented as instances of
      KisDitherOpImpl<srcCSTraits, dstCSTraits, DitherType>.
      
      - KisDitherOpImpl is the template class that does the hard work
      described above.
      
      Instances of the dither operator are inserted on each colorspace
      through a templated, inlined factory function,
      addStandardDitherOps<srcCSTraits>(KoColorSpace *). Given the
      source bit depth and all known possible destination depths,
      this template calls another templated function, addDitherOpsByDepth<
      srcCSTraits, dstCSTraits, DitherType>(KoColorSpace *). Each call
      to this function creates a KisDitherOpImpl instance corresponding
      to each triplet of bit depths and dither implementation, and inserts it
      in the given colorspace.
      
      Since this operator needs both source and destination
      colorspaces' traits, I check at compilation time that all known traits
      have been considered at op creation.
      
      The vectorization properties have been tested with Xcode 11 on macOS,
      dumping kritalcmsengine.so with objdump, and checking disassembly
      manually.
      
      There are two ways to use this dither operator, once a copy has been
      obtained:
      
      - Use dither(const quint8* src, quint8* dst, int x, int y) to dither
      a single pixel.
      
      - Use dither(const quint8* src, int srcRowStride, quint8* dst,
      int dstRowStride, int x, int y, int columns, int rows) to dither a
      whole tile at once. This is the pattern that's used in
      KisGradientPainter.
      
      Additionally to Pixman's implementation, and the optimizations already
      provided by KoColorSpaceTraits, an optimized version has been
      made for the case of pass-through dither and no downcasting, where a
      memcpy call suffices.
      
      Finally, this implementation has been made available as a checkbox in:
      
      - the Gradient tool
      
      - Layer / Layer Styles / Gradient overlay
      
      - Fill Layers / Gradient generator
      
      Support has also been included for Photoshop's dithered gradients,
      when importing and exporting PSDs. As with the rest of Krita,
      they map to blue-noise dithering.
      
      Thanks to Wolthera van Hövell, Dmitry Kazakov, and Mathias Wein for
      their review.
      
      BUG: 343864
      CCMAIL: kimageshop@kde.org
      4cfda40a
  3. 15 Dec, 2020 1 commit
  4. 27 Nov, 2020 1 commit
  5. 30 May, 2016 1 commit
  6. 25 May, 2016 1 commit
  7. 31 Jan, 2016 1 commit
    • Wolthera van Hövell's avatar
      Merge in Krita-testing-wolthera · 290c81bf
      Wolthera van Hövell authored
      Make a clean build for best results!
      
      Squashed commit of the following:
      
      commit fdc03dbfd47d8071303bd4c58394d70b58ab1f4e
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Jan 31 15:16:37 2016 +0100
      
          Cleanup
      
          This introduces a little bug in the trc again, but I suposse this works for now.
      
      commit c42e5c93cd9f33dc92927100c5aa47c5d8814b8b
      Merge: 4b5806d c2706b36
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Jan 31 12:45:40 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 4b5806d06ce7c7ad06245489355f4e0f5573f0b7
      Merge: 5f4ae5e 97a2851e
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Jan 30 17:25:57 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 5f4ae5e01ec4596172908502fff048ff10ff41a2
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Jan 30 16:04:59 2016 +0100
      
          Make the trc curve widget work for cmyk
      
      commit 95ba47ebe0b1a5394621ef82c7e280746b9c42d4
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Jan 30 16:04:16 2016 +0100
      
          Fix build
      
      commit a814301c23ff75b88808038729455805ce1d7005
      Merge: 2089d33 1a0554c9
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Jan 29 08:41:00 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 2089d335a7f5b928edf5d3245268bf2e49d2ac46
      Merge: 597780c 96d2211
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Jan 29 08:37:28 2016 +0100
      
          Merge branch 'krita-testing-wolthera' of git://anongit.kde.org/krita into krita-testing-wolthera
      
      commit 96d22115b4006cf0be51d9525c9c4bd43c879bcd
      Merge: 952bbc6 7d1d542f
      Author: Wolthera van Hovell tot Westerflier <griffinvalley@gmail.com>
      Date:   Sat Jan 23 12:05:09 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 597780c56793abb5d7e140aae1708bb37226b9f3
      Merge: 952bbc6 7167c6be
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Jan 14 20:08:23 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 952bbc6e41eff0cb726ac92d2c9ac22b3e632487
      Merge: 35fe231 d592d520
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Jan 14 16:49:15 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 35fe23104a7f41c823eb22bcdd43791ad9f12001
      Merge: 36b940c 30c07ba8
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Jan 14 14:30:57 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 36b940ca0dc4c334ecf8ed65422e0e6f9c48622a
      Merge: 028a00f 8089c94e
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Jan 12 18:55:54 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 028a00f84c7431f9a31c08e3f1545d3d47d155b8
      Merge: c31a412 fe9c554a
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Jan 12 14:21:42 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit c31a412d2baf4dba97760e44c03895f89fe0cedb
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Jan 10 19:16:37 2016 +0100
      
          Make some small changes to get cmyk/lab f32 to show up somewhat sensibly.
      
          ref T210
      
      commit 9a466509d349a7077468bc6b30a899bb3df66bde
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Jan 10 16:40:32 2016 +0100
      
          Draw semi-transparent triangle for the matrix-shapers.
      
          Still not sure if we should keep the gamut dots on there or not...
      
      commit d1614f470e094b278d2c34eca66d448523b81e38
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Jan 10 15:04:42 2016 +0100
      
          Display embedded copyright string.
      
          This is not translator friendly, but I think copyright is important enough for that.
      
          Ref T210
      
      commit 1739e7d010089e8c61489d586a5ecfb122c88787
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Jan 10 12:14:09 2016 +0100
      
          Change method to use normalised channels. Also fixes crash in XYZA 32bit/float
      
          Not sure what to do for 32bitfloat in case of LAB and CMYK.
      
          Ref T429, T210
      
      commit f9cbaa135e449864ca4298a7f3c9f34187c68fcf
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Jan 9 21:56:33 2016 +0100
      
          Add gamut point calculation thingy.
      
          This allows us to investigate CMYK and other cLUT only colorspaces in the colorspace browser.
          Also good for future gamut checking.
      
          Things that don't work:
          * Anything but 8bit colorspace, proly due to architecture stuffs. Maybe use from normalised instead
          of quint8 data...
          * Matrix profiles still default to relative colorimetric, which is kinda annoying
          * Need to investigate how to get the correct conversion flags over.
          * XYZA32bit float doesnt work...?
      
          Other:
          * Need to clean up
          * Need to check if I can get whitepoint/colorants simplified into the cs.
          * Need to see if this is also possible for the trc.
          * Maybe investigate boundary-checking-thingy for CMYK.
      
          Ref T429
      
      commit 8680486f3c64b9d6ebf4f175b8ca776120d64c1e
      Merge: 613e10c 31aebe61
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Wed Jan 6 14:11:35 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 613e10c8888abd11467d9176a7b00109d5cfa981
      Merge: c8e2959 6131b4c5
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Jan 5 18:48:00 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit c8e29598d95f69d724727f9ad9dd07c2f98e0eba
      Merge: 49fa9f3 b378feaf
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Mon Jan 4 19:30:52 2016 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 49fa9f3ed2a31f4b1b8bfb7000aac0735e8cb503
      Merge: d79d158 68e74a59
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Dec 22 22:46:55 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit d79d158aa4960a849fcf235648b800c29fed78e3
      Merge: c060d02 c87f8eb0
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Dec 22 21:12:16 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit c060d0261ea6e8ed0ba85e88d080dc01ce12cf60
      Merge: 8cdac6d eb65d912
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Mon Dec 21 22:02:04 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 8cdac6d644237f1491623c9fb8520e55833980fa
      Merge: d94ac2a dd1c87ba
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Dec 20 16:21:00 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit d94ac2a0422d8c83e9fe2eb1eca73497f56c1717
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Dec 19 17:07:37 2015 +0100
      
          Add ICC version and rendering intent information to color space browser
      
          Matrix shaper profiles can't use anything but relative colorimetric, but an ICC profile can contain
          both Matrix and several cLUT profile data, which affects which intents are possible.
          For now the data is printed into the color space browser. We'll do proper disabling later.
      
          Still have an issue with lists in richtext...
      
          Ref T429
      
      commit b43600feac454b981b4d8dd88e5e2d8eee3a6647
      Merge: 2874c08 60d5223c
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Dec 18 14:58:40 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 2874c08e069b829ba792b950121ae6f07861bd09
      Merge: 430a544 e7c035c9
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Dec 17 19:55:44 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 430a544fd94b40d211859b4ba28b2cf6f14c2e37
      Merge: ce83961 2e4082ff
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Dec 17 15:25:26 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit ce839615e616c58f95eb913fcdcc7b28e5ef856b
      Merge: 28e9fc2 b19a225a
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Mon Dec 14 15:02:00 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 28e9fc21449177eb96d287cefd22eb7bd19f7318
      Merge: a20d5f4 56634cb
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Mon Dec 14 15:00:43 2015 +0100
      
          Merge branch 'krita-testing-wolthera' of git://anongit.kde.org/krita into krita-testing-wolthera
      
      commit 56634cb4fb8ab99902b2c6ec27205355560668d8
      Author: Boudewijn Rempt <boud@valdyas.org>
      Date:   Sat Dec 12 16:16:51 2015 +0100
      
          Cut down on the float/double/qreal confusion a bit
      
          And do a bit of coding style cleanup (function names start with
          a lower case letter).
      
          There are some more places where a similar change would be good,
          esp. in the normalise api (and normalise should be renamed to
          normalize).
      
      commit a20d5f4f47c5a82cd38cd2a8ba312729d23b961b
      Merge: 5e2a606 af869a54
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Dec 11 14:56:53 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 5e2a60659e343bd9358d10edf594c5da22bbf64a
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Dec 11 14:46:11 2015 +0100
      
          Disable subpixel precision in the color smudge brush only for smearing mode
      
          Auditors: rempt, dkazakov, timotheegiet
      
          Original bug that caused the initial method was 327235, and that was only for
          smearing mode. In dulling mode the lack of subpixel precision is very obvious,
          while in smearing mode it isn't.
      
          Therefore, I propose we only disable subpixel precision for smearing mode.
      
      commit 7c02c37f7af3635dfb4a1a4e6c619070061c0718
      Merge: d619f0b 46bd5924
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Dec 10 16:50:25 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit d619f0b23bec9fb56bfbe493feaed71f5b301e73
      Merge: 4ed97dd e1c06787
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Mon Dec 7 19:06:55 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 4ed97dd9f9baa1b284b3ea3652440fcdcb4ba938
      Merge: be202e5 031cfb1b
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Dec 3 19:40:05 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit be202e5bf4a63efee301c9e877b15394fe9bdeb7
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Dec 3 17:47:01 2015 +0100
      
          Alphabetize PNG importer
      
          Shouldn't this become a color browser?
      
      commit 5c9c14ef69f92e2c2927a4efc76aaf013b612f48
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Wed Dec 2 16:44:00 2015 +0100
      
          Tweak colorsmudge algortihms to work better with pure black.
      
      commit d911b722c1c5cd223daa7c013b780e0264aaa4c6
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Wed Dec 2 02:26:42 2015 +0100
      
          clean up color browser UI by moving things to the tooltips.
      
      commit c82c5b9369bbf725f70a6cfdfcd185e31cb139d1
      Merge: db339e7 c1c20d43
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Dec 1 17:08:11 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit db339e79a18fe836bef9e44c3235bc71c6ac83eb
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Dec 1 13:07:36 2015 +0100
      
          Fix sat maintaining and advanced dulling mode, support blending mode for both
      
          The mixing itself works now, blendingmodes sorta as well, though different from
          regular dulling. Strange results with orange+black.
      
          Ref T691
      
      commit c094e8181eac3c20e897f346ed4887c19ac8d9c3
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Nov 29 19:19:51 2015 +0100
      
          Make sure that CMYK/XYZ get mixed in LAB space
      
          This prevents crashes, but the results aren't really pretty.
      
          Ref T691
      
      commit ee6d609c9fb100b3df56b522bd2c8c0b6596c968
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Nov 29 18:35:51 2015 +0100
      
          Implement basis of advanced color mixing.
      
          Now we have linearised colormixing+gamma correction :D
          Though the alpha formula isn't quite right, and sat-maintaining
          blending could use work...
      
          Similarly, this hasn't been properlytested in the non-rgb spaces yet.
      
          Ref T210
          Ref T691
      
      commit 2ffcca78e26e5967eeb9a1cb62be699ff3ead2a8
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Nov 28 15:58:14 2015 +0100
      
          Partial fix mixing gradients in the colorspace of the image.
      
          The remaining problems of course are:
          * No higher than 1.0 floating point.
          * The colorspace of the gradients are STILL in sRGB, meaning colors outside that can't be picked.
      
          Ref T210
          Ref T121
      
      commit b148f84621d6944accbdc08ef35aa2ca4f962d75
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Nov 28 15:22:53 2015 +0100
      
          Modify and fix floating point for HSI/HSY/YUV adjustments
      
      commit e9a352a0e30c92e6a645e57729300ec184d4e23a
      Merge: 5bf45c1 8a971d77
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 27 13:41:06 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 5bf45c1e9b8f7c3988b22262cdad0341afe217f0
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Nov 21 21:57:20 2015 +0100
      
          Start with preciser color smudge by forcing a 16bit or higher colorspace
      
          This reduces errors in the mixing, though it's not as smooth as actual 16bit
          needs more investigation, and I also want to make this configurable.
      
      commit 027f33af95e6de05a0fefcbbc3823318dcff5879
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Nov 21 21:54:06 2015 +0100
      
          Add HSI/HSY/YUV to the hsv adjustment filter.
      
          Ideally we'd replace the small transform commands with this entirely, but
          I have no idea how to make this filter accept LAB space.
          It also doesn't linearize, something which I need help for.
      
          However, it does use the luma coefficients of the color profile.
      
          ref T210
      
      commit e8ae9e9e52c35c65edd5d3dacbd9e3c8d5dd6d41
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 20 22:43:50 2015 +0100
      
          Fix LCH and R/G/B/Y actions for LAB
      
          That leaves XYZ to be fixed.
      
          Ref T210
      
      commit a1d66bfe11bc0250f9a346a873afdaa97c8a0a1a
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 20 20:45:37 2015 +0100
      
          Fix Redder/Greener/Yellower/Bluer actions for CMYK
      
          I wanted to do the same thing for HSY, but it seems that
          CMYK has a huge issue with saturation.
          To wit, the convert-from-q-color method of getting saturation
          doesn't seem to work either, even though this should be pretty
          full-proof. Regardless, some hotkeys work, so...
      
          Ref T220
      
      commit e225166f12b736b57cd12b10d32e1ba8135d21b7
      Merge: d1b9f2e 747b18bd
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Thu Nov 19 22:40:59 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit d1b9f2e9880d92ec540127b78374aaa9553201a1
      Merge: a516116 3434ec61
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Nov 17 18:09:03 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit a516116b91a035db8c3ad5bf9410a993e5e3d93c
      Merge: 2b979ef a6277982
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sun Nov 15 19:56:27 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 2b979ef74dcf1065f3c6c63ed8989917f448db3a
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Sat Nov 14 17:26:34 2015 +0100
      
          Change YCbCr to YUV formula, this makes the hotkeys work proper.
      
          Todo:
          * Fix LAB(inverted) and XYZ(too agressive)
          * Find an alternative for CMYK
      
          Ref T210
      
      commit 3f42fac080e868009ed9a3cb453c4671cce67517
      Merge: 406405a 4c5de2cc
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 13 22:05:19 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 406405a4d25c9c765fd3ab7499db8228aec43930
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 13 21:44:41 2015 +0100
      
          First stages YCbCr formula. Not satisfied yet
      
          There's redder/greener/bluer/yellower actions now, but as long
          as I am not satisfied with the formula they can be considered broken
      
      commit b148b48bad374cdd5e3efb80b0ad3b522f1b9e93
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 13 15:07:56 2015 +0100
      
          Crunch the luma of HSY to 2.2 by default.
      
          This makes it easier to select darker colors while keeping the HSY correct.
          We might want to make this a config option in the future.
      
          Ref T210
      
      commit 11e791f3c99c222c53cbefa6be7ccf77be0ebae9
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 13 14:32:45 2015 +0100
      
          Make faster linearisation functions+linearisize advanced selector
      
      commit 82ee9cf059fc91582a6c7c2794007b10547fc9b6
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 13 13:04:05 2015 +0100
      
          Experiment with linearising color selector
      
          Also doesn't work because linearisation function is too slow
      
          Ref T210
      
      commit d102f1f168212d0a084306f927081ff76026b3d1
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Fri Nov 13 13:03:02 2015 +0100
      
          Experiment with HDR Values for the lighter/darker buttons
      
          This doesn't quite work yet, because HSY only really works in a 0-1.0 sceme
      
      commit cf4c780af6a28ad630ff3b21988d8379273b276b
      Merge: bef8552 1fc48d50
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Wed Nov 11 17:28:01 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit bef85521356bdb52e063d956c70d61ada9863a6b
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Wed Nov 11 17:21:35 2015 +0100
      
          Add basic Gamma crunching to lightness button
      
          Ref 210
      
      commit 55bffbc4566d0dbcc134f049f6b6a3db54d3b14a
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Wed Nov 11 15:48:19 2015 +0100
      
          Color manage darker/lighter, add actions for sat/desat/hue
      
          This still needs a lot of work.
      
          * It's all linear, we need to crunch the luma.
          * It's not working for XYZ/YCrCb/LAB properly yet. This'll require LCH/xyY
          * Hue-clockwise has issues.
          * QVector <double> needs to become QVector <float> for consistency.
      
          Ref T210
      
      commit 09404852c6489a38cd2e1fc47a76175cb8884ccd
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Nov 10 18:06:38 2015 +0100
      
          Some cleanup for the TRC widget and pigment
      
          Ref T210
      
      commit 5a6874d179032766ac1be8f78366e1277330bf0e
      Merge: 0cb7cce 1e70cdc6
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Nov 10 15:29:09 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit 0cb7cce7dd7b1a7d1258b20caf6cc98d07cc07c1
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Tue Nov 10 00:09:04 2015 +0100
      
          Add basic Tone Response Curve widget.
      
          It is based on receiving QPolygons filled with points, so it's cm agnostic.
      
          TODO:
          * Document
          * Cleanup
          * Move elements about(rgb to the tooltip of the tongue widget?)
          * Maybe render a grayscale in a given colorspace for the TRC widget?
      
      commit ff8b31a6f4cb34e5f7df30bdcbea10d71e3f7911
      Merge: ef0275d 74e7e5a6
      Author: Wolthera van Hövell <griffinvalley@gmail.com>
      Date:   Mon Nov 9 19:08:34 2015 +0100
      
          Merge branch 'master' into krita-testing-wolthera
      
      commit ef0275d7a082a1bc15cbd5bc0ead95e46543dc4d
      Author: Wolthera van Hovell tot Westerflier <griffinvalley@gmail.com>
      Date:   Sun Nov 8 17:50:34 2015 +0100
      
          Add basic TRC linearisation functions to the color profiles
      290c81bf
  8. 26 Jan, 2016 1 commit
    • Halla Rempt's avatar
      Consolidate all plugins together · 120aa2e3
      Halla Rempt authored
      Now we have only one plugin dir. The plugin dir now has the
      great big include_directories list, but that's for fixing
      later on.
      120aa2e3
  9. 26 Nov, 2015 1 commit
  10. 17 Sep, 2015 1 commit
  11. 10 Sep, 2015 1 commit
  12. 15 Jan, 2015 1 commit
  13. 03 Jun, 2012 1 commit
    • 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