aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/opts/Sk4px_none.h
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2015-06-22 10:39:38 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-06-22 10:39:38 -0700
commit059ac00446404506a46cd303db15239c7aae49d5 (patch)
tree9b1795f68435d43647d8e039fa786854696d886c /src/opts/Sk4px_none.h
parent9a53fd7c41554630124522f4b6eedc16912abbb7 (diff)
Update some Sk4px APIs.
Mostly this is about ergonomics, making it easier to do good operations and hard / impossible to do bad ones. - SkAlpha / SkPMColor constructors become static factories. - Remove div255TruncNarrow(), rename div255RoundNarrow() to div255(). In practice we always want to round, and the narrowing to 8-bit is contextually obvious. - Rename fastMulDiv255Round() approxMulDiv255() to stress it's approximate-ness over its speed. Drop Round for the same reason as above... we should always round. - Add operator overloads so we don't have to keep throwing in seemingly-random Sk4px() or Sk4px::Wide() casts. - use operator*() for 8-bit x 8-bit -> 16-bit math. It's always what we want, and there's generally no 8x8->8 alternative. - MapFoo can take a const Func&. Don't think it makes a big difference, but nice to do. BUG=skia: Review URL: https://codereview.chromium.org/1202013002
Diffstat (limited to 'src/opts/Sk4px_none.h')
-rw-r--r--src/opts/Sk4px_none.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/opts/Sk4px_none.h b/src/opts/Sk4px_none.h
index d3ead31491..ce2f8452e5 100644
--- a/src/opts/Sk4px_none.h
+++ b/src/opts/Sk4px_none.h
@@ -11,8 +11,10 @@ namespace { // See Sk4px.h
static_assert(sizeof(Sk4px) == 16, "This file uses memcpy / sk_memset32, so exact size matters.");
-inline Sk4px::Sk4px(SkPMColor px) {
- sk_memset32((uint32_t*)this, px, 4);
+inline Sk4px Sk4px::DupPMColor(SkPMColor px) {
+ Sk4px px4 = Sk16b();
+ sk_memset32((uint32_t*)&px4, px, 4);
+ return px4;
}
inline Sk4px Sk4px::Load4(const SkPMColor px[4]) {