1 diff -Nur mozilla.orig/gfx/idl/nsIFreeType2.idl mozilla/gfx/idl/nsIFreeType2.idl
2 --- mozilla.orig/gfx/idl/nsIFreeType2.idl 2004-04-16 03:09:33.000000000 +0200
3 +++ mozilla/gfx/idl/nsIFreeType2.idl 2004-08-17 14:31:23.000000000 +0200
5 native FT_Sfnt_Tag(FT_Sfnt_Tag);
6 native FT_Size(FT_Size);
8 -[ptr] native FTC_Image_Desc_p(FTC_Image_Desc);
9 +[ptr] native FTC_ImageType_p(FTC_ImageType);
10 native FTC_Face_Requester(FTC_Face_Requester);
11 native FTC_Font(FTC_Font);
12 -native FTC_Image_Cache(FTC_Image_Cache);
13 +native FTC_FaceID(FTC_FaceID);
14 +native FTC_ImageCache(FTC_ImageCache);
15 native FTC_Manager(FTC_Manager);
20 readonly attribute FT_Library library;
21 readonly attribute FTC_Manager FTCacheManager;
22 - readonly attribute FTC_Image_Cache ImageCache;
23 + readonly attribute FTC_ImageCache ImageCache;
25 void doneFace(in FT_Face face);
26 void doneFreeType(in FT_Library lib);
28 void outlineDecompose(in FT_Outline_p outline,
29 in const_FT_Outline_Funcs_p funcs, in voidPtr p);
30 void setCharmap(in FT_Face face, in FT_CharMap charmap);
31 - void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc,
32 + void imageCacheLookup(in FTC_ImageCache cache, in FTC_ImageType_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 managerLookupFace(in FTC_Manager manager, in FTC_FaceID face_id,
38 void managerDone(in FTC_Manager manager);
39 void managerNew(in FT_Library lib, in FT_UInt max_faces,
40 in FT_UInt max_sizes, in FT_ULong max_bytes,
41 in FTC_Face_Requester requester, in FT_Pointer req_data,
42 out FTC_Manager manager);
43 - void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache);
44 + void imageCacheNew(in FTC_Manager manager, out FTC_ImageCache cache);
46 void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix,
47 in FT_Vector_p delta);
48 diff -Nur mozilla.orig/gfx/src/freetype/nsFreeType.cpp mozilla/gfx/src/freetype/nsFreeType.cpp
49 --- mozilla.orig/gfx/src/freetype/nsFreeType.cpp 2004-02-07 16:22:30.000000000 +0100
50 +++ mozilla/gfx/src/freetype/nsFreeType.cpp 2004-08-17 14:31:23.000000000 +0200
52 {"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE},
53 {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE},
54 {"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE},
55 - {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE},
56 - {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE},
57 + {"FTC_ImageCache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE},
58 + {"FTC_Manager_LookupFace", NS_FT2_OFFSET(nsFTC_Manager_LookupFace), PR_TRUE},
59 {"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE},
60 {"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE},
61 - {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE},
62 + {"FTC_ImageCache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE},
64 {"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE},
65 {"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE},
70 -nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc,
71 +nsFreeType2::ImageCacheLookup(FTC_ImageCache cache, FTC_ImageType *desc,
72 FT_UInt glyphID, FT_Glyph *glyph)
74 // call the FreeType2 function via the function pointer
79 -nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font,
80 - FT_Face *face, FT_Size *size)
81 +nsFreeType2::ManagerLookupFace(FTC_Manager manager, FTC_FaceID face_id,
84 // call the FreeType2 function via the function pointer
85 - FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size);
86 + FT_Error error = nsFTC_Manager_LookupFace(manager, face_id, face);
87 return error ? NS_ERROR_FAILURE : NS_OK;
94 -nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache)
95 +nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_ImageCache *cache)
97 // call the FreeType2 function via the function pointer
98 FT_Error error = nsFTC_Image_Cache_New(manager, cache);
103 -nsFreeType2::GetImageCache(FTC_Image_Cache *aCache)
104 +nsFreeType2::GetImageCache(FTC_ImageCache *aCache)
106 *aCache = mImageCache;
108 diff -Nur mozilla.orig/gfx/src/freetype/nsFreeType.h mozilla/gfx/src/freetype/nsFreeType.h
109 --- mozilla.orig/gfx/src/freetype/nsFreeType.h 2004-04-16 23:31:42.000000000 +0200
110 +++ mozilla/gfx/src/freetype/nsFreeType.h 2004-08-17 14:31:23.000000000 +0200
111 @@ -104,13 +104,13 @@
112 typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*);
113 typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap);
114 typedef FT_Error (*FTC_Image_Cache_Lookup_t)
115 - (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*);
116 -typedef FT_Error (*FTC_Manager_Lookup_Size_t)
117 - (FTC_Manager, FTC_Font, FT_Face*, FT_Size*);
118 + (FTC_ImageCache, FTC_ImageType*, FT_UInt, FT_Glyph*);
119 +typedef FT_Error (*FTC_Manager_LookupFace_t)
120 + (FTC_Manager, FTC_FaceID, FT_Face*);
121 typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager);
122 typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong,
123 FTC_Face_Requester, FT_Pointer, FTC_Manager*);
124 -typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*);
125 +typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_ImageCache*);
127 typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*);
128 typedef FT_Error (*FT_Get_Kerning_t)
130 FT_Outline_Decompose_t nsFT_Outline_Decompose;
131 FT_Set_Charmap_t nsFT_Set_Charmap;
132 FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup;
133 - FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size;
134 + FTC_Manager_LookupFace_t nsFTC_Manager_LookupFace;
135 FTC_Manager_Done_t nsFTC_Manager_Done;
136 FTC_Manager_New_t nsFTC_Manager_New;
137 FTC_Image_Cache_New_t nsFTC_Image_Cache_New;
139 PRLibrary *mSharedLib;
140 FT_Library mFreeTypeLibrary;
141 FTC_Manager mFTCacheManager;
142 - FTC_Image_Cache mImageCache;
143 + FTC_ImageCache mImageCache;
145 static nsHashtable *sFontFamilies;
146 static nsHashtable *sRange1CharSetNames;
147 diff -Nur mozilla.orig/gfx/src/ps/nsFontMetricsPS.cpp mozilla/gfx/src/ps/nsFontMetricsPS.cpp
148 --- mozilla.orig/gfx/src/ps/nsFontMetricsPS.cpp 2004-02-05 02:57:05.000000000 +0100
149 +++ mozilla/gfx/src/ps/nsFontMetricsPS.cpp 2004-08-17 14:31:23.000000000 +0200
150 @@ -1141,10 +1141,10 @@
152 mPixelSize = NSToIntRound(app2dev * mFont->size);
154 - mImageDesc.font.face_id = (void*)mEntry;
155 - mImageDesc.font.pix_width = mPixelSize;
156 - mImageDesc.font.pix_height = mPixelSize;
157 - mImageDesc.image_type = 0;
158 + mImageDesc->face_id = (FTC_FaceID)&mEntry;
159 + mImageDesc->width = mPixelSize;
160 + mImageDesc->height = mPixelSize;
161 + mImageDesc->flags = 0;
164 mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv);
165 @@ -1190,7 +1190,7 @@
169 - FTC_Image_Cache iCache;
170 + FTC_ImageCache iCache;
171 nsresult rv = mFt2->GetImageCache(&iCache);
173 NS_ERROR("Failed to get Image Cache");
174 @@ -1228,8 +1228,8 @@
176 FTC_Manager cManager;
177 mFt2->GetFTCacheManager(&cManager);
178 - nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
180 + nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
182 NS_ASSERTION(rv==0, "failed to get face/size");
185 @@ -1622,16 +1622,16 @@
186 mEntry->GetFamilyName(fontName);
187 mEntry->GetStyleName(styleName);
189 - mImageDesc.font.face_id = (void*)mEntry;
190 + mImageDesc->face_id = (FTC_FaceID)&mEntry;
191 // TT glyph has no relation to size
192 - mImageDesc.font.pix_width = 16;
193 - mImageDesc.font.pix_height = 16;
194 - mImageDesc.image_type = 0;
195 + mImageDesc->width = 16;
196 + mImageDesc->height = 16;
197 + mImageDesc->flags = 0;
198 FT_Face face = nsnull;
199 FTC_Manager cManager;
200 mFt2->GetFTCacheManager(&cManager);
201 - nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
203 + nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
208 diff -Nur mozilla.orig/gfx/src/ps/nsFontMetricsPS.h mozilla/gfx/src/ps/nsFontMetricsPS.h
209 --- mozilla.orig/gfx/src/ps/nsFontMetricsPS.h 2003-04-22 18:25:09.000000000 +0200
210 +++ mozilla/gfx/src/ps/nsFontMetricsPS.h 2004-08-17 14:31:23.000000000 +0200
212 nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID;
213 nsCOMPtr<nsIFreeType2> mFt2;
215 - FTC_Image_Desc mImageDesc;
216 + FTC_ImageType mImageDesc;
219 static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont,
222 nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry;
223 nsCOMPtr<nsIFreeType2> mFt2;
224 - FTC_Image_Desc mImageDesc;
225 + FTC_ImageType mImageDesc;
229 diff -Nur mozilla.orig/gfx/src/x11shared/nsFontFreeType.cpp mozilla/gfx/src/x11shared/nsFontFreeType.cpp
230 --- mozilla.orig/gfx/src/x11shared/nsFontFreeType.cpp 2003-12-25 09:24:52.000000000 +0100
231 +++ mozilla/gfx/src/x11shared/nsFontFreeType.cpp 2004-08-17 14:31:23.000000000 +0200
235 mFt2->GetFTCacheManager(&mgr);
236 - rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull);
237 + rv = mFt2->ManagerLookupFace(mgr, mImageDesc->face_id, &face);
238 NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size");
241 @@ -191,22 +191,15 @@
242 PRBool embedded_bimap = PR_FALSE;
244 mPixelSize = aPixelSize;
245 - mImageDesc.font.face_id = (void*)mFaceID;
246 - mImageDesc.font.pix_width = aPixelSize;
247 - mImageDesc.font.pix_height = aPixelSize;
248 - mImageDesc.image_type = 0;
249 + mImageDesc->face_id = (FTC_FaceID)&mFaceID;
250 + mImageDesc->width = aPixelSize;
251 + mImageDesc->height = aPixelSize;
252 + mImageDesc->flags = 0;
254 if (aPixelSize < nsFreeType2::gAntiAliasMinimum) {
255 - mImageDesc.image_type |= ftc_image_mono;
256 anti_alias = PR_FALSE;
259 - if (nsFreeType2::gFreeType2Autohinted)
260 - mImageDesc.image_type |= ftc_image_flag_autohinted;
262 - if (nsFreeType2::gFreeType2Unhinted)
263 - mImageDesc.image_type |= ftc_image_flag_unhinted;
265 PRUint32 num_embedded_bitmaps, i;
266 PRInt32* embedded_bitmapheights;
267 mFaceID->GetEmbeddedBitmapHeights(&num_embedded_bitmaps,
269 if (embedded_bitmapheights[i] == aPixelSize) {
270 embedded_bimap = PR_TRUE;
271 // unhinted must be set for embedded bitmaps to be used
272 - mImageDesc.image_type |= ftc_image_flag_unhinted;
278 return NS_ERROR_FAILURE;
280 - FTC_Image_Cache icache;
281 + FTC_ImageCache icache;
282 mFt2->GetImageCache(&icache);
284 return NS_ERROR_FAILURE;
289 - FTC_Image_Cache icache;
290 + FTC_ImageCache icache;
291 mFt2->GetImageCache(&icache);
295 if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2);
298 - FTC_Image_Cache icache;
299 + FTC_ImageCache icache;
300 mFt2->GetImageCache(&icache);
303 diff -Nur mozilla.orig/gfx/src/x11shared/nsFontFreeType.h mozilla/gfx/src/x11shared/nsFontFreeType.h
304 --- mozilla.orig/gfx/src/x11shared/nsFontFreeType.h 2003-04-22 18:25:13.000000000 +0200
305 +++ mozilla/gfx/src/x11shared/nsFontFreeType.h 2004-08-17 14:31:23.000000000 +0200
307 XImage *GetXImage(PRUint32 width, PRUint32 height);
308 nsITrueTypeFontCatalogEntry *mFaceID;
310 - FTC_Image_Desc mImageDesc;
311 + FTC_ImageType mImageDesc;
312 nsCOMPtr<nsIFreeType2> mFt2;