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

Side by Side Diff: src/ports/SkFontHost_android.cpp

Issue 12593013: remove SkFontHost::CreateScalerContext (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 9 months 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 | Annotate | Revision Log
« no previous file with comments | « src/ports/SkFontHost_FreeType_common.h ('k') | src/ports/SkFontHost_fontconfig.cpp » ('j') | 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 2006 The Android Open Source Project 2 * Copyright 2006 The Android Open Source Project
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 "SkFontHost.h" 8 #include "SkFontHost.h"
9 #include "SkFontHost_FreeType_common.h"
9 #include "SkFontDescriptor.h" 10 #include "SkFontDescriptor.h"
10 #include "SkGraphics.h" 11 #include "SkGraphics.h"
11 #include "SkDescriptor.h" 12 #include "SkDescriptor.h"
12 #include "SkPaint.h" 13 #include "SkPaint.h"
13 #include "SkString.h" 14 #include "SkString.h"
14 #include "SkStream.h" 15 #include "SkStream.h"
15 #include "SkThread.h" 16 #include "SkThread.h"
16 #include "SkTSearch.h" 17 #include "SkTSearch.h"
17 #include "SkTypeface_android.h" 18 #include "SkTypeface_android.h"
18 #include "FontHostConfiguration_android.h" 19 #include "FontHostConfiguration_android.h"
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 NameFamilyPair* pair = &list[i]; 274 NameFamilyPair* pair = &list[i];
274 if (pair->fFamily == emptyFamily) { 275 if (pair->fFamily == emptyFamily) {
275 pair->destruct(); 276 pair->destruct();
276 list.remove(i); 277 list.remove(i);
277 } 278 }
278 } 279 }
279 } 280 }
280 281
281 /////////////////////////////////////////////////////////////////////////////// 282 ///////////////////////////////////////////////////////////////////////////////
282 283
283 class FamilyTypeface : public SkTypeface { 284 class FamilyTypeface : public SkTypeface_FreeType {
284 public: 285 public:
285 FamilyTypeface(Style style, bool sysFont, SkTypeface* familyMember, 286 FamilyTypeface(Style style, bool sysFont, SkTypeface* familyMember,
286 bool isFixedWidth) 287 bool isFixedWidth)
287 : SkTypeface(style, sk_atomic_inc(&gUniqueFontID) + 1, isFixedWidth) { 288 : INHERITED(style, sk_atomic_inc(&gUniqueFontID) + 1, isFixedWidth) {
288 fIsSysFont = sysFont; 289 fIsSysFont = sysFont;
289 290
290 // our caller has acquired the gFamilyHeadAndNameListMutex so this is sa fe 291 // our caller has acquired the gFamilyHeadAndNameListMutex so this is sa fe
291 FamilyRec* rec = NULL; 292 FamilyRec* rec = NULL;
292 if (familyMember) { 293 if (familyMember) {
293 rec = find_family(familyMember); 294 rec = find_family(familyMember);
294 SkASSERT(rec); 295 SkASSERT(rec);
295 } else { 296 } else {
296 rec = SkNEW(FamilyRec); 297 rec = SkNEW(FamilyRec);
297 } 298 }
(...skipping 14 matching lines...) Expand all
312 313
313 bool isSysFont() const { return fIsSysFont; } 314 bool isSysFont() const { return fIsSysFont; }
314 315
315 virtual SkStream* openStream() = 0; 316 virtual SkStream* openStream() = 0;
316 virtual const char* getUniqueString() const = 0; 317 virtual const char* getUniqueString() const = 0;
317 virtual const char* getFilePath() const = 0; 318 virtual const char* getFilePath() const = 0;
318 319
319 private: 320 private:
320 bool fIsSysFont; 321 bool fIsSysFont;
321 322
322 typedef SkTypeface INHERITED; 323 typedef SkTypeface_FreeType INHERITED;
323 }; 324 };
324 325
325 /////////////////////////////////////////////////////////////////////////////// 326 ///////////////////////////////////////////////////////////////////////////////
326 327
327 class StreamTypeface : public FamilyTypeface { 328 class StreamTypeface : public FamilyTypeface {
328 public: 329 public:
329 StreamTypeface(Style style, bool sysFont, SkTypeface* familyMember, 330 StreamTypeface(Style style, bool sysFont, SkTypeface* familyMember,
330 SkStream* stream, bool isFixedWidth) 331 SkStream* stream, bool isFixedWidth)
331 : INHERITED(style, sysFont, familyMember, isFixedWidth) { 332 : INHERITED(style, sysFont, familyMember, isFixedWidth) {
332 SkASSERT(stream); 333 SkASSERT(stream);
(...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after
859 } 860 }
860 if (index) { 861 if (index) {
861 *index = 0; // we don't have collections (yet) 862 *index = 0; // we don't have collections (yet)
862 } 863 }
863 return size; 864 return size;
864 } else { 865 } else {
865 return 0; 866 return 0;
866 } 867 }
867 } 868 }
868 869
869 SkFontID SkFontHost::NextLogicalFont(SkFontID currFontID, SkFontID origFontID) { 870 SkTypeface* SkFontHost::NextLogicalTypeface(SkFontID currFontID, SkFontID origFo ntID) {
870 #if defined(SK_BUILD_FOR_ANDROID) && !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) 871 #if defined(SK_BUILD_FOR_ANDROID) && !defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
871 // Skia does not support font fallback for ndk applications in order to 872 // Skia does not support font fallback for ndk applications in order to
872 // enable clients such as WebKit to customize their font selection. 873 // enable clients such as WebKit to customize their font selection.
873 // Clients can use GetFallbackFamilyNameForChar() to get the fallback 874 // Clients can use GetFallbackFamilyNameForChar() to get the fallback
874 // font for individual characters. 875 // font for individual characters.
875 return 0; 876 return NULL;
876 #else 877 #else
877 SkAutoMutexAcquire ac(gFamilyHeadAndNameListMutex); 878 SkAutoMutexAcquire ac(gFamilyHeadAndNameListMutex);
878 879
879 load_system_fonts(); 880 load_system_fonts();
880 881
881 const SkTypeface* origTypeface = find_from_uniqueID(origFontID); 882 const SkTypeface* origTypeface = find_from_uniqueID(origFontID);
882 const SkTypeface* currTypeface = find_from_uniqueID(currFontID); 883 const SkTypeface* currTypeface = find_from_uniqueID(currFontID);
883 884
884 SkASSERT(origTypeface != 0); 885 SkASSERT(origTypeface != 0);
885 SkASSERT(currTypeface != 0); 886 SkASSERT(currTypeface != 0);
886 SkASSERT(gFallbackFonts); 887 SkASSERT(gFallbackFonts);
887 888
888 // Our fallback list always stores the id of the plain in each fallback 889 // Our fallback list always stores the id of the plain in each fallback
889 // family, so we transform currFontID to its plain equivalent. 890 // family, so we transform currFontID to its plain equivalent.
890 currFontID = find_typeface(currTypeface, SkTypeface::kNormal)->uniqueID(); 891 currFontID = find_typeface(currTypeface, SkTypeface::kNormal)->uniqueID();
891 892
892 /* First see if fontID is already one of our fallbacks. If so, return 893 /* First see if fontID is already one of our fallbacks. If so, return
893 its successor. If fontID is not in our list, then return the first one 894 its successor. If fontID is not in our list, then return the first one
894 in our list. Note: list is zero-terminated, and returning zero means 895 in our list. Note: list is zero-terminated, and returning zero means
895 we have no more fonts to use for fallbacks. 896 we have no more fonts to use for fallbacks.
896 */ 897 */
897 const uint32_t* list = gFallbackFonts; 898 const uint32_t* list = gFallbackFonts;
898 for (int i = 0; list[i] != 0; i++) { 899 for (int i = 0; list[i] != 0; i++) {
899 if (list[i] == currFontID) { 900 if (list[i] == currFontID) {
900 if (list[i+1] == 0) 901 if (list[i+1] == 0)
901 return 0; 902 return NULL;
902 const SkTypeface* nextTypeface = find_from_uniqueID(list[i+1]); 903 const SkTypeface* nextTypeface = find_from_uniqueID(list[i+1]);
903 return find_typeface(nextTypeface, origTypeface->style())->uniqueID( ); 904 return SkRef(find_typeface(nextTypeface, origTypeface->style()));
904 } 905 }
905 } 906 }
906 907
907 // If we get here, currFontID was not a fallback, so we start at the 908 // If we get here, currFontID was not a fallback, so we start at the
908 // beginning of our list. Assuming there is at least one fallback font, 909 // beginning of our list. Assuming there is at least one fallback font,
909 // i.e. gFallbackFonts[0] != 0. 910 // i.e. gFallbackFonts[0] != 0.
910 const SkTypeface* firstTypeface = find_from_uniqueID(list[0]); 911 const SkTypeface* firstTypeface = find_from_uniqueID(list[0]);
911 return find_typeface(firstTypeface, origTypeface->style())->uniqueID(); 912 return SkRef(find_typeface(firstTypeface, origTypeface->style()));
912 #endif 913 #endif
913 } 914 }
914 915
915 /////////////////////////////////////////////////////////////////////////////// 916 ///////////////////////////////////////////////////////////////////////////////
916 917
917 SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) { 918 SkTypeface* SkFontHost::CreateTypefaceFromStream(SkStream* stream) {
918 if (NULL == stream || stream->getLength() <= 0) { 919 if (NULL == stream || stream->getLength() <= 0) {
919 return NULL; 920 return NULL;
920 } 921 }
921 922
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
1121 const char* fontsdir) { 1122 const char* fontsdir) {
1122 gTestMainConfigFile = mainconf; 1123 gTestMainConfigFile = mainconf;
1123 gTestFallbackConfigFile = fallbackconf; 1124 gTestFallbackConfigFile = fallbackconf;
1124 gTestFontFilePrefix = fontsdir; 1125 gTestFontFilePrefix = fontsdir;
1125 SkASSERT(gTestMainConfigFile); 1126 SkASSERT(gTestMainConfigFile);
1126 SkASSERT(gTestFallbackConfigFile); 1127 SkASSERT(gTestFallbackConfigFile);
1127 SkASSERT(gTestFontFilePrefix); 1128 SkASSERT(gTestFontFilePrefix);
1128 SkDEBUGF(("Use Test Config File Main %s, Fallback %s, Font Dir %s", 1129 SkDEBUGF(("Use Test Config File Main %s, Fallback %s, Font Dir %s",
1129 gTestMainConfigFile, gTestFallbackConfigFile, gTestFontFilePrefix) ); 1130 gTestMainConfigFile, gTestFallbackConfigFile, gTestFontFilePrefix) );
1130 } 1131 }
OLDNEW
« no previous file with comments | « src/ports/SkFontHost_FreeType_common.h ('k') | src/ports/SkFontHost_fontconfig.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698