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

Unified Diff: gm/dftext.cpp

Issue 670533002: Add color emoji fallback for distance field text. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Update comment Created 6 years, 2 months 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
Index: gm/dftext.cpp
diff --git a/gm/dftext.cpp b/gm/dftext.cpp
index 6f75c4671391af834412f8be0d87cd26bb10a6ec..350e9ab57148f2bcf22ead3a0e380165f2fbbff7 100755
--- a/gm/dftext.cpp
+++ b/gm/dftext.cpp
@@ -5,6 +5,9 @@
* found in the LICENSE file.
*/
#include "gm.h"
+#include "Resources.h"
+#include "SkCanvas.h"
+#include "SkStream.h"
#include "SkSurface.h"
#include "SkTypeface.h"
@@ -14,12 +17,25 @@ class DFTextGM : public GM {
public:
DFTextGM() {
this->setBGColor(0xFFFFFFFF);
+ fTypeface = NULL;
}
virtual ~DFTextGM() {
+ SkSafeUnref(fTypeface);
}
protected:
+ virtual void onOnceBeforeDraw() SK_OVERRIDE {
+ SkString filename = GetResourcePath("/Funkster.ttf");
+ SkAutoTUnref<SkFILEStream> 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;
}
@@ -185,6 +201,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,6 +219,8 @@ protected:
}
private:
+ SkTypeface* fTypeface;
+
typedef GM INHERITED;
};

Powered by Google App Engine
This is Rietveld 408576698