aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkPixmap.cpp
diff options
context:
space:
mode:
authorGravatar Ben Wagner <benjaminwagner@google.com>2017-10-16 18:07:29 +0000
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-10-16 18:07:42 +0000
commit363dd988a55c2ed3fa92e2368c1c889101425734 (patch)
tree8d92c9dd309f43928e60b7b44144aa39e2f3e9ae /src/core/SkPixmap.cpp
parentd49e946df0724060607a9844a754da5cf5494a1a (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.cpp82
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);
-}
-