diff options
author | Ben Wagner <benjaminwagner@google.com> | 2017-10-16 18:07:29 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-10-16 18:07:42 +0000 |
commit | 363dd988a55c2ed3fa92e2368c1c889101425734 (patch) | |
tree | 8d92c9dd309f43928e60b7b44144aa39e2f3e9ae /src/core/SkPixmap.cpp | |
parent | d49e946df0724060607a9844a754da5cf5494a1a (diff) |
Revert "apply codec origin in generator"
This reverts commit fa15877f487333bec876e7315cf584c0d598d098.
Reason for revert: Appears to break PDFium.
Original change's description:
> apply codec origin in generator
>
> Bug: skia:
> Change-Id: I383dacb49b1e3c88467ccdbf3288764bb1bbf01a
> Reviewed-on: https://skia-review.googlesource.com/58600
> Reviewed-by: Leon Scroggins <scroggo@google.com>
> Commit-Queue: Mike Reed <reed@google.com>
TBR=scroggo@google.com,reed@google.com
Change-Id: Id97137d6ec39ca638c941928bae6510814b1c499
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/60041
Reviewed-by: Ben Wagner <benjaminwagner@google.com>
Commit-Queue: Ben Wagner <benjaminwagner@google.com>
Diffstat (limited to 'src/core/SkPixmap.cpp')
-rw-r--r-- | src/core/SkPixmap.cpp | 82 |
1 files changed, 1 insertions, 81 deletions
diff --git a/src/core/SkPixmap.cpp b/src/core/SkPixmap.cpp index 7ce97d23f2..1cee0a9d02 100644 --- a/src/core/SkPixmap.cpp +++ b/src/core/SkPixmap.cpp @@ -15,10 +15,9 @@ #include "SkMask.h" #include "SkNx.h" #include "SkPM4f.h" -#include "SkPixmapPriv.h" +#include "SkPixmap.h" #include "SkReadPixelsRec.h" #include "SkSurface.h" -#include "SkTemplates.h" #include "SkUtils.h" ///////////////////////////////////////////////////////////////////////////////////////////////// @@ -382,82 +381,3 @@ bool SkPixmap::computeIsOpaque() const { } return false; } - -////////////////////////////////////////////////////////////////////////////////////////////////// - -template <typename T, typename F> -void apply(const SkPixmap& dst, const SkPixmap& src, unsigned flags, F getAddr) { - const int maxX = dst.width() - 1; - const int maxY = dst.height() - 1; - T* dstRow = (T*)dst.writable_addr(); - for (int dy = 0; dy < dst.height(); ++dy) { - for (int dx = 0; dx < dst.width(); ++dx) { - int sx = dx; - int sy = dy; - if (flags & SkPixmapPriv::kMirrorX) { - sx = maxX - sx; - } - if (flags & SkPixmapPriv::kMirrorY) { - sy = maxY - sy; - } - if (flags & SkPixmapPriv::kSwapXY) { - SkTSwap<int>(sx, sy); - } - dstRow[dx] = getAddr(src, sx, sy); - } - dstRow = SkTAddOffset<T>(dstRow, dst.rowBytes()); - } -} - -static bool apply_orientation(const SkPixmap& dst, const SkPixmap& src, unsigned flags) { - SkASSERT(dst.colorType() == src.colorType()); - - switch (dst.info().bytesPerPixel()) { - case 1: - apply<uint8_t>(dst, src, flags, [](const SkPixmap& pm, int x, int y) { - return *pm.addr8(x, y); - }); break; - case 2: - apply<uint16_t>(dst, src, flags, [](const SkPixmap& pm, int x, int y) { - return *pm.addr16(x, y); - }); break; - case 4: - apply<uint32_t>(dst, src, flags, [](const SkPixmap& pm, int x, int y) { - return *pm.addr32(x, y); - }); break; - case 8: - apply<uint64_t>(dst, src, flags, [](const SkPixmap& pm, int x, int y) { - return *pm.addr64(x, y); - }); break; - default: - return false; - } - return true; -} - -bool SkPixmapPriv::Orient(const SkPixmap& dst, const SkPixmap& src, OrientFlags flags) { - SkASSERT((flags & ~(kMirrorX | kMirrorY | kSwapXY)) == 0); - if (src.colorType() != dst.colorType()) { - return false; - } - // note: we just ignore alphaType and colorSpace for this transformation - - int w = src.width(); - int h = src.height(); - if (flags & kSwapXY) { - SkTSwap(w, h); - } - if (dst.width() != w || dst.height() != h) { - return false; - } - if (w == 0 || h == 0) { - return true; - } - - // check for aliasing to self - if (src.addr() == dst.addr()) { - return flags == 0; - } - return apply_orientation(dst, src, flags); -} - |