diff options
author | msarett <msarett@google.com> | 2016-09-16 11:01:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-09-16 11:01:27 -0700 |
commit | c71a9b7f53938b4f33f36f48e867b8b72cc1cc61 (patch) | |
tree | 8fbb6b55eb00f5fb5b55e89d97076f199cc0e205 /src/core/SkPM4fPriv.h | |
parent | 046cb56c6c1bb40779c81b115271ed0e8196b48b (diff) |
Revert of Support Float32 output from SkColorSpaceXform (patchset #7 id:140001 of https://codereview.chromium.org/2339233003/ )
Reason for revert:
Hitting an assert
Original issue's description:
> Support Float32 output from SkColorSpaceXform
>
> * Adds Float32 support to SkColorSpaceXform
> * Changes API to allows clients to ask for F32, updates clients to
> new API
> * Adds Sk4f_load4 and Sk4f_store4 to SkNx
> * Make use of new xform in SkGr.cpp
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2339233003
> CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD-Trybot
>
> Committed: https://skia.googlesource.com/skia/+/43d6651111374b5d1e4ddd9030dcf079b448ec47
TBR=brianosman@google.com,mtklein@google.com,scroggo@google.com,mtklein@chromium.org,bsalomon@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2347473007
Diffstat (limited to 'src/core/SkPM4fPriv.h')
-rw-r--r-- | src/core/SkPM4fPriv.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/SkPM4fPriv.h b/src/core/SkPM4fPriv.h index f2d2557d3a..89a0caeb70 100644 --- a/src/core/SkPM4fPriv.h +++ b/src/core/SkPM4fPriv.h @@ -55,4 +55,20 @@ static inline Sk4f Sk4f_from_SkColor(SkColor color) { return swizzle_rb(Sk4f_fromS32(color)); } +static inline void assert_unit(float x) { + SkASSERT(0 <= x && x <= 1); +} + +static inline float exact_srgb_to_linear(float srgb) { + assert_unit(srgb); + float linear; + if (srgb <= 0.04045) { + linear = srgb / 12.92f; + } else { + linear = powf((srgb + 0.055f) / 1.055f, 2.4f); + } + assert_unit(linear); + return linear; +} + #endif |