aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts
diff options
context:
space:
mode:
authorGravatar Matt Sarett <msarett@google.com>2017-02-14 11:21:02 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-14 17:50:52 +0000
commit8572d853514e3c73077540341edbf62a3f486605 (patch)
tree66341d4ede6a9532d30142a68301e6c04c92cdab /src/opts
parent4bf560a056d7ba5b3051ebc87e687d4997928ff6 (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.h11
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;