diff options
author | Brian Osman <brianosman@google.com> | 2017-11-21 10:18:32 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-11-21 15:44:19 +0000 |
commit | 11adf3200d44189e546f17730a61f44bf1678e07 (patch) | |
tree | 5b36e9b66f3cfb1c844c79a5d5a03fc5fa0b5482 /experimental | |
parent | cac381990140eb1966f8fe1e81b5930fd994fda7 (diff) |
Remove clutter from experimental
SkMatrix has the canonical version of setPolyToPoly, we don't need three
other copies sitting around.
SkBorder appears to be useless.
Bug: skia:
Change-Id: Ie747ff7af6cf1d03e6276e8d7fe57e9b3e4ad411
Reviewed-on: https://skia-review.googlesource.com/74141
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Diffstat (limited to 'experimental')
-rw-r--r-- | experimental/ChromeUtils/SkBorder.cpp | 30 | ||||
-rw-r--r-- | experimental/ChromeUtils/SkBorder.h | 104 | ||||
-rw-r--r-- | experimental/SkSetPoly3To3.cpp | 70 | ||||
-rw-r--r-- | experimental/SkSetPoly3To3_A.cpp | 85 | ||||
-rw-r--r-- | experimental/SkSetPoly3To3_D.cpp | 75 |
5 files changed, 0 insertions, 364 deletions
diff --git a/experimental/ChromeUtils/SkBorder.cpp b/experimental/ChromeUtils/SkBorder.cpp deleted file mode 100644 index fad27210fc..0000000000 --- a/experimental/ChromeUtils/SkBorder.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright 2013 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SkBorder.h" - -SkBorder::SkBorder(SkPaint& p, SkScalar width, BorderStyle style) - : fFlags(kOnePaint_Flag) { - fPaints[0] = p; - - for (int i = 0; i < 4; ++i) { - fWidths[i] = width; - fStyles[i] = style; - } -} - -SkBorder::SkBorder(const SkPaint paints[4], - const SkScalar widths[4], - const BorderStyle styles[4]) - : fFlags(0) { - for (int i = 0; i < 4; ++i) { - fPaints[i] = paints[i]; - } - - memcpy(fWidths, widths, sizeof(fWidths)); - memcpy(fStyles, styles, sizeof(fStyles)); -} diff --git a/experimental/ChromeUtils/SkBorder.h b/experimental/ChromeUtils/SkBorder.h deleted file mode 100644 index e9d8774b0c..0000000000 --- a/experimental/ChromeUtils/SkBorder.h +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright 2013 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - - -#ifndef SkBorder_DEFINED -#define SkBorder_DEFINED - -#include "SkColor.h" -#include "SkPaint.h" -#include "SkScalar.h" -#include "SkTArray.h" - -// This class provides a concise means of specifying all the geometry/shading -// associated with a CSS-style box/round-rect. -class SkBorder { -public: - enum BorderStyle { - /** - */ - kNone_BorderStyle, - /** - */ - kHidden_BorderStyle, - /** - */ - kDotted_BorderStyle, - /** - */ - kDashed_BorderStyle, - /** - */ - kSolid_BorderStyle, - /** - */ - kDouble_BorderStyle, - /** - */ - kGroove_BorderStyle, - /** - */ - kRidge_BorderStyle, - /** - */ - kInset_BorderStyle, - /** - */ - kOutset_BorderStyle, - }; - - enum BlurStyle { - kNormal_BlurStyle, //!< fuzzy inside and outside - kInner_BlurStyle, //!< fuzzy inside, nothing outside - }; - - struct ShadowInfo { - SkScalar fXOffset; - SkScalar fYOffset; - SkScalar fBlurSigma; - SkColor fColor; - BlurStyle fStyle; - }; - - SkBorder(SkPaint& p, SkScalar width, BorderStyle style); - - SkBorder(const SkPaint paints[4], const SkScalar widths[4], const BorderStyle styles[4]); - - void setBackground(SkPaint* p) { - if (NULL == p) { - fBackground.reset(); - fFlags &= ~kDrawBackground_Flag; - } else { - fBackground = *p; - fFlags |= kDrawBackground_Flag; - } - } - - void addShadow(ShadowInfo& info) { - fShadows.push_back(info); - } - -private: - enum Flags { - // One paint "fPaints[0]" is applied to all the borders - kOnePaint_Flag = 0x01, - // Use 'fBackground' to draw the background - kDrawBackground_Flag = 0x02, - }; - - // If kOnePaint_Flag is specified then fBorder[0] is applied to all sides. - // Otherwise the order is: left, top, right, bottom - SkPaint fPaints[4]; - // Only valid if kDrawBackground_Flag is set. - SkPaint fBackground; - SkScalar fWidths[4]; - BorderStyle fStyles[4]; - SkTArray<ShadowInfo> fShadows; - uint32_t fFlags; -}; - -#endif diff --git a/experimental/SkSetPoly3To3.cpp b/experimental/SkSetPoly3To3.cpp deleted file mode 100644 index 19adf40887..0000000000 --- a/experimental/SkSetPoly3To3.cpp +++ /dev/null @@ -1,70 +0,0 @@ - -/* - * Copyright 2011 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#include "SkMatrix.h" -#include "SkMalloc.h" - -// FIXME: needs to be in a header -bool SkSetPoly3To3(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3]); - -static void computeOuterProduct(SkScalar op[4], - const SkPoint pts0[3], const SkPoint& ave0, - const SkPoint pts1[3], const SkPoint& ave1) { - sk_bzero(op, 4 * sizeof(op[0])); - for (int i = 0; i < 3; i++) { - SkScalar x0 = pts0[i].fX - ave0.fX; - SkScalar y0 = pts0[i].fY - ave0.fY; - SkScalar x1 = pts1[i].fX - ave1.fX; - SkScalar y1 = pts1[i].fY - ave1.fY; - op[0] += x0 * x1; - op[1] += x0 * y1; - op[2] += y0 * x1; - op[3] += y0 * y1; - } -} - -static SkScalar dot(SkScalar ax, SkScalar ay, SkScalar bx, SkScalar by) { - return ax * bx + ay * by; -} - -bool SkSetPoly3To3(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3]) { - const SkPoint& srcAve = src[0]; - const SkPoint& dstAve = dst[0]; - - SkScalar srcOP[4], dstOP[4]; - - computeOuterProduct(srcOP, src, srcAve, src, srcAve); - computeOuterProduct(dstOP, src, srcAve, dst, dstAve); - - SkScalar det = srcOP[0] * srcOP[3] - srcOP[1] * srcOP[2]; - - // need SkScalarNearlyZeroSquared for this (to match Chrome's fix) - if (SkScalarNearlyZero(det)) { - return false; - } - - SkScalar invDet = SkScalarInvert(det); - - // now compute invDet * [srcOP]T * [dstOP] - - // scale and transpose - const SkScalar srcOP0 = srcOP[3] * invDet; - const SkScalar srcOP1 = -srcOP[1] * invDet; - const SkScalar srcOP2 = -srcOP[2] * invDet; - const SkScalar srcOP3 = srcOP[0] * invDet; - - matrix->reset(); - matrix->setScaleX(dot(srcOP0, srcOP1, dstOP[0], dstOP[2])); - matrix->setSkewX( dot(srcOP2, srcOP3, dstOP[0], dstOP[2])); - matrix->setSkewY (dot(srcOP0, srcOP1, dstOP[1], dstOP[3])); - matrix->setScaleY(dot(srcOP2, srcOP3, dstOP[1], dstOP[3])); - matrix->setTranslateX(dstAve.fX - dot(srcAve.fX, srcAve.fY, - matrix->getScaleX(), matrix->getSkewX())); - matrix->setTranslateY(dstAve.fY - dot(srcAve.fX, srcAve.fY, - matrix->getSkewY(), matrix->getScaleY())); - return true; -} diff --git a/experimental/SkSetPoly3To3_A.cpp b/experimental/SkSetPoly3To3_A.cpp deleted file mode 100644 index 41eb1789d5..0000000000 --- a/experimental/SkSetPoly3To3_A.cpp +++ /dev/null @@ -1,85 +0,0 @@ - -/* - * Copyright 2011 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#include "SkMatrix.h" -#include "SkMalloc.h" - -// FIXME: needs to be in a header -bool SkSetPoly3To3_A(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3]); - -typedef double SkDScalar; - -static SkScalar SkDScalar_toScalar(SkDScalar value) { - return static_cast<float>(value); -} -static SkScalar divide(SkDScalar numer, SkDScalar denom) { - return static_cast<float>(numer / denom); -} - -static SkDScalar SkDScalar_setMul(SkScalar a, SkScalar b) { - return (SkDScalar) ((SkDScalar) a * b); -} - -static void computeOuterProduct(SkScalar op[4], - const SkPoint pts0[3], const SkPoint& ave0, - const SkPoint pts1[3], const SkPoint& ave1) { - sk_bzero(op, 4 * sizeof(op[0])); - for (int i = 0; i < 3; i++) { - SkScalar x0 = pts0[i].fX - ave0.fX; - SkScalar y0 = pts0[i].fY - ave0.fY; - SkScalar x1 = pts1[i].fX - ave1.fX; - SkScalar y1 = pts1[i].fY - ave1.fY; - op[0] += x0 * x1; - op[1] += x0 * y1; - op[2] += y0 * x1; - op[3] += y0 * y1; - } -} - -static SkDScalar ddot(SkScalar ax, SkScalar ay, SkScalar bx, SkScalar by) { - return SkDScalar_setMul(ax, bx) + SkDScalar_setMul(ay, by); -} - -static SkScalar dot(SkScalar ax, SkScalar ay, SkScalar bx, SkScalar by) { - return SkDScalar_toScalar(ddot(ax, ay, bx, by)); -} - -bool SkSetPoly3To3_A(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3]) { - const SkPoint& srcAve = src[0]; - const SkPoint& dstAve = dst[0]; - - SkScalar srcOP[4], dstOP[4]; - - computeOuterProduct(srcOP, src, srcAve, src, srcAve); - computeOuterProduct(dstOP, src, srcAve, dst, dstAve); - - SkDScalar det = SkDScalar_setMul(srcOP[0], srcOP[3]) - - SkDScalar_setMul(srcOP[1], srcOP[2]); - - SkDScalar M[4]; - - const SkScalar srcOP0 = srcOP[3]; - const SkScalar srcOP1 = -srcOP[1]; - const SkScalar srcOP2 = -srcOP[2]; - const SkScalar srcOP3 = srcOP[0]; - - M[0] = ddot(srcOP0, srcOP1, dstOP[0], dstOP[2]); - M[1] = ddot(srcOP2, srcOP3, dstOP[0], dstOP[2]); - M[2] = ddot(srcOP0, srcOP1, dstOP[1], dstOP[3]); - M[3] = ddot(srcOP2, srcOP3, dstOP[1], dstOP[3]); - - matrix->reset(); - matrix->setScaleX(divide(M[0], det)); - matrix->setSkewX( divide(M[1], det)); - matrix->setSkewY (divide(M[2], det)); - matrix->setScaleY(divide(M[3], det)); - matrix->setTranslateX(dstAve.fX - dot(srcAve.fX, srcAve.fY, - matrix->getScaleX(), matrix->getSkewX())); - matrix->setTranslateY(dstAve.fY - dot(srcAve.fX, srcAve.fY, - matrix->getSkewY(), matrix->getScaleY())); - return true; -} diff --git a/experimental/SkSetPoly3To3_D.cpp b/experimental/SkSetPoly3To3_D.cpp deleted file mode 100644 index 18f34c9982..0000000000 --- a/experimental/SkSetPoly3To3_D.cpp +++ /dev/null @@ -1,75 +0,0 @@ - -/* - * Copyright 2011 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ -#include "SkMatrix.h" -#include "SkMalloc.h" - -// FIXME: needs to be in a header -bool SkSetPoly3To3_D(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3]); - -typedef int64_t SkDScalar; - -static SkScalar SkDScalar_toScalar(SkDScalar value) { - SkDScalar result = (value + (1 << 15)) >> 16; - SkDEBUGCODE(int top = static_cast<int>(result >> 31);) - SkASSERT(top == 0 || top == -1); - return (SkScalar)result; -} - -static SkDScalar SkDScalar_setMul(SkScalar a, SkScalar b) { - return (SkDScalar) ((SkDScalar) a * (SkDScalar) b); -} - -static void computeOuterProduct(SkMatrix* matrix, - const SkPoint pts0[3], const SkPoint& ave0, - const SkPoint pts1[3], const SkPoint& ave1) { - SkDScalar tmp[4]; - sk_bzero(tmp, sizeof(tmp)); - - for (int i = 0; i < 3; i++) { - SkScalar x0 = pts0[i].fX - ave0.fX; - SkScalar y0 = pts0[i].fY - ave0.fY; - SkScalar x1 = pts1[i].fX - ave1.fX; - SkScalar y1 = pts1[i].fY - ave1.fY; - tmp[0] += SkDScalar_setMul(x0, x1); - tmp[1] += SkDScalar_setMul(x0, y1); - tmp[2] += SkDScalar_setMul(y0, x1); - tmp[3] += SkDScalar_setMul(y0, y1); - } - matrix->reset(); - matrix->setScaleX(SkDScalar_toScalar(tmp[0])); - matrix->setSkewY( SkDScalar_toScalar(tmp[1])); - matrix->setSkewX( SkDScalar_toScalar(tmp[2])); - matrix->setScaleY(SkDScalar_toScalar(tmp[3])); -} - -static SkScalar dot(SkScalar ax, SkScalar ay, SkScalar bx, SkScalar by) { - return SkDScalar_toScalar(SkDScalar_setMul(ax, bx) + - SkDScalar_setMul(ay, by)); -} - -bool SkSetPoly3To3_D(SkMatrix* matrix, const SkPoint src[3], const SkPoint dst[3]) { - const SkPoint& srcAve = src[0]; - const SkPoint& dstAve = dst[0]; - - SkMatrix srcOP, dstOP; - - computeOuterProduct(&srcOP, src, srcAve, src, srcAve); - - if (!srcOP.invert(&srcOP)) { - return false; - } - - computeOuterProduct(&dstOP, src, srcAve, dst, dstAve); - - matrix->setConcat(dstOP, srcOP); - matrix->setTranslateX(dstAve.fX - dot(srcAve.fX, srcAve.fY, - matrix->getScaleX(), matrix->getSkewX())); - matrix->setTranslateY(dstAve.fY - dot(srcAve.fX, srcAve.fY, - matrix->getSkewY(), matrix->getScaleY())); - return true; -} |