From 4b2af9c91d39c2176a32e7ba42a0276dca68034a Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Tue, 31 Jul 2012 17:24:44 +0000 Subject: add getUnitsPerEm() to SkTypeface git-svn-id: http://skia.googlecode.com/svn/trunk@4863 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/FontHostTest.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'tests/FontHostTest.cpp') diff --git a/tests/FontHostTest.cpp b/tests/FontHostTest.cpp index 260956fe57..fcdeaba1a5 100644 --- a/tests/FontHostTest.cpp +++ b/tests/FontHostTest.cpp @@ -8,6 +8,7 @@ #include "Test.h" #include "SkPaint.h" #include "SkTypeface.h" +#include "SkEndian.h" //#define DUMP_TABLES @@ -24,6 +25,21 @@ static const struct TagSize { { kFontTableTag_maxp, 32 }, }; +static void test_unitsPerEm(skiatest::Reporter* reporter, SkTypeface* face) { + int upem = face->getUnitsPerEm(); + REPORTER_ASSERT(reporter, upem > 0); + + size_t size = face->getTableSize(kFontTableTag_head); + if (size) { + SkAutoMalloc storage(size); + char* ptr = (char*)storage.get(); + face->getTableData(kFontTableTag_head, 0, size, ptr); + // unitsPerEm is at offset 18 into the 'head' table. + int upem2 = SkEndian_SwapBE16(*(uint16_t*)&ptr[18]); + REPORTER_ASSERT(reporter, upem2 == upem); + } +} + static void test_tables(skiatest::Reporter* reporter, SkTypeface* face) { SkFontID fontID = face->uniqueID(); if (false) { // avoid bit rot, suppress warning @@ -82,6 +98,7 @@ static void test_tables(skiatest::Reporter* reporter) { SkDebugf("%s\n", gNames[i]); #endif test_tables(reporter, face); + test_unitsPerEm(reporter, face); face->unref(); } } -- cgit v1.2.3