aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2014-09-29 04:48:52 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-09-29 04:48:52 -0700
commitd46b8d2bab7cfba8458432248e1568ac377429e9 (patch)
tree3707a270fa43d90f2f8864d98cba576fb5bc1a48 /src/utils
parentcce6bbf494d571e1cd4045697475f0fb2916c2d2 (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.cpp4
-rw-r--r--src/utils/SkGatherPixelRefsAndRects.h19
-rw-r--r--src/utils/SkPictureUtils.cpp4
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,