1 |
--- gfx/idl/nsIFreeType2.idl.234035 2004-04-16 03:09:33.000000000 +0200 |
2 |
+++ gfx/idl/nsIFreeType2.idl 2005-04-30 17:14:23.000000000 +0200 |
3 |
@@ -76,11 +76,13 @@ |
4 |
native FT_Sfnt_Tag(FT_Sfnt_Tag); |
5 |
native FT_Size(FT_Size); |
6 |
|
7 |
-[ptr] native FTC_Image_Desc_p(FTC_Image_Desc); |
8 |
+native FTC_ImageType(FTC_ImageType); |
9 |
native FTC_Face_Requester(FTC_Face_Requester); |
10 |
native FTC_Font(FTC_Font); |
11 |
-native FTC_Image_Cache(FTC_Image_Cache); |
12 |
+native FTC_ImageCache(FTC_ImageCache); |
13 |
native FTC_Manager(FTC_Manager); |
14 |
+native FTC_Node(FTC_Node); |
15 |
+native FTC_Scaler(FTC_Scaler); |
16 |
|
17 |
// #ifdef MOZ_SVG |
18 |
[ptr] native FT_Matrix_p(FT_Matrix); |
19 |
@@ -99,7 +101,7 @@ |
20 |
|
21 |
readonly attribute FT_Library library; |
22 |
readonly attribute FTC_Manager FTCacheManager; |
23 |
- readonly attribute FTC_Image_Cache ImageCache; |
24 |
+ readonly attribute FTC_ImageCache ImageCache; |
25 |
|
26 |
void doneFace(in FT_Face face); |
27 |
void doneFreeType(in FT_Library lib); |
28 |
@@ -115,16 +117,17 @@ |
29 |
void outlineDecompose(in FT_Outline_p outline, |
30 |
in const_FT_Outline_Funcs_p funcs, in voidPtr p); |
31 |
void setCharmap(in FT_Face face, in FT_CharMap charmap); |
32 |
- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc, |
33 |
- in FT_UInt gindex, out FT_Glyph glyph); |
34 |
- void managerLookupSize(in FTC_Manager manager, in FTC_Font font, |
35 |
- out FT_Face face, out FT_Size size); |
36 |
+ void imageCacheLookup(in FTC_ImageCache cache, in FTC_ImageType type, |
37 |
+ in FT_UInt gindex, out FT_Glyph glyph, |
38 |
+ out FTC_Node node); |
39 |
+ void managerLookupSize(in FTC_Manager manager, in FTC_Scaler scaler, |
40 |
+ out FT_Size size); |
41 |
void managerDone(in FTC_Manager manager); |
42 |
void managerNew(in FT_Library lib, in FT_UInt max_faces, |
43 |
in FT_UInt max_sizes, in FT_ULong max_bytes, |
44 |
in FTC_Face_Requester requester, in FT_Pointer req_data, |
45 |
out FTC_Manager manager); |
46 |
- void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache); |
47 |
+ void imageCacheNew(in FTC_Manager manager, out FTC_ImageCache cache); |
48 |
/* #ifdef MOZ_SVG */ |
49 |
void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix, |
50 |
in FT_Vector_p delta); |
51 |
--- gfx/src/freetype/nsFreeType.cpp.234035 2004-02-07 16:22:30.000000000 +0100 |
52 |
+++ gfx/src/freetype/nsFreeType.cpp 2005-04-30 17:14:23.000000000 +0200 |
53 |
@@ -110,11 +110,11 @@ |
54 |
{"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE}, |
55 |
{"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE}, |
56 |
{"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE}, |
57 |
- {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE}, |
58 |
- {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE}, |
59 |
+ {"FTC_ImageCache_Lookup", NS_FT2_OFFSET(nsFTC_ImageCache_Lookup), PR_TRUE}, |
60 |
+ {"FTC_Manager_LookupSize", NS_FT2_OFFSET(nsFTC_Manager_LookupSize), PR_TRUE}, |
61 |
{"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE}, |
62 |
{"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE}, |
63 |
- {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE}, |
64 |
+ {"FTC_ImageCache_New", NS_FT2_OFFSET(nsFTC_ImageCache_New), PR_TRUE}, |
65 |
// #ifdef MOZ_SVG |
66 |
{"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE}, |
67 |
{"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE}, |
68 |
@@ -282,20 +282,21 @@ |
69 |
} |
70 |
|
71 |
NS_IMETHODIMP |
72 |
-nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc, |
73 |
- FT_UInt glyphID, FT_Glyph *glyph) |
74 |
+nsFreeType2::ImageCacheLookup(FTC_ImageCache cache, FTC_ImageType type, |
75 |
+ FT_UInt glyphID, FT_Glyph *glyph, |
76 |
+ FTC_Node *node) |
77 |
{ |
78 |
// call the FreeType2 function via the function pointer |
79 |
- FT_Error error = nsFTC_Image_Cache_Lookup(cache, desc, glyphID, glyph); |
80 |
+ FT_Error error = nsFTC_ImageCache_Lookup(cache, type, glyphID, glyph, node); |
81 |
return error ? NS_ERROR_FAILURE : NS_OK; |
82 |
} |
83 |
|
84 |
NS_IMETHODIMP |
85 |
-nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font, |
86 |
- FT_Face *face, FT_Size *size) |
87 |
+nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Scaler scaler, |
88 |
+ FT_Size *size) |
89 |
{ |
90 |
// call the FreeType2 function via the function pointer |
91 |
- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size); |
92 |
+ FT_Error error = nsFTC_Manager_LookupSize(manager, scaler, size); |
93 |
return error ? NS_ERROR_FAILURE : NS_OK; |
94 |
} |
95 |
|
96 |
@@ -320,10 +321,10 @@ |
97 |
} |
98 |
|
99 |
NS_IMETHODIMP |
100 |
-nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) |
101 |
+nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_ImageCache *cache) |
102 |
{ |
103 |
// call the FreeType2 function via the function pointer |
104 |
- FT_Error error = nsFTC_Image_Cache_New(manager, cache); |
105 |
+ FT_Error error = nsFTC_ImageCache_New(manager, cache); |
106 |
return error ? NS_ERROR_FAILURE : NS_OK; |
107 |
} |
108 |
|
109 |
@@ -389,7 +390,7 @@ |
110 |
} |
111 |
|
112 |
NS_IMETHODIMP |
113 |
-nsFreeType2::GetImageCache(FTC_Image_Cache *aCache) |
114 |
+nsFreeType2::GetImageCache(FTC_ImageCache *aCache) |
115 |
{ |
116 |
*aCache = mImageCache; |
117 |
return NS_OK; |
118 |
--- gfx/src/freetype/nsFreeType.h.234035 2004-04-16 23:31:42.000000000 +0200 |
119 |
+++ gfx/src/freetype/nsFreeType.h 2005-04-30 17:14:23.000000000 +0200 |
120 |
@@ -103,14 +103,15 @@ |
121 |
(FT_Outline*, const FT_Outline_Funcs*, void*); |
122 |
typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*); |
123 |
typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap); |
124 |
-typedef FT_Error (*FTC_Image_Cache_Lookup_t) |
125 |
- (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*); |
126 |
-typedef FT_Error (*FTC_Manager_Lookup_Size_t) |
127 |
- (FTC_Manager, FTC_Font, FT_Face*, FT_Size*); |
128 |
+typedef FT_Error (*FTC_ImageCache_Lookup_t) |
129 |
+ (FTC_ImageCache, FTC_ImageType, FT_UInt, FT_Glyph*, |
130 |
+ FTC_Node*); |
131 |
+typedef FT_Error (*FTC_Manager_LookupSize_t) |
132 |
+ (FTC_Manager, FTC_Scaler, FT_Size*); |
133 |
typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager); |
134 |
typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong, |
135 |
FTC_Face_Requester, FT_Pointer, FTC_Manager*); |
136 |
-typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*); |
137 |
+typedef FT_Error (*FTC_ImageCache_New_t)(FTC_Manager, FTC_ImageCache*); |
138 |
// #ifdef MOZ_SVG |
139 |
typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*); |
140 |
typedef FT_Error (*FT_Get_Kerning_t) |
141 |
@@ -164,11 +165,11 @@ |
142 |
FT_New_Face_t nsFT_New_Face; |
143 |
FT_Outline_Decompose_t nsFT_Outline_Decompose; |
144 |
FT_Set_Charmap_t nsFT_Set_Charmap; |
145 |
- FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup; |
146 |
- FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size; |
147 |
+ FTC_ImageCache_Lookup_t nsFTC_ImageCache_Lookup; |
148 |
+ FTC_Manager_LookupSize_t nsFTC_Manager_LookupSize; |
149 |
FTC_Manager_Done_t nsFTC_Manager_Done; |
150 |
FTC_Manager_New_t nsFTC_Manager_New; |
151 |
- FTC_Image_Cache_New_t nsFTC_Image_Cache_New; |
152 |
+ FTC_ImageCache_New_t nsFTC_ImageCache_New; |
153 |
// #ifdef MOZ_SVG |
154 |
FT_Glyph_Transform_t nsFT_Glyph_Transform; |
155 |
FT_Get_Kerning_t nsFT_Get_Kerning; |
156 |
@@ -213,7 +214,7 @@ |
157 |
PRLibrary *mSharedLib; |
158 |
FT_Library mFreeTypeLibrary; |
159 |
FTC_Manager mFTCacheManager; |
160 |
- FTC_Image_Cache mImageCache; |
161 |
+ FTC_ImageCache mImageCache; |
162 |
|
163 |
static nsHashtable *sFontFamilies; |
164 |
static nsHashtable *sRange1CharSetNames; |
165 |
--- gfx/src/ps/nsFontMetricsPS.cpp.234035 2004-02-05 02:57:05.000000000 +0100 |
166 |
+++ gfx/src/ps/nsFontMetricsPS.cpp 2005-04-30 17:14:23.000000000 +0200 |
167 |
@@ -1141,10 +1141,14 @@ |
168 |
|
169 |
mPixelSize = NSToIntRound(app2dev * mFont->size); |
170 |
|
171 |
- mImageDesc.font.face_id = (void*)mEntry; |
172 |
- mImageDesc.font.pix_width = mPixelSize; |
173 |
- mImageDesc.font.pix_height = mPixelSize; |
174 |
- mImageDesc.image_type = 0; |
175 |
+ mImageTypeRec.face_id = (FTC_FaceID)(void*)mEntry; |
176 |
+ mImageTypeRec.width = mPixelSize; |
177 |
+ mImageTypeRec.height = mPixelSize; |
178 |
+ mImageTypeRec.flags = FT_LOAD_DEFAULT; |
179 |
+ mScalerRec.face_id = (FTC_FaceID)(void*)mEntry; |
180 |
+ mScalerRec.width = mPixelSize; |
181 |
+ mScalerRec.height = mPixelSize; |
182 |
+ mScalerRec.pixel = PR_TRUE; |
183 |
|
184 |
nsresult rv; |
185 |
mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); |
186 |
@@ -1190,7 +1194,7 @@ |
187 |
if (!face) |
188 |
return 0; |
189 |
|
190 |
- FTC_Image_Cache iCache; |
191 |
+ FTC_ImageCache iCache; |
192 |
nsresult rv = mFt2->GetImageCache(&iCache); |
193 |
if (NS_FAILED(rv)) { |
194 |
NS_ERROR("Failed to get Image Cache"); |
195 |
@@ -1199,8 +1203,8 @@ |
196 |
|
197 |
for (PRUint32 i=0; i<aLength; i++) { |
198 |
mFt2->GetCharIndex((FT_Face)face, aString[i], &glyph_index); |
199 |
- nsresult rv = mFt2->ImageCacheLookup(iCache, &mImageDesc, |
200 |
- glyph_index, &glyph); |
201 |
+ nsresult rv = mFt2->ImageCacheLookup(iCache, &mImageTypeRec, |
202 |
+ glyph_index, &glyph, nsnull); |
203 |
if (NS_FAILED(rv)) { |
204 |
origin_x += FT_REG_TO_16_16(face->size->metrics.x_ppem/2 + 2); |
205 |
continue; |
206 |
@@ -1224,16 +1228,15 @@ |
207 |
FT_Face |
208 |
nsFontPSFreeType::getFTFace() |
209 |
{ |
210 |
- FT_Face face = nsnull; |
211 |
+ FT_Size size = nsnull; |
212 |
|
213 |
FTC_Manager cManager; |
214 |
mFt2->GetFTCacheManager(&cManager); |
215 |
- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, |
216 |
- &face, nsnull); |
217 |
+ nsresult rv = mFt2->ManagerLookupSize(cManager, &mScalerRec, &size); |
218 |
NS_ASSERTION(rv==0, "failed to get face/size"); |
219 |
if (rv) |
220 |
return nsnull; |
221 |
- return face; |
222 |
+ return size->face; |
223 |
} |
224 |
|
225 |
nscoord |
226 |
@@ -1622,22 +1625,21 @@ |
227 |
mEntry->GetFamilyName(fontName); |
228 |
mEntry->GetStyleName(styleName); |
229 |
|
230 |
- mImageDesc.font.face_id = (void*)mEntry; |
231 |
+ mScalerRec.face_id = (FTC_FaceID)(void*)mEntry; |
232 |
// TT glyph has no relation to size |
233 |
- mImageDesc.font.pix_width = 16; |
234 |
- mImageDesc.font.pix_height = 16; |
235 |
- mImageDesc.image_type = 0; |
236 |
- FT_Face face = nsnull; |
237 |
+ mScalerRec.width = 16; |
238 |
+ mScalerRec.height = 16; |
239 |
+ mScalerRec.pixel = PR_TRUE; |
240 |
+ FT_Size size = nsnull; |
241 |
FTC_Manager cManager; |
242 |
mFt2->GetFTCacheManager(&cManager); |
243 |
- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, |
244 |
- &face, nsnull); |
245 |
+ nsresult rv = mFt2->ManagerLookupSize(cManager, &mScalerRec, &size); |
246 |
if (NS_FAILED(rv)) |
247 |
return; |
248 |
|
249 |
int wmode = 0; |
250 |
if (!mSubset.IsEmpty()) |
251 |
- FT2SubsetToType8(face, mSubset.get(), mSubset.Length(), wmode, aFile); |
252 |
+ FT2SubsetToType8(size->face, mSubset.get(), mSubset.Length(), wmode, aFile); |
253 |
} |
254 |
#endif //MOZ_ENABLE_FREETYPE2 |
255 |
|
256 |
--- gfx/src/ps/nsFontMetricsPS.h.234035 2003-04-22 18:25:09.000000000 +0200 |
257 |
+++ gfx/src/ps/nsFontMetricsPS.h 2005-04-30 17:14:23.000000000 +0200 |
258 |
@@ -319,9 +319,9 @@ |
259 |
protected: |
260 |
nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID; |
261 |
nsCOMPtr<nsIFreeType2> mFt2; |
262 |
- PRUint16 mPixelSize; |
263 |
- FTC_Image_Desc mImageDesc; |
264 |
- |
265 |
+ PRUint16 mPixelSize; |
266 |
+ FTC_ImageTypeRec mImageTypeRec; |
267 |
+ FTC_ScalerRec mScalerRec; |
268 |
|
269 |
static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont, |
270 |
fontPSInfo *aFpi); |
271 |
@@ -363,7 +363,7 @@ |
272 |
protected: |
273 |
nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry; |
274 |
nsCOMPtr<nsIFreeType2> mFt2; |
275 |
- FTC_Image_Desc mImageDesc; |
276 |
+ FTC_ScalerRec mScalerRec; |
277 |
}; |
278 |
#endif |
279 |
|
280 |
--- gfx/src/x11shared/nsFontFreeType.cpp.234035 2003-12-25 09:24:52.000000000 +0100 |
281 |
+++ gfx/src/x11shared/nsFontFreeType.cpp 2005-04-30 17:14:23.000000000 +0200 |
282 |
@@ -173,15 +173,15 @@ |
283 |
FT_Face |
284 |
nsFreeTypeFont::getFTFace() |
285 |
{ |
286 |
- FT_Face face = nsnull; |
287 |
+ FT_Size size = nsnull; |
288 |
FTC_Manager mgr; |
289 |
nsresult rv; |
290 |
mFt2->GetFTCacheManager(&mgr); |
291 |
- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull); |
292 |
+ rv = mFt2->ManagerLookupSize(mgr, &mScalerRec, &size); |
293 |
NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size"); |
294 |
if (NS_FAILED(rv)) |
295 |
return nsnull; |
296 |
- return face; |
297 |
+ return size->face; |
298 |
} |
299 |
|
300 |
nsFreeTypeFont::nsFreeTypeFont(nsITrueTypeFontCatalogEntry *aFaceID, |
301 |
@@ -191,21 +191,25 @@ |
302 |
PRBool embedded_bimap = PR_FALSE; |
303 |
mFaceID = aFaceID; |
304 |
mPixelSize = aPixelSize; |
305 |
- mImageDesc.font.face_id = (void*)mFaceID; |
306 |
- mImageDesc.font.pix_width = aPixelSize; |
307 |
- mImageDesc.font.pix_height = aPixelSize; |
308 |
- mImageDesc.image_type = 0; |
309 |
- |
310 |
+ mImageTypeRec.face_id = (FTC_FaceID)(void*)mFaceID; |
311 |
+ mImageTypeRec.width = aPixelSize; |
312 |
+ mImageTypeRec.height = aPixelSize; |
313 |
+ mImageTypeRec.flags = FT_LOAD_DEFAULT | FT_LOAD_RENDER; |
314 |
+ mScalerRec.face_id = (FTC_FaceID)(void*)mFaceID; |
315 |
+ mScalerRec.width = aPixelSize; |
316 |
+ mScalerRec.height = aPixelSize; |
317 |
+ mScalerRec.pixel = PR_TRUE; |
318 |
+ |
319 |
if (aPixelSize < nsFreeType2::gAntiAliasMinimum) { |
320 |
- mImageDesc.image_type |= ftc_image_mono; |
321 |
+ mImageTypeRec.flags |= FT_LOAD_MONOCHROME; |
322 |
anti_alias = PR_FALSE; |
323 |
} |
324 |
|
325 |
if (nsFreeType2::gFreeType2Autohinted) |
326 |
- mImageDesc.image_type |= ftc_image_flag_autohinted; |
327 |
+ mImageTypeRec.flags |= FT_LOAD_FORCE_AUTOHINT; |
328 |
|
329 |
if (nsFreeType2::gFreeType2Unhinted) |
330 |
- mImageDesc.image_type |= ftc_image_flag_unhinted; |
331 |
+ mImageTypeRec.flags |= FT_LOAD_NO_HINTING; |
332 |
|
333 |
PRUint32 num_embedded_bitmaps, i; |
334 |
PRInt32* embedded_bitmapheights; |
335 |
@@ -218,7 +222,7 @@ |
336 |
if (embedded_bitmapheights[i] == aPixelSize) { |
337 |
embedded_bimap = PR_TRUE; |
338 |
// unhinted must be set for embedded bitmaps to be used |
339 |
- mImageDesc.image_type |= ftc_image_flag_unhinted; |
340 |
+ mImageTypeRec.flags |= FT_LOAD_NO_HINTING; |
341 |
break; |
342 |
} |
343 |
} |
344 |
@@ -312,7 +316,7 @@ |
345 |
if (!face) |
346 |
return NS_ERROR_FAILURE; |
347 |
|
348 |
- FTC_Image_Cache icache; |
349 |
+ FTC_ImageCache icache; |
350 |
mFt2->GetImageCache(&icache); |
351 |
if (!icache) |
352 |
return NS_ERROR_FAILURE; |
353 |
@@ -339,7 +343,8 @@ |
354 |
|
355 |
//NS_ASSERTION(glyph_index,"failed to get glyph"); |
356 |
if (glyph_index) { |
357 |
- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); |
358 |
+ rv = mFt2->ImageCacheLookup(icache, &mImageTypeRec, glyph_index, |
359 |
+ &glyph, nsnull); |
360 |
NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); |
361 |
} |
362 |
if ((glyph_index) && (NS_SUCCEEDED(rv))) { |
363 |
@@ -401,7 +406,7 @@ |
364 |
if (!face) |
365 |
return 0; |
366 |
|
367 |
- FTC_Image_Cache icache; |
368 |
+ FTC_ImageCache icache; |
369 |
mFt2->GetImageCache(&icache); |
370 |
if (!icache) |
371 |
return 0; |
372 |
@@ -420,7 +425,8 @@ |
373 |
} |
374 |
mFt2->GetCharIndex((FT_Face)face, code_point, &glyph_index); |
375 |
nsresult rv; |
376 |
- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); |
377 |
+ rv = mFt2->ImageCacheLookup(icache, &mImageTypeRec, glyph_index, &glyph, |
378 |
+ nsnull); |
379 |
NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); |
380 |
if (NS_FAILED(rv)) { |
381 |
origin_x += face->size->metrics.x_ppem/2 + 2; |
382 |
@@ -723,7 +729,7 @@ |
383 |
if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2); |
384 |
#endif |
385 |
|
386 |
- FTC_Image_Cache icache; |
387 |
+ FTC_ImageCache icache; |
388 |
mFt2->GetImageCache(&icache); |
389 |
if (!icache) |
390 |
return 0; |
391 |
@@ -752,7 +758,8 @@ |
392 |
|
393 |
mFt2->GetCharIndex(face, code_point, &glyph_index); |
394 |
if (glyph_index) { |
395 |
- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); |
396 |
+ rv = mFt2->ImageCacheLookup(icache, &mImageTypeRec, glyph_index, |
397 |
+ &glyph, nsnull); |
398 |
} |
399 |
if ((glyph_index) && (NS_SUCCEEDED(rv))) { |
400 |
mFt2->GlyphGetCBox(glyph, ft_glyph_bbox_pixels, &glyph_bbox); |
401 |
--- gfx/src/x11shared/nsFontFreeType.h.234035 2003-04-22 18:25:13.000000000 +0200 |
402 |
+++ gfx/src/x11shared/nsFontFreeType.h 2005-04-30 17:14:23.000000000 +0200 |
403 |
@@ -109,8 +109,9 @@ |
404 |
protected: |
405 |
XImage *GetXImage(PRUint32 width, PRUint32 height); |
406 |
nsITrueTypeFontCatalogEntry *mFaceID; |
407 |
- PRUint16 mPixelSize; |
408 |
- FTC_Image_Desc mImageDesc; |
409 |
+ PRUint16 mPixelSize; |
410 |
+ FTC_ImageTypeRec mImageTypeRec; |
411 |
+ FTC_ScalerRec mScalerRec; |
412 |
nsCOMPtr<nsIFreeType2> mFt2; |
413 |
}; |
414 |
|
415 |
--- layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp.234035 2004-03-19 02:36:16.000000000 +0100 |
416 |
+++ layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2005-04-30 17:14:23.000000000 +0200 |
417 |
@@ -440,19 +440,21 @@ |
418 |
return; |
419 |
} |
420 |
|
421 |
- FTC_Image_Desc imageDesc; |
422 |
- imageDesc.font.face_id=(void*)font_data.font_entry.get(); // XXX do we need to addref? |
423 |
+ FTC_ScalerRec scalerRec; |
424 |
+ scalerRec.face_id = (FTC_FaceID)(void*)font_data.font_entry.get(); // XXX do we need to addref? |
425 |
float twipstopixel = GetTwipsToPixels(); |
426 |
float scale = GetPixelScale(); |
427 |
- imageDesc.font.pix_width = (int)((float)(font_data.font.size)*twipstopixel/scale); |
428 |
- imageDesc.font.pix_height = (int)((float)(font_data.font.size)*twipstopixel/scale); |
429 |
- imageDesc.image_type |= ftc_image_grays; |
430 |
+ scalerRec.width = (int)((float)(font_data.font.size)*twipstopixel/scale); |
431 |
+ scalerRec.height = (int)((float)(font_data.font.size)*twipstopixel/scale); |
432 |
+ scalerRec.pixel = PR_TRUE; |
433 |
|
434 |
// get the face |
435 |
nsresult rv; |
436 |
FTC_Manager mgr; |
437 |
+ FT_Size size; |
438 |
nsSVGLibartFreetype::ft2->GetFTCacheManager(&mgr); |
439 |
- rv = nsSVGLibartFreetype::ft2->ManagerLookupSize(mgr, &imageDesc.font, &mFace, nsnull); |
440 |
+ rv = nsSVGLibartFreetype::ft2->ManagerLookupSize(mgr, &scalerRec, &size); |
441 |
+ mFace = (rv==0) ? size->face : nsnull; |
442 |
NS_ASSERTION(mFace, "failed to get face/size"); |
443 |
} |
444 |
|