From 6e5a45c038b1f3c0e4b119b0cd5091ac885ca764 Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Wed, 2 Nov 2011 21:02:57 +0000 Subject: add bench for building the font cache git-svn-id: http://skia.googlecode.com/svn/trunk@2590 2bbb7eff-a529-9590-31e7-b0007b416f81 --- bench/FontScalerBench.cpp | 54 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 bench/FontScalerBench.cpp (limited to 'bench/FontScalerBench.cpp') diff --git a/bench/FontScalerBench.cpp b/bench/FontScalerBench.cpp new file mode 100644 index 0000000000..596b830809 --- /dev/null +++ b/bench/FontScalerBench.cpp @@ -0,0 +1,54 @@ +/* + * Copyright 2011 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkBenchmark.h" +#include "SkCanvas.h" +#include "SkGraphics.h" +#include "SkPaint.h" +#include "SkRandom.h" +#include "SkString.h" + +extern bool gSkSuppressFontCachePurgeSpew; + +class FontScalerBench : public SkBenchmark { + SkString fName; + SkString fText; +public: + FontScalerBench(void* param) : INHERITED(param) { + fName.set("fontscaler"); + fText.set("abcdefghijklmnopqrstuvwxyz01234567890"); + } + +protected: + virtual const char* onGetName() { return fName.c_str(); } + virtual void onDraw(SkCanvas* canvas) { + SkPaint paint; + this->setupPaint(&paint); + + bool prev = gSkSuppressFontCachePurgeSpew; + gSkSuppressFontCachePurgeSpew = true; + + // this is critical - we want to time the creation process, so we + // explicitly flush our cache before each run + SkGraphics::SetFontCacheUsed(0); + for (int ps = 9; ps <= 24; ps += 2) { + paint.setTextSize(SkIntToScalar(ps)); + canvas->drawText(fText.c_str(), fText.size(), + 0, SkIntToScalar(20), paint); + } + + gSkSuppressFontCachePurgeSpew = prev; + } +private: + typedef SkBenchmark INHERITED; +}; + +/////////////////////////////////////////////////////////////////////////////// + +static SkBenchmark* Fact(void* p) { return SkNEW_ARGS(FontScalerBench, (p)); } + +static BenchRegistry gReg(Fact); -- cgit v1.2.3