Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright 2014 Google Inc. | 2 * Copyright 2014 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 "SkFontMgr.h" | 9 #include "SkFontMgr.h" |
| 10 #include "SkOSFile.h" | 10 #include "SkOSFile.h" |
| 11 #include "SkTestScalerContext.h" | 11 #include "SkTestScalerContext.h" |
| 12 #include "SkThread.h" | 12 #include "SkThread.h" |
| 13 #include "SkUtils.h" | 13 #include "SkUtils.h" |
| 14 #include "sk_tool_utils.h" | 14 #include "sk_tool_utils.h" |
| 15 | 15 |
| 16 namespace sk_tool_utils { | 16 namespace sk_tool_utils { |
| 17 | 17 |
| 18 #include "test_font_monospace.cpp" | 18 #include "test_font_monospace.cpp" |
| 19 #include "test_font_sans_serif.cpp" | 19 #include "test_font_sans_serif.cpp" |
| 20 #include "test_font_serif.cpp" | 20 #include "test_font_serif.cpp" |
| 21 #include "test_font_index.cpp" | 21 #include "test_font_index.cpp" |
| 22 | 22 |
| 23 static void release_portable_typefaces() { | 23 void release_portable_typefaces() { |
| 24 // We'll clean this up in our own tests, but disable for clients. | |
| 25 // Chrome seems to have funky multi-process things going on in unit tests th at | |
| 26 // makes this unsafe to delete when the main process atexit()s. | |
| 27 // SkLazyPtr does the same sort of thing. | |
| 28 #if SK_DEVELOPER | |
| 29 for (int index = 0; index < gTestFontsCount; ++index) { | 24 for (int index = 0; index < gTestFontsCount; ++index) { |
| 30 SkTestFontData& fontData = gTestFonts[index]; | 25 SkTestFontData& fontData = gTestFonts[index]; |
| 31 SkSafeUnref(fontData.fFontCache); | 26 SkSafeUnref(fontData.fFontCache); |
| 32 } | 27 } |
| 33 #endif | |
| 34 } | 28 } |
| 35 | 29 |
| 36 SK_DECLARE_STATIC_MUTEX(gTestFontMutex); | 30 SK_DECLARE_STATIC_MUTEX(gTestFontMutex); |
| 37 | 31 |
| 38 SkTypeface* create_font(const char* name, SkTypeface::Style style) { | 32 SkTypeface* create_font(const char* name, SkTypeface::Style style) { |
| 39 SkTestFontData* fontData = NULL; | 33 SkTestFontData* fontData = NULL; |
| 40 const SubFont* sub; | 34 const SubFont* sub; |
| 41 if (name) { | 35 if (name) { |
| 42 for (int index = 0; index < gSubFontsCount; ++index) { | 36 for (int index = 0; index < gSubFontsCount; ++index) { |
| 43 sub = &gSubFonts[index]; | 37 sub = &gSubFonts[index]; |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 62 SkTestFont* font; | 56 SkTestFont* font; |
| 63 { | 57 { |
| 64 SkAutoMutexAcquire ac(gTestFontMutex); | 58 SkAutoMutexAcquire ac(gTestFontMutex); |
| 65 if (fontData->fFontCache) { | 59 if (fontData->fFontCache) { |
| 66 font = SkSafeRef(fontData->fFontCache); | 60 font = SkSafeRef(fontData->fFontCache); |
| 67 } else { | 61 } else { |
| 68 font = SkNEW_ARGS(SkTestFont, (*fontData)); | 62 font = SkNEW_ARGS(SkTestFont, (*fontData)); |
| 69 SkDEBUGCODE(font->fDebugName = sub->fName); | 63 SkDEBUGCODE(font->fDebugName = sub->fName); |
| 70 SkDEBUGCODE(font->fDebugStyle = sub->fStyle); | 64 SkDEBUGCODE(font->fDebugStyle = sub->fStyle); |
| 71 fontData->fFontCache = SkSafeRef(font); | 65 fontData->fFontCache = SkSafeRef(font); |
| 72 atexit(release_portable_typefaces); | |
|
mtklein
2015/06/15 13:57:36
Ah, we called this for each portable typeface, but
| |
| 73 } | 66 } |
| 74 } | 67 } |
| 75 return SkNEW_ARGS(SkTestTypeface, (font, SkFontStyle(style))); | 68 return SkNEW_ARGS(SkTestTypeface, (font, SkFontStyle(style))); |
| 76 } | 69 } |
| 77 | 70 |
| 78 | 71 |
| 79 SkTypeface* resource_font(const char* name, SkTypeface::Style style) { | 72 SkTypeface* resource_font(const char* name, SkTypeface::Style style) { |
| 80 const char* file = NULL; | 73 const char* file = NULL; |
| 81 if (name) { | 74 if (name) { |
| 82 for (int index = 0; index < gSubFontsCount; ++index) { | 75 for (int index = 0; index < gSubFontsCount; ++index) { |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 178 break; | 171 break; |
| 179 } | 172 } |
| 180 } | 173 } |
| 181 fprintf(out, ";\n"); | 174 fprintf(out, ";\n"); |
| 182 } | 175 } |
| 183 fclose(out); | 176 fclose(out); |
| 184 } | 177 } |
| 185 #endif | 178 #endif |
| 186 | 179 |
| 187 } | 180 } |
| OLD | NEW |