From fca302ccf464933e44e00255654d27a7705abb7f Mon Sep 17 00:00:00 2001 From: jvanverth Date: Mon, 20 Oct 2014 13:12:54 -0700 Subject: Add color emoji fallback for distance field text. BUG=skia:3033 Review URL: https://codereview.chromium.org/670533002 --- gm/dftext.cpp | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) (limited to 'gm/dftext.cpp') diff --git a/gm/dftext.cpp b/gm/dftext.cpp index 6f75c46713..16fe4bd385 100755 --- a/gm/dftext.cpp +++ b/gm/dftext.cpp @@ -5,30 +5,44 @@ * found in the LICENSE file. */ #include "gm.h" +#include "Resources.h" +#include "SkCanvas.h" +#include "SkStream.h" #include "SkSurface.h" #include "SkTypeface.h" -namespace skiagm { - -class DFTextGM : public GM { +class DFTextGM : public skiagm::GM { public: DFTextGM() { this->setBGColor(0xFFFFFFFF); + fTypeface = NULL; } virtual ~DFTextGM() { + SkSafeUnref(fTypeface); } protected: + virtual void onOnceBeforeDraw() SK_OVERRIDE { + SkString filename = GetResourcePath("/Funkster.ttf"); + SkAutoTUnref stream(new SkFILEStream(filename.c_str())); + if (!stream->isValid()) { + SkDebugf("Could not find Funkster.ttf, please set --resourcePath correctly.\n"); + return; + } + + fTypeface = SkTypeface::CreateFromStream(stream); + } + virtual uint32_t onGetFlags() const SK_OVERRIDE { return kGPUOnly_Flag; } - virtual SkString onShortName() { + virtual SkString onShortName() SK_OVERRIDE { return SkString("dftext"); } - virtual SkISize onISize() { + virtual SkISize onISize() SK_OVERRIDE { return SkISize::Make(1024, 768); } @@ -185,6 +199,10 @@ protected: y += paint.getFontMetrics(NULL); } + // check color emoji + paint.setTypeface(fTypeface); + canvas->drawText(text, textLen, 670, 100, paint); + #if SK_SUPPORT_GPU // render offscreen buffer if (surface) { @@ -199,12 +217,9 @@ protected: } private: - typedef GM INHERITED; -}; + SkTypeface* fTypeface; -////////////////////////////////////////////////////////////////////////////// - -static GM* MyFactory(void*) { return new DFTextGM; } -static GMRegistry reg(MyFactory); + typedef skiagm::GM INHERITED; +}; -} +DEF_GM( return SkNEW(DFTextGM); ) -- cgit v1.2.3