aboutsummaryrefslogtreecommitdiffhomepage
path: root/bench/TextBench.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'bench/TextBench.cpp')
-rw-r--r--bench/TextBench.cpp34
1 files changed, 18 insertions, 16 deletions
diff --git a/bench/TextBench.cpp b/bench/TextBench.cpp
index 4ee0fd3d25..0a6af34d8f 100644
--- a/bench/TextBench.cpp
+++ b/bench/TextBench.cpp
@@ -52,27 +52,33 @@ class TextBench : public Benchmark {
SkPoint* fPos;
public:
TextBench(const char text[], int ps,
- SkColor color, FontQuality fq, bool doColorEmoji = false, bool doPos = false) {
- fPos = NULL;
- fFQ = fq;
- fDoPos = doPos;
- fDoColorEmoji = doColorEmoji;
- fText.set(text);
-
+ SkColor color, FontQuality fq, bool doColorEmoji = false, bool doPos = false)
+ : fText(text)
+ , fFQ(fq)
+ , fDoPos(doPos)
+ , fDoColorEmoji(doColorEmoji)
+ , fPos(NULL) {
fPaint.setAntiAlias(kBW != fq);
fPaint.setLCDRenderText(kLCD == fq);
fPaint.setTextSize(SkIntToScalar(ps));
fPaint.setColor(color);
+ }
- if (doColorEmoji) {
+ virtual ~TextBench() {
+ delete[] fPos;
+ }
+
+protected:
+ void onPreDraw() override {
+ if (fDoColorEmoji) {
SkASSERT(kBW == fFQ);
fColorEmojiTypeface.reset(GetResourceAsTypeface("/fonts/Funkster.ttf"));
}
- if (doPos) {
- size_t len = strlen(text);
+ if (fDoPos) {
+ size_t len = fText.size();
SkScalar* adv = new SkScalar[len];
- fPaint.getTextWidths(text, len, adv);
+ fPaint.getTextWidths(fText.c_str(), len, adv);
fPos = new SkPoint[len];
SkScalar x = 0;
for (size_t i = 0; i < len; ++i) {
@@ -83,11 +89,7 @@ public:
}
}
- virtual ~TextBench() {
- delete[] fPos;
- }
-protected:
virtual const char* onGetName() {
fName.printf("text_%g", SkScalarToFloat(fPaint.getTextSize()));
if (fDoPos) {
@@ -100,7 +102,7 @@ protected:
fName.append("_BK");
}
- if (fDoColorEmoji && fColorEmojiTypeface) {
+ if (fDoColorEmoji) {
fName.append("_ColorEmoji");
}