skia2/include
Mike Klein cb92744d3d SkColorFilters::WithWorkingFormat
https://docs.google.com/document/d/1z9ZODlZX4XXbfOjh2t1-1Z7FJcCCcOfbrEjiFzPE4vg/edit?usp=sharing&resourcekey=0-Io-07D1zm1yKMQN2UAiYBw

This approach lets us write color filters that want to work in
particular color spaces and alpha formats and adapt them to our normal
pipeline.  It should work with pre-canned and runtime effects, and we
can do the same sort of thing for shaders too.

Some features are designed for using this with the high-contrast filter:

   - ability to change working tf and gamut separately: as written the
     HC effect only wants to work in linear space without changing
     gamut, which is I bet will be a common desired mode.  But other
     effects may want to fully change the working color space, e.g. to
     sRGB or XYZ.

   - adapting the alpha type to unpremul is mostly a flourish: you could
     do it yourself in sksl, but we might as well do it if doing other
     transforms anyway (it's cheaper this way than doing it yourself),
     and this may make it easier to adapt non-runtime effects.
     (I bet most color filters actually want to be unpremul.)

I briefly also included a knob to control how this effect treats a
nullptr dst color space, but I've come back around to that not being a
parameter.  I think this is a situation where we know best.

New GM to demo.

Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
Change-Id: I420e3a2aa648f314c019a98bfdcd44e810a3dac6
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/368336
Commit-Queue: Mike Klein <mtklein@google.com>
Reviewed-by: Mike Reed <reed@google.com>
2021-02-11 19:44:33 +00:00
..
android Reland "SkAnimatedImage: Use fSampleSize" 2020-11-17 14:07:03 +00:00
c Hide legacy drawImage methods 2021-01-20 00:59:26 +00:00
codec get image from skcodec 2021-01-25 21:50:16 +00:00
config Track vulkan memory allocations in UMA. 2020-10-29 15:24:23 +00:00
core SkColorFilters::WithWorkingFormat 2021-02-11 19:44:33 +00:00
docs Add appendNodeIdArray to avoid code duplication. 2020-06-23 14:25:33 +00:00
effects GOLD: workaround static constexpr linking problem with SkImageFilters::CropRect::kNoCropRect 2021-02-11 14:27:26 +00:00
encode Replace 'typedef xxxxx INHERITED' with 'using INHERITED = xxxx;'. 2020-09-03 03:41:26 +00:00
gpu rm pow2 arg to GrDirectContext::ComputeImagesize 2021-02-11 13:44:52 +00:00
pathops rm SkPreConfig.h and SkPostConfig.h 2020-02-06 19:16:43 +00:00
ports Switch to using GrMtlBackendContext for GrDirectContext creation. 2020-11-12 21:03:51 +00:00
private Add a writer class for indirect draw commands 2021-02-08 19:13:42 +00:00
svg [svgcanvas] Add flag to suppress newlines and tabs in XML 2019-08-21 20:17:37 +00:00
third_party Roll skcms from 069b8f699b59 to 8247d3c2481b (1 revision) 2021-01-06 18:13:10 +00:00
utils remove dead code from old drawimage virtuals 2021-01-21 01:26:15 +00:00