aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/sk_tool_utils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/sk_tool_utils.cpp')
-rw-r--r--tools/sk_tool_utils.cpp27
1 files changed, 19 insertions, 8 deletions
diff --git a/tools/sk_tool_utils.cpp b/tools/sk_tool_utils.cpp
index 1b35005d96..6a2beacac1 100644
--- a/tools/sk_tool_utils.cpp
+++ b/tools/sk_tool_utils.cpp
@@ -6,14 +6,16 @@
*/
#include "sk_tool_utils.h"
-#include "../src/fonts/SkTestScalerContext.h"
+#include "sk_tool_utils_flags.h"
#include "SkBitmap.h"
#include "SkCanvas.h"
+#include "SkTestScalerContext.h"
-namespace sk_tool_utils {
+DEFINE_bool(portableFonts, false, "Use portable fonts");
+DEFINE_bool(resourceFonts, false, "Use resource fonts");
-bool gEnablePortableTypeface = false;
+namespace sk_tool_utils {
const char* colortype_name(SkColorType ct) {
switch (ct) {
@@ -30,12 +32,21 @@ const char* colortype_name(SkColorType ct) {
}
}
-SkPaint::FontMetrics create_font(SkTDArray<SkPath*>& , SkTDArray<SkFixed>& );
-
-void set_portable_typeface(SkPaint* paint, SkTypeface::Style style) {
- if (gEnablePortableTypeface) {
- SkSafeUnref(paint->setTypeface(CreateTestTypeface(create_font, style)));
+SkTypeface* create_portable_typeface(const char* name, SkTypeface::Style style) {
+ SkTypeface* face;
+ if (FLAGS_portableFonts) {
+ face = create_font(name, style);
+ } else if (FLAGS_resourceFonts) {
+ face = resource_font(name, style);
+ } else {
+ face = SkTypeface::CreateFromName(name, style);
}
+ return face;
+}
+
+void set_portable_typeface(SkPaint* paint, const char* name, SkTypeface::Style style) {
+ SkTypeface* face = create_portable_typeface(name, style);
+ SkSafeUnref(paint->setTypeface(face));
}
void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y,