Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: bench/FontScalerBench.cpp

Issue 106133002: refactor emboldenGlyph (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: rebase and add bench cases for different font styles Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/ports/SkFontHost_FreeType.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bench/FontScalerBench.cpp
diff --git a/bench/FontScalerBench.cpp b/bench/FontScalerBench.cpp
index 6ef0703346ea9521d116569ffd992e649e0d8409..5d6f01aef15ff6063be0d95e419d66f525d372f0 100644
--- a/bench/FontScalerBench.cpp
+++ b/bench/FontScalerBench.cpp
@@ -11,17 +11,44 @@
#include "SkPaint.h"
#include "SkRandom.h"
#include "SkString.h"
+#include "SkTypeface.h"
extern bool gSkSuppressFontCachePurgeSpew;
+static const struct {
+ const char* fStyleString;
+ SkTypeface::Style fStyle;
+} gStyleNames [] = {
+ { "normal", SkTypeface::kNormal },
+ { "bold", SkTypeface::kBold },
+ { "italic", SkTypeface::kItalic },
+ { "bolditalic", SkTypeface::kBoldItalic },
+};
+
class FontScalerBench : public SkBenchmark {
- SkString fName;
- SkString fText;
- bool fDoLCD;
+ SkString fName;
+ SkString fText;
+ SkTypeface::Style fStyle;
+ bool fDoLCD;
public:
- FontScalerBench(bool doLCD) {
- fName.printf("fontscaler_%s", doLCD ? "lcd" : "aa");
+ FontScalerBench(SkTypeface::Style style, bool doLCD) {
+ const char* styleString;
+
+ styleString = gStyleNames[0].fStyleString;
+ fStyle = gStyleNames[0].fStyle;
+
+ for (unsigned int i = 0;
+ i < sizeof(gStyleNames) / sizeof(gStyleNames[0]); i++) {
+ if (gStyleNames[i].fStyle == style) {
+ styleString = gStyleNames[i].fStyleString;
+ fStyle = style;
+ break;
+ }
+ }
+
+ fName.printf("fontscaler_%s_%s", styleString, doLCD ? "lcd" : "aa");
fText.set("abcdefghijklmnopqrstuvwxyz01234567890");
+
fDoLCD = doLCD;
}
@@ -30,6 +57,9 @@ protected:
virtual void onDraw(const int loops, SkCanvas* canvas) {
SkPaint paint;
this->setupPaint(&paint);
+
+ SkTypeface* face = SkTypeface::CreateFromName(NULL, fStyle);
+ paint.setTypeface(face);
paint.setLCDRenderText(fDoLCD);
bool prev = gSkSuppressFontCachePurgeSpew;
@@ -40,14 +70,16 @@ protected:
// explicitly flush our cache before each run
SkGraphics::PurgeFontCache();
- for (int ps = 9; ps <= 24; ps += 2) {
+ for (int y = 20, ps = 9; ps <= 24; y += ps, ps += 2) {
paint.setTextSize(SkIntToScalar(ps));
canvas->drawText(fText.c_str(), fText.size(),
- 0, SkIntToScalar(20), paint);
+ 0, SkIntToScalar(y), paint);
}
}
gSkSuppressFontCachePurgeSpew = prev;
+
+ SkSafeUnref(face);
}
private:
typedef SkBenchmark INHERITED;
@@ -55,5 +87,11 @@ private:
///////////////////////////////////////////////////////////////////////////////
-DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (false)); )
-DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (true)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kNormal, false)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kBold, false)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kItalic, false)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kBoldItalic, false)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kNormal, true)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kBold, true)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kItalic, true)); )
+DEF_BENCH( return SkNEW_ARGS(FontScalerBench, (SkTypeface::kBoldItalic, true)); )
« no previous file with comments | « no previous file | src/ports/SkFontHost_FreeType.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698