diff options
author | robertphillips <robertphillips@google.com> | 2014-09-29 04:48:52 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-29 04:48:52 -0700 |
commit | d46b8d2bab7cfba8458432248e1568ac377429e9 (patch) | |
tree | 3707a270fa43d90f2f8864d98cba576fb5bc1a48 /src/utils | |
parent | cce6bbf494d571e1cd4045697475f0fb2916c2d2 (diff) |
Revert of Fix SkTextBlob offset semantics. (patchset #2 id:20001 of https://codereview.chromium.org/605533002/)
Reason for revert:
Breaking the Chrome builds with the error:
[14:54:14.317833] ../../skia/ext/pixel_ref_utils.cc:221:16: error: 'drawPosText' marked 'override' but does not override any member functions
[14:54:14.318022] virtual void drawPosText(const SkDraw& draw,
[14:54:14.318082] ^
Original issue's description:
> Fix SkTextBlob offset semantics.
>
> Implement proper x/y drawTextBlob() handling by plumbing a
> drawPosText() offset parameter (to act as an additional glyph pos
> translation) throughout the device layer.
>
> The new offset superceeds the existing constY, with a minor semantic
> tweak: whereas previous implementations were ignoring constY in 2D
> positioning mode (scalarsPerGlyph == 2), now the offset is always
> observed, in all positioning modes. We can do this because existing
> drawPosText() clients always pass constY == 0 for full positioning mode.
>
> R=reed@google.com, jvanverth@google.com, robertphillips@google.com
>
> Committed: https://skia.googlesource.com/skia/+/c13bc571d3e61a43b87eb97f0719abd304cafaf2
R=jvanverth@google.com, reed@google.com, bsalomon@google.com, fmalita@chromium.org
TBR=bsalomon@google.com, fmalita@chromium.org, jvanverth@google.com, reed@google.com
NOTREECHECKS=true
NOTRY=true
Author: robertphillips@google.com
Review URL: https://codereview.chromium.org/609223003
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/SkDeferredCanvas.cpp | 4 | ||||
-rw-r--r-- | src/utils/SkGatherPixelRefsAndRects.h | 19 | ||||
-rw-r--r-- | src/utils/SkPictureUtils.cpp | 4 |
3 files changed, 16 insertions, 11 deletions
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp index 06f7bb089a..c8402dda4a 100644 --- a/src/utils/SkDeferredCanvas.cpp +++ b/src/utils/SkDeferredCanvas.cpp @@ -210,8 +210,8 @@ protected: SkScalar x, SkScalar y, const SkPaint& paint) SK_OVERRIDE {SkASSERT(0);} virtual void drawPosText(const SkDraw&, const void* text, size_t len, - const SkScalar pos[], int scalarsPerPos, - const SkPoint& offset, const SkPaint& paint) SK_OVERRIDE + const SkScalar pos[], SkScalar constY, + int scalarsPerPos, const SkPaint& paint) SK_OVERRIDE {SkASSERT(0);} virtual void drawTextOnPath(const SkDraw&, const void* text, size_t len, const SkPath& path, diff --git a/src/utils/SkGatherPixelRefsAndRects.h b/src/utils/SkGatherPixelRefsAndRects.h index 0a4bb5b84c..e1e5ccd92e 100644 --- a/src/utils/SkGatherPixelRefsAndRects.h +++ b/src/utils/SkGatherPixelRefsAndRects.h @@ -195,8 +195,8 @@ protected: this->drawRect(draw, bounds, paint); } virtual void drawPosText(const SkDraw& draw, const void* text, size_t len, - const SkScalar pos[], int scalarsPerPos, - const SkPoint& offset, const SkPaint& paint) SK_OVERRIDE { + const SkScalar pos[], SkScalar constY, + int scalarsPerPos, const SkPaint& paint) SK_OVERRIDE { SkBitmap bitmap; if (!GetBitmapFromPaint(paint, &bitmap)) { return; @@ -209,13 +209,18 @@ protected: // Similar to SkDraw asserts. SkASSERT(scalarsPerPos == 1 || scalarsPerPos == 2); - SkPoint min = SkPoint::Make(offset.x() + pos[0], - offset.y() + (2 == scalarsPerPos ? pos[1] : 0)); - SkPoint max = min; + SkScalar y = scalarsPerPos == 1 ? constY : constY + pos[1]; + + SkPoint min, max; + min.set(pos[0], y); + max.set(pos[0], y); for (size_t i = 1; i < len; ++i) { - SkScalar x = offset.x() + pos[i * scalarsPerPos]; - SkScalar y = offset.y() + (2 == scalarsPerPos ? pos[i * 2 + 1] : 0); + SkScalar x = pos[i * scalarsPerPos]; + SkScalar y = constY; + if (2 == scalarsPerPos) { + y += pos[i * scalarsPerPos + 1]; + } min.set(SkMinScalar(x, min.x()), SkMinScalar(y, min.y())); max.set(SkMaxScalar(x, max.x()), SkMaxScalar(y, max.y())); diff --git a/src/utils/SkPictureUtils.cpp b/src/utils/SkPictureUtils.cpp index 391e5ffc79..4f4d2bf30a 100644 --- a/src/utils/SkPictureUtils.cpp +++ b/src/utils/SkPictureUtils.cpp @@ -132,8 +132,8 @@ public: this->addBitmapFromPaint(paint); } virtual void drawPosText(const SkDraw&, const void* text, size_t len, - const SkScalar pos[], int, - const SkPoint&, const SkPaint& paint) SK_OVERRIDE { + const SkScalar pos[], SkScalar constY, + int, const SkPaint& paint) SK_OVERRIDE { this->addBitmapFromPaint(paint); } virtual void drawTextOnPath(const SkDraw&, const void* text, size_t len, |