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

Side by Side Diff: trunk/include/core/SkFontHost.h

Issue 12739006: move most of SkFontHost to private (preceeding making it all private) (Closed) Base URL: http://skia.googlecode.com/svn/
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 | « no previous file | trunk/include/core/SkTypeface.h » ('j') | trunk/src/pdf/SkPDFFont.cpp » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkFontHost_DEFINED 10 #ifndef SkFontHost_DEFINED
(...skipping 30 matching lines...) Expand all
41 references the closest matching font available on the host system. 41 references the closest matching font available on the host system.
42 2) Given the data for a font (either in a stream or a file name), return 42 2) Given the data for a font (either in a stream or a file name), return
43 a typeface that allows access to that data. 43 a typeface that allows access to that data.
44 3) Each typeface instance carries a 32bit ID for its corresponding font. 44 3) Each typeface instance carries a 32bit ID for its corresponding font.
45 SkFontHost turns that ID into a stream to access the font's data. 45 SkFontHost turns that ID into a stream to access the font's data.
46 4) Given a font ID, return a subclass of SkScalerContext, which connects a 46 4) Given a font ID, return a subclass of SkScalerContext, which connects a
47 font scaler (e.g. freetype or other) to the font's data. 47 font scaler (e.g. freetype or other) to the font's data.
48 5) Utilites to manage the font cache (budgeting) and gamma correction 48 5) Utilites to manage the font cache (budgeting) and gamma correction
49 */ 49 */
50 class SK_API SkFontHost { 50 class SK_API SkFontHost {
51 public: 51 private:
52 /** Return a new, closest matching typeface given either an existing family 52 /** Return a new, closest matching typeface given either an existing family
53 (specified by a typeface in that family) or by a familyName and a 53 (specified by a typeface in that family) or by a familyName and a
54 requested style. 54 requested style.
55 1) If familyFace is null, use familyName. 55 1) If familyFace is null, use familyName.
56 2) If familyName is null, use data (UTF-16 to cover). 56 2) If familyName is null, use data (UTF-16 to cover).
57 3) If all are null, return the default font that best matches style 57 3) If all are null, return the default font that best matches style
58 */ 58 */
59 static SkTypeface* CreateTypeface(const SkTypeface* familyFace, 59 static SkTypeface* CreateTypeface(const SkTypeface* familyFace,
60 const char familyName[], 60 const char familyName[],
61 SkTypeface::Style style); 61 SkTypeface::Style style);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 128
129 /** Given a stream created by Serialize(), return a new typeface (like 129 /** Given a stream created by Serialize(), return a new typeface (like
130 CreateTypeface) which is either an exact match to the one serialized 130 CreateTypeface) which is either an exact match to the one serialized
131 or the best available typeface based on the data in the deserialized 131 or the best available typeface based on the data in the deserialized
132 SkFontDescriptor. 132 SkFontDescriptor.
133 */ 133 */
134 static SkTypeface* Deserialize(SkStream*); 134 static SkTypeface* Deserialize(SkStream*);
135 135
136 /////////////////////////////////////////////////////////////////////////// 136 ///////////////////////////////////////////////////////////////////////////
137 137
138 public:
138 /** Return a subclass of SkScalarContext 139 /** Return a subclass of SkScalarContext
139 */ 140 */
140 static SkScalerContext* CreateScalerContext(const SkDescriptor* desc); 141 static SkScalerContext* CreateScalerContext(const SkDescriptor* desc);
141 142
142 /** 143 /**
143 * Given a "current" fontID, return the next logical fontID to use 144 * Given a "current" fontID, return the next logical fontID to use
144 * when searching fonts for a given unicode value. Typically the caller 145 * when searching fonts for a given unicode value. Typically the caller
145 * will query a given font, and if a unicode value is not supported, they 146 * will query a given font, and if a unicode value is not supported, they
146 * will call this, and if 0 is not returned, will search that font, and so 147 * will call this, and if 0 is not returned, will search that font, and so
147 * on. This process must be finite, and when the fonthost sees a 148 * on. This process must be finite, and when the fonthost sees a
148 * font with no logical successor, it must return 0. 149 * font with no logical successor, it must return 0.
149 * 150 *
150 * The original fontID is also provided. This is the initial font that was 151 * The original fontID is also provided. This is the initial font that was
151 * stored in the typeface of the caller. It is provided as an aid to choose 152 * stored in the typeface of the caller. It is provided as an aid to choose
152 * the best next logical font. e.g. If the original font was bold or serif, 153 * the best next logical font. e.g. If the original font was bold or serif,
153 * but the 2nd in the logical chain was plain, then a subsequent call to 154 * but the 2nd in the logical chain was plain, then a subsequent call to
154 * get the 3rd can still inspect the original, and try to match its 155 * get the 3rd can still inspect the original, and try to match its
155 * stylistic attributes. 156 * stylistic attributes.
156 */ 157 */
157 static SkFontID NextLogicalFont(SkFontID currFontID, SkFontID origFontID); 158 static SkFontID NextLogicalFont(SkFontID currFontID, SkFontID origFontID);
159 private:
158 160
159 /////////////////////////////////////////////////////////////////////////// 161 ///////////////////////////////////////////////////////////////////////////
160 162
161 /** Given a filled-out rec, the fonthost may decide to modify it to reflect 163 /** Given a filled-out rec, the fonthost may decide to modify it to reflect
162 what the host is actually capable of fulfilling. For example, if the 164 what the host is actually capable of fulfilling. For example, if the
163 rec is requesting a level of hinting that, for this host, maps some 165 rec is requesting a level of hinting that, for this host, maps some
164 other level (e.g. kFull -> kNormal), it should update the rec to reflect 166 other level (e.g. kFull -> kNormal), it should update the rec to reflect
165 what will actually be done. This is an optimization so that the font 167 what will actually be done. This is an optimization so that the font
166 cache does not contain different recs (i.e. keys) that in reality map to 168 cache does not contain different recs (i.e. keys) that in reality map to
167 the same output. 169 the same output.
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 @return the number of bytes actually copied into data. If offset+length 224 @return the number of bytes actually copied into data. If offset+length
223 exceeds the table's size, then only the bytes up to the table's 225 exceeds the table's size, then only the bytes up to the table's
224 size are actually copied, and this is the value returned. If 226 size are actually copied, and this is the value returned. If
225 offset > the table's size, or tag is not a valid table, 227 offset > the table's size, or tag is not a valid table,
226 then 0 is returned. 228 then 0 is returned.
227 */ 229 */
228 static size_t GetTableData(SkFontID fontID, SkFontTableTag tag, 230 static size_t GetTableData(SkFontID fontID, SkFontTableTag tag,
229 size_t offset, size_t length, void* data); 231 size_t offset, size_t length, void* data);
230 232
231 /////////////////////////////////////////////////////////////////////////// 233 ///////////////////////////////////////////////////////////////////////////
234 public:
232 235
233 /** LCDs either have their color elements arranged horizontally or 236 /** LCDs either have their color elements arranged horizontally or
234 vertically. When rendering subpixel glyphs we need to know which way 237 vertically. When rendering subpixel glyphs we need to know which way
235 round they are. 238 round they are.
236 239
237 Note, if you change this after startup, you'll need to flush the glyph 240 Note, if you change this after startup, you'll need to flush the glyph
238 cache because it'll have the wrong type of masks cached. 241 cache because it'll have the wrong type of masks cached.
239 242
240 @deprecated use SkPixelGeometry instead. 243 @deprecated use SkPixelGeometry instead.
241 */ 244 */
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
284 static uint32_t GetUnitsPerEm(SkFontID fontID); 287 static uint32_t GetUnitsPerEm(SkFontID fontID);
285 #endif 288 #endif
286 289
287 /** If Skia is running in a constrained environment and the typeface 290 /** If Skia is running in a constrained environment and the typeface
288 implementation is handle based, the typeface data may become 291 implementation is handle based, the typeface data may become
289 unavailable asynchronously. If a font host or scaler context method is 292 unavailable asynchronously. If a font host or scaler context method is
290 unable to access font data, it may call this function as a request to 293 unable to access font data, it may call this function as a request to
291 make the handle contained in the typeface useable. 294 make the handle contained in the typeface useable.
292 */ 295 */
293 static void EnsureTypefaceAccessible(const SkTypeface& typeface); 296 static void EnsureTypefaceAccessible(const SkTypeface& typeface);
297
298 private:
299 friend class SkTypeface;
294 }; 300 };
295 301
296 #endif 302 #endif
OLDNEW
« no previous file with comments | « no previous file | trunk/include/core/SkTypeface.h » ('j') | trunk/src/pdf/SkPDFFont.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698