From 66a82f3872abf4ebb98b3915b2a9ecc73ad352c5 Mon Sep 17 00:00:00 2001 From: halcanary Date: Mon, 12 Oct 2015 13:05:04 -0700 Subject: SkPDF: fall back on paths for unembeddable fonts. Add GM, SkPDFFont::CanEmbedTypeface BUG=skia:3866 Review URL: https://codereview.chromium.org/1401763002 --- tests/PDFPrimitivesTest.cpp | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests/PDFPrimitivesTest.cpp') diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp index 3253fcaf71..5fce53ea0a 100644 --- a/tests/PDFPrimitivesTest.cpp +++ b/tests/PDFPrimitivesTest.cpp @@ -5,6 +5,7 @@ * found in the LICENSE file. */ +#include "Resources.h" #include "SkBitmap.h" #include "SkCanvas.h" #include "SkData.h" @@ -14,6 +15,7 @@ #include "SkMatrix.h" #include "SkPDFCanon.h" #include "SkPDFDevice.h" +#include "SkPDFFont.h" #include "SkPDFStream.h" #include "SkPDFTypes.h" #include "SkReadBuffer.h" @@ -21,6 +23,7 @@ #include "SkStream.h" #include "SkTypes.h" #include "Test.h" +#include "sk_tool_utils.h" #define DUMMY_TEXT "DCT compessed stream." @@ -415,3 +418,20 @@ DEF_TEST(PDFImageFilter, reporter) { // Filter was used in rendering; should be visited. REPORTER_ASSERT(reporter, filter->visited()); } + +// Check that PDF rendering of image filters successfully falls back to +// CPU rasterization. +DEF_TEST(PDFFontCanEmbedTypeface, reporter) { + SkPDFCanon canon; + + const char resource[] = "fonts/Roboto2-Regular_NoEmbed.ttf"; + SkAutoTUnref noEmbedTypeface(GetResourceAsTypeface(resource)); + if (noEmbedTypeface) { + REPORTER_ASSERT(reporter, + !SkPDFFont::CanEmbedTypeface(noEmbedTypeface, &canon)); + } + SkAutoTUnref portableTypeface( + sk_tool_utils::create_portable_typeface(NULL, SkTypeface::kNormal)); + REPORTER_ASSERT(reporter, + SkPDFFont::CanEmbedTypeface(portableTypeface, &canon)); +} -- cgit v1.2.3