remove legacy drawstring
Bug: skia:
Change-Id: Id3491dbc6cee3e5d06981284535a04639182e9dd
Reviewed-on: https://skia-review.googlesource.com/c/182450
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Mike Reed <reed@google.com>
diff --git a/docs/SkCanvas_Reference.bmh b/docs/SkCanvas_Reference.bmh
index 790d3f7..ddfe680 100644
--- a/docs/SkCanvas_Reference.bmh
+++ b/docs/SkCanvas_Reference.bmh
@@ -210,7 +210,7 @@
const SkPMColor* pixels = pixmap.addr32(); // points to top-left of bitmap
SkPMColor pmWhite = pixels[0]; // the Premultiplied format may vary
SkPaint paint; // by default, draws black, 12 point text
- canvas.drawString("!", 1, 10, paint); // 1 char at baseline (1, 10)
+ canvas.drawString("!", 1, 10, SkFont(), paint); // 1 char at baseline (1, 10)
for (int y = 0; y < bitmap.height(); ++y) {
for (int x = 0; x < bitmap.width(); ++x) {
SkDebugf("%c", *pixels++ == pmWhite ? '-' : 'x');
@@ -260,7 +260,7 @@
const SkPMColor* pixels = pixmap.addr32(); // points to top-left of bitmap
SkPMColor pmWhite = pixels[0]; // the Premultiplied format may vary
SkPaint paint; // by default, draws black, 12 point text
- canvas.drawString("!", 1, 10, paint); // 1 char at baseline (1, 10)
+ canvas.drawString("!", 1, 10, SkFont(), paint); // 1 char at baseline (1, 10)
for (int y = 0; y < bitmap.height(); ++y) {
for (int x = 0; x < bitmap.width(); ++x) {
SkDebugf("%c", *pixels++ == pmWhite ? '-' : 'x');
@@ -307,12 +307,12 @@
{
SkCanvas offscreen(bitmap);
SkPaint paint;
- paint.setTextSize(100);
- offscreen.drawString("ABC", 20, 160, paint);
+ SkFont font(nullptr, 100);
+ offscreen.drawString("ABC", 20, 160, font, paint);
SkRect layerBounds = SkRect::MakeXYWH(32, 32, 192, 192);
offscreen.saveLayerAlpha(&layerBounds, 128);
offscreen.clear(SK_ColorWHITE);
- offscreen.drawString("DEF", 20, 160, paint);
+ offscreen.drawString("DEF", 20, 160, font, paint);
}
canvas->drawBitmap(bitmap, 0, 0, nullptr);
}
@@ -529,12 +529,12 @@
##
void draw(SkCanvas* canvas) {
SkPaint paint;
- paint.setTextSize(100);
- canvas->drawString("ABC", 20, 160, paint);
+ SkFont font(nullptr, 100);
+ canvas->drawString("ABC", 20, 160, font, paint);
SkRect layerBounds = SkRect::MakeXYWH(32, 32, 192, 192);
canvas->saveLayerAlpha(&layerBounds, 128);
canvas->clear(SK_ColorWHITE);
- canvas->drawString("DEF", 20, 160, paint);
+ canvas->drawString("DEF", 20, 160, font, paint);
SkImageInfo imageInfo;
size_t rowBytes;
SkIPoint origin;
@@ -1622,10 +1622,10 @@
#Height 192
void draw(SkCanvas* canvas) {
SkPaint paint;
- paint.setTextSize(96);
- canvas->drawString("A1", 130, 100, paint);
+ SkFont font(nullptr, 96);
+ canvas->drawString("A1", 130, 100, font, paint);
canvas->rotate(180, 130, 100);
- canvas->drawString("A1", 130, 100, paint);
+ canvas->drawString("A1", 130, 100, font, paint);
}
##
@@ -1650,20 +1650,20 @@
Blue text combines sx and sy skew to rotate and scale.
##
SkPaint paint;
- paint.setTextSize(128);
+ SkFont font(nullptr, 128);
canvas->translate(30, 130);
canvas->save();
canvas->skew(-.5, 0);
- canvas->drawString("A1", 0, 0, paint);
+ canvas->drawString("A1", 0, 0, font, paint);
canvas->restore();
canvas->save();
canvas->skew(0, .5);
paint.setColor(SK_ColorRED);
- canvas->drawString("A1", 0, 0, paint);
+ canvas->drawString("A1", 0, 0, font, paint);
canvas->restore();
canvas->skew(-.5, .5);
paint.setColor(SK_ColorBLUE);
- canvas->drawString("A1", 0, 0, paint);
+ canvas->drawString("A1", 0, 0, font, paint);
##
#SeeAlso concat() translate() rotate() scale() setMatrix
@@ -1681,17 +1681,17 @@
#Example
void draw(SkCanvas* canvas) {
SkPaint paint;
- paint.setTextSize(80);
- paint.setTextScaleX(.3);
+ SkFont font(nullptr, 80);
+ font.setScaleX(.3);
SkMatrix matrix;
SkRect rect[2] = {{ 10, 20, 90, 110 }, { 40, 130, 140, 180 }};
matrix.setRectToRect(rect[0], rect[1], SkMatrix::kFill_ScaleToFit);
canvas->drawRect(rect[0], paint);
canvas->drawRect(rect[1], paint);
paint.setColor(SK_ColorWHITE);
- canvas->drawString("Here", rect[0].fLeft + 10, rect[0].fBottom - 10, paint);
+ canvas->drawString("Here", rect[0].fLeft + 10, rect[0].fBottom - 10, font, paint);
canvas->concat(matrix);
- canvas->drawString("There", rect[0].fLeft + 10, rect[0].fBottom - 10, paint);
+ canvas->drawString("There", rect[0].fLeft + 10, rect[0].fBottom - 10, font, paint);
}
##
@@ -1711,12 +1711,13 @@
#Height 128
void draw(SkCanvas* canvas) {
SkPaint paint;
+ SkFont font;
canvas->scale(4, 6);
- canvas->drawString("truth", 2, 10, paint);
+ canvas->drawString("truth", 2, 10, font, paint);
SkMatrix matrix;
matrix.setScale(2.8f, 6);
canvas->setMatrix(matrix);
- canvas->drawString("consequences", 2, 20, paint);
+ canvas->drawString("consequences", 2, 20, font, paint);
}
##
@@ -1736,11 +1737,12 @@
#Height 128
void draw(SkCanvas* canvas) {
SkPaint paint;
+ SkFont font;
canvas->scale(4, 6);
- canvas->drawString("truth", 2, 10, paint);
+ canvas->drawString("truth", 2, 10, font, paint);
canvas->resetMatrix();
canvas->scale(2.8f, 6);
- canvas->drawString("consequences", 2, 20, paint);
+ canvas->drawString("consequences", 2, 20, font, paint);
}
##
@@ -3918,35 +3920,6 @@
##
-#Method void drawString(const char* string, SkScalar x, SkScalar y, const SkPaint& paint)
-#In Draw_Text
-#In Draw
-#Line # draws null terminated string at (x, y) using font advance ##
-#Populate
-
-#Example
-#Height 48
- SkPaint paint;
- canvas->drawString("a small hello", 20, 20, paint);
-##
-
-#SeeAlso drawText drawTextBlob
-
-##
-
-#Method void drawString(const SkString& string, SkScalar x, SkScalar y, const SkPaint& paint)
-#Populate
-
-#Example
- SkPaint paint;
- SkString string("a small hello");
- canvas->drawString(string, 20, 20, paint);
-##
-
-#SeeAlso drawText drawTextBlob
-
-##
-
# ------------------------------------------------------------------------------
#Method void drawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, const SkPaint& paint)
@@ -4339,13 +4312,14 @@
SkPoint text[] = { {3,0.9f}, {4,2.5f}, {5,0.9f}, {7.5f,3.2f}, {5.5f,4.2f},
{7.5f,5.2f}, {5,7.5f}, {4,5.9f}, {3,7.5f}, {0.5f,5.2f}, {2.5f,4.2f},
{0.5f,3.2f} };
- paint.setTextSize(18.f / 30);
+
+ SkFont font(nullptr, 18.f / 30);
for (int i = 0; i< 10; ++i) {
char digit = '0' + i;
- canvas->drawText(&digit, 1, text[i].fX, text[i].fY, paint);
+ canvas->drawSimpleText(&digit, kUTF8_SkTextEncoding, 1, text[i].fX, text[i].fY, font, paint);
}
- canvas->drawString("10", text[10].fX, text[10].fY, paint);
- canvas->drawString("11", text[11].fX, text[11].fY, paint);
+ canvas->drawString("10", text[10].fX, text[10].fY, font, paint);
+ canvas->drawString("11", text[11].fX, text[11].fY, font, paint);
paint.setStyle(SkPaint::kStroke_Style);
canvas->drawPoints(SkCanvas::kPolygon_PointMode, 12, cubics, paint);
canvas->drawLine(cubics[11].fX, cubics[11].fY, cubics[0].fX, cubics[0].fY, paint);
diff --git a/include/core/SkCanvas.h b/include/core/SkCanvas.h
index ee79142..9f342e1 100644
--- a/include/core/SkCanvas.h
+++ b/include/core/SkCanvas.h
@@ -27,10 +27,6 @@
#include "SkSurfaceProps.h"
#include "SkVertices.h"
-#ifndef SK_SUPPORT_LEGACY_DRAWSTRING
-#define SK_SUPPORT_LEGACY_DRAWSTRING
-#endif
-
class GrContext;
class GrRenderTargetContext;
class SkAndroidFrameworkUtils;
@@ -1868,59 +1864,6 @@
void drawSimpleText(const void* text, size_t byteLength, SkTextEncoding encoding,
SkScalar x, SkScalar y, const SkFont& font, const SkPaint& paint);
-#ifdef SK_SUPPORT_LEGACY_DRAWSTRING
- /** Draws null terminated string, with origin at (x, y), using clip, SkMatrix, and
- SkPaint paint.
-
- string meaning depends on SkTextEncoding; by default, strings are encoded
- as UTF-8. Other values of SkTextEncoding are unlikely to produce the desired
- results, since zero bytes may be embedded in the string.
-
- x and y meaning depends on SkPaint::Align and SkPaint vertical text; by default
- string draws left to right, positioning the first glyph left side bearing at x
- and its baseline at y. Text size is affected by SkMatrix and SkPaint text size.
-
- All elements of paint: SkPathEffect, SkMaskFilter, SkShader,
- SkColorFilter, SkImageFilter, and SkDrawLooper; apply to text. By default, draws
- filled 12 point black glyphs.
-
- @param string character code points or glyphs drawn,
- ending with a char value of zero
- @param x start of string on x-axis
- @param y start of string on y-axis
- @param paint text size, blend, color, and so on, used to draw
- */
- void drawString(const char* string, SkScalar x, SkScalar y, const SkPaint& paint) {
- if (!string) {
- return;
- }
- this->drawText(string, strlen(string), x, y, paint);
- }
-
- /** Draws null terminated string, with origin at (x, y), using clip, SkMatrix, and
- SkPaint paint.
-
- string meaning depends on SkTextEncoding; by default, strings are encoded
- as UTF-8. Other values of SkTextEncoding are unlikely to produce the desired
- results, since zero bytes may be embedded in the string.
-
- x and y meaning depends on SkPaint::Align and SkPaint vertical text; by default
- string draws left to right, positioning the first glyph left side bearing at x
- and its baseline at y. Text size is affected by SkMatrix and SkPaint text size.
-
- All elements of paint: SkPathEffect, SkMaskFilter, SkShader,
- SkColorFilter, SkImageFilter, and SkDrawLooper; apply to text. By default, draws
- filled 12 point black glyphs.
-
- @param string character code points or glyphs drawn,
- ending with a char value of zero
- @param x start of string on x-axis
- @param y start of string on y-axis
- @param paint text size, blend, color, and so on, used to draw
- */
- void drawString(const SkString& string, SkScalar x, SkScalar y, const SkPaint& paint);
-#endif
-
// Experimental
void drawString(const char str[], SkScalar x, SkScalar y, const SkFont& font,
const SkPaint& paint) {
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index ee0960c..26e2ffa 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -2534,12 +2534,6 @@
LOOPER_END
}
-#ifdef SK_SUPPORT_LEGACY_DRAWSTRING
-void SkCanvas::drawString(const SkString& string, SkScalar x, SkScalar y, const SkPaint& paint) {
- this->drawText(string.c_str(), string.size(), x, y, paint);
-}
-#endif
-
// These call the (virtual) onDraw... method
void SkCanvas::drawSimpleText(const void* text, size_t byteLength, SkTextEncoding encoding,
SkScalar x, SkScalar y, const SkFont& font, const SkPaint& paint) {