diff options
author | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-11-09 21:39:48 +0000 |
---|---|---|
committer | reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-11-09 21:39:48 +0000 |
commit | 1ea95be560b38a71e3f24749c4e5e3d3564e4c6c (patch) | |
tree | 48d6395bca4b68d4b471c6cd24d7037f4cf9d0b7 /src/utils | |
parent | 20d44677a1940c17ae9c64420b013d76bf895dd5 (diff) |
add explicit mapScalars and mapMScalars entry-points, instead of just map()
git-svn-id: http://skia.googlecode.com/svn/trunk@6373 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/SkMatrix44.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/utils/SkMatrix44.cpp b/src/utils/SkMatrix44.cpp index f00e399191..4fe82deaf6 100644 --- a/src/utils/SkMatrix44.cpp +++ b/src/utils/SkMatrix44.cpp @@ -323,7 +323,7 @@ bool SkMatrix44::invert(SkMatrix44* inverse) const { /////////////////////////////////////////////////////////////////////////////// -void SkMatrix44::map(const SkScalar src[4], SkScalar dst[4]) const { +void SkMatrix44::mapScalars(const SkScalar src[4], SkScalar dst[4]) const { SkScalar result[4]; for (int i = 0; i < 4; i++) { SkMScalar value = 0; @@ -335,6 +335,20 @@ void SkMatrix44::map(const SkScalar src[4], SkScalar dst[4]) const { memcpy(dst, result, sizeof(result)); } +#ifdef SK_MSCALAR_IS_DOUBLE +void SkMatrix44::mapMScalars(const SkMScalar src[4], SkMScalar dst[4]) const { + SkMScalar result[4]; + for (int i = 0; i < 4; i++) { + SkMScalar value = 0; + for (int j = 0; j < 4; j++) { + value += fMat[j][i] * src[j]; + } + result[i] = SkMScalarToScalar(value); + } + memcpy(dst, result, sizeof(result)); +} +#endif + /////////////////////////////////////////////////////////////////////////////// void SkMatrix44::dump() const { |