diff options
author | Matt Sarett <msarett@google.com> | 2017-02-14 11:21:02 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-02-14 17:50:52 +0000 |
commit | 8572d853514e3c73077540341edbf62a3f486605 (patch) | |
tree | 66341d4ede6a9532d30142a68301e6c04c92cdab /src/opts | |
parent | 4bf560a056d7ba5b3051ebc87e687d4997928ff6 (diff) |
Make raster pipeline support all pixel conversions
BUG=skia:
CQ_INCLUDE_TRYBOTS=skia.primary:Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-SKNX_NO_SIMD
Change-Id: Idc76999d0f5591a567b3976cb9db829c350e4be2
Reviewed-on: https://skia-review.googlesource.com/8304
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Matt Sarett <msarett@google.com>
Diffstat (limited to 'src/opts')
-rw-r--r-- | src/opts/SkRasterPipeline_opts.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/opts/SkRasterPipeline_opts.h b/src/opts/SkRasterPipeline_opts.h index 4f01fd5b70..a81516877a 100644 --- a/src/opts/SkRasterPipeline_opts.h +++ b/src/opts/SkRasterPipeline_opts.h @@ -538,6 +538,17 @@ STAGE_CTX(store_565, uint16_t**) { | SkNf_round(b, SK_B16_MASK) << SK_B16_SHIFT), ptr); } +STAGE_CTX(load_4444, const uint16_t**) { + auto ptr = *ctx + x; + from_4444(load(tail, ptr), &r,&g,&b,&a); +} +STAGE_CTX(store_4444, uint16_t**) { + auto ptr = *ctx + x; + store(tail, SkNx_cast<uint16_t>( SkNf_round(r, 0xF) << SK_R4444_SHIFT + | SkNf_round(g, 0xF) << SK_G4444_SHIFT + | SkNf_round(b, 0xF) << SK_B4444_SHIFT + | SkNf_round(a, 0xF) << SK_A4444_SHIFT), ptr); +} STAGE_CTX(load_f16, const uint64_t**) { auto ptr = *ctx + x; |