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

Side by Side Diff: tests/SerializationTest.cpp

Issue 692553002: Add a flag indicating locally-created fonts to SkCreateTypefaceFromCTFont (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 1 month 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 unified diff | Download patch
« src/ports/SkFontHost_mac.cpp ('K') | « src/ports/SkFontHost_mac.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2013 Google Inc. 2 * Copyright 2013 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "Resources.h" 8 #include "Resources.h"
9 #include "SkBitmapSource.h" 9 #include "SkBitmapSource.h"
10 #include "SkCanvas.h" 10 #include "SkCanvas.h"
11 #include "SkMallocPixelRef.h" 11 #include "SkMallocPixelRef.h"
12 #include "SkOSFile.h" 12 #include "SkOSFile.h"
13 #include "SkPictureRecorder.h" 13 #include "SkPictureRecorder.h"
14 #include "SkTableColorFilter.h" 14 #include "SkTableColorFilter.h"
15 #include "SkTemplates.h" 15 #include "SkTemplates.h"
16 #include "SkTypeface.h" 16 #include "SkTypeface.h"
17 #include "SkWriteBuffer.h" 17 #include "SkWriteBuffer.h"
18 #include "SkValidatingReadBuffer.h" 18 #include "SkValidatingReadBuffer.h"
19 #include "SkXfermodeImageFilter.h" 19 #include "SkXfermodeImageFilter.h"
20 #ifdef SK_BUILD_FOR_MAC
21 #include "SkTypeface_mac.h"
22 #endif
20 #include "Test.h" 23 #include "Test.h"
21 24
22 static const uint32_t kArraySize = 64; 25 static const uint32_t kArraySize = 64;
23 static const int kBitmapSize = 256; 26 static const int kBitmapSize = 256;
24 27
25 template<typename T> 28 template<typename T>
26 static void TestAlignment(T* testObj, skiatest::Reporter* reporter) { 29 static void TestAlignment(T* testObj, skiatest::Reporter* reporter) {
27 // Test memory read/write functions directly 30 // Test memory read/write functions directly
28 unsigned char dataWritten[1024]; 31 unsigned char dataWritten[1024];
29 size_t bytesWrittenToMemory = testObj->writeToMemory(dataWritten); 32 size_t bytesWrittenToMemory = testObj->writeToMemory(dataWritten);
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 int pixelErrors = 0; 312 int pixelErrors = 0;
310 for (int y = 0; y < b2.height(); ++y) { 313 for (int y = 0; y < b2.height(); ++y) {
311 for (int x = 0; x < b2.width(); ++x) { 314 for (int x = 0; x < b2.width(); ++x) {
312 if (b1.getColor(x, y) != b2.getColor(x, y)) 315 if (b1.getColor(x, y) != b2.getColor(x, y))
313 ++pixelErrors; 316 ++pixelErrors;
314 } 317 }
315 } 318 }
316 REPORTER_ASSERT(reporter, 0 == pixelErrors); 319 REPORTER_ASSERT(reporter, 0 == pixelErrors);
317 } 320 }
318 321
319 static void TestPictureTypefaceSerialization(skiatest::Reporter* reporter) { 322 static void TestPictureTypefaceSerialization(skiatest::Reporter* reporter, SkTyp eface* typeface) {
320 // Load typeface form file.
321 // This test cannot run if there is no resource path.
322 SkString resourcePath = GetResourcePath();
323 if (resourcePath.isEmpty()) {
324 SkDebugf("Could not run fontstream test because resourcePath not specifi ed.");
325 return;
326 }
327 SkString filename = SkOSPath::Join(resourcePath.c_str(), "test.ttc");
328 SkTypeface* typeface = SkTypeface::CreateFromFile(filename.c_str(), 1);
329 if (!typeface) {
330 SkDebugf("Could not run fontstream test because test.ttc not found.");
331 return;
332 }
333
334 // Create a paint with the typeface we loaded. 323 // Create a paint with the typeface we loaded.
335 SkPaint paint; 324 SkPaint paint;
336 paint.setColor(SK_ColorGRAY); 325 paint.setColor(SK_ColorGRAY);
337 paint.setTextSize(SkIntToScalar(30)); 326 paint.setTextSize(SkIntToScalar(30));
338 SkSafeUnref(paint.setTypeface(typeface)); 327 SkSafeUnref(paint.setTypeface(typeface));
339 328
340 // Paint some text. 329 // Paint some text.
341 SkPictureRecorder recorder; 330 SkPictureRecorder recorder;
342 SkIRect canvasRect = SkIRect::MakeWH(kBitmapSize, kBitmapSize); 331 SkIRect canvasRect = SkIRect::MakeWH(kBitmapSize, kBitmapSize);
343 SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(canvasRect.width()) , 332 SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(canvasRect.width()) ,
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after
520 SkAutoTMalloc<unsigned char> data(size); 509 SkAutoTMalloc<unsigned char> data(size);
521 writer.writeToMemory(static_cast<void*>(data.get())); 510 writer.writeToMemory(static_cast<void*>(data.get()));
522 511
523 // Deserialize picture 512 // Deserialize picture
524 SkValidatingReadBuffer reader(static_cast<void*>(data.get()), size); 513 SkValidatingReadBuffer reader(static_cast<void*>(data.get()), size);
525 SkAutoTUnref<SkPicture> readPict( 514 SkAutoTUnref<SkPicture> readPict(
526 SkPicture::CreateFromBuffer(reader)); 515 SkPicture::CreateFromBuffer(reader));
527 REPORTER_ASSERT(reporter, readPict.get()); 516 REPORTER_ASSERT(reporter, readPict.get());
528 } 517 }
529 518
530 TestPictureTypefaceSerialization(reporter); 519 {
520 // Load typeface form file.
521 // This test cannot run if there is no resource path.
522 SkString resourcePath = GetResourcePath();
523 if (resourcePath.isEmpty()) {
524 SkDebugf("Could not run fontstream test because resourcePath not spe cified.");
525 return;
526 }
527 SkString filename = SkOSPath::Join(resourcePath.c_str(), "test.ttc");
528 SkTypeface* typeface = SkTypeface::CreateFromFile(filename.c_str(), 1);
529 if (!typeface) {
530 SkDebugf("Could not run fontstream test because test.ttc not found." );
531 return;
532 }
533
534 TestPictureTypefaceSerialization(reporter, typeface);
535
536 #ifdef SK_BUILD_FOR_MAC
537 // Now do almost the same but use SkCreateTypefaceFromCTFont
538 CGDataProviderRef provider = CGDataProviderCreateWithFilename(filename.c _str());
539 CGFontRef cgFont = CGFontCreateWithDataProvider(provider);
540 if (NULL == cgFont) {
541 SkDebugf("Could not run fontstream test, CGFontCreateWithDataProvide r failed.");
542 return;
543 }
544 CTFontRef ctFont = CTFontCreateWithGraphicsFont(cgFont, 0, NULL, NULL);
545 typeface = SkCreateTypefaceFromCTFont(ctFont);
546 TestPictureTypefaceSerialization(reporter, typeface);
547 CFRelease(cgFont);
548 CFRelease(provider);
549 #endif // SK_BUILD_FOR_MAC
550 }
531 } 551 }
OLDNEW
« src/ports/SkFontHost_mac.cpp ('K') | « src/ports/SkFontHost_mac.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698