1 Submitted By: Igor Zivkovic <igor@linuxfromscratch.org>
3 Initial Package Version: 0.8
4 Upstream Status: Submitted (http://bugzilla.mozilla.org/show_bug.cgi?id=234035).
5 Origin: Peter Kovar's 0.9 patch.
6 Description: Fixes compilation against freetype >= 2.1.8.
8 diff -Naur mozilla-orig/gfx/idl/nsIFreeType2.idl mozilla/gfx/idl/nsIFreeType2.idl
9 --- mozilla-orig/gfx/idl/nsIFreeType2.idl 2004-07-15 11:24:14.000000000 +0000
10 +++ mozilla/gfx/idl/nsIFreeType2.idl 2004-07-15 11:28:26.000000000 +0000
12 native FT_Sfnt_Tag(FT_Sfnt_Tag);
13 native FT_Size(FT_Size);
15 -[ptr] native FTC_Image_Desc_p(FTC_Image_Desc);
16 +[ptr] native FTC_ImageType_p(FTC_ImageType);
17 native FTC_Face_Requester(FTC_Face_Requester);
18 native FTC_Font(FTC_Font);
19 -native FTC_Image_Cache(FTC_Image_Cache);
20 +native FTC_FaceID(FTC_FaceID);
21 +native FTC_ImageCache(FTC_ImageCache);
22 native FTC_Manager(FTC_Manager);
27 readonly attribute FT_Library library;
28 readonly attribute FTC_Manager FTCacheManager;
29 - readonly attribute FTC_Image_Cache ImageCache;
30 + readonly attribute FTC_ImageCache ImageCache;
32 void doneFace(in FT_Face face);
33 void doneFreeType(in FT_Library lib);
35 void outlineDecompose(in FT_Outline_p outline,
36 in const_FT_Outline_Funcs_p funcs, in voidPtr p);
37 void setCharmap(in FT_Face face, in FT_CharMap charmap);
38 - void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc,
39 + void imageCacheLookup(in FTC_ImageCache cache, in FTC_ImageType_p desc,
40 in FT_UInt gindex, out FT_Glyph glyph);
41 - void managerLookupSize(in FTC_Manager manager, in FTC_Font font,
42 - out FT_Face face, out FT_Size size);
43 + void managerLookupFace(in FTC_Manager manager, in FTC_FaceID face_id,
45 void managerDone(in FTC_Manager manager);
46 void managerNew(in FT_Library lib, in FT_UInt max_faces,
47 in FT_UInt max_sizes, in FT_ULong max_bytes,
48 in FTC_Face_Requester requester, in FT_Pointer req_data,
49 out FTC_Manager manager);
50 - void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache);
51 + void imageCacheNew(in FTC_Manager manager, out FTC_ImageCache cache);
53 void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix,
54 in FT_Vector_p delta);
55 diff -Naur mozilla-orig/gfx/src/freetype/nsFreeType.cpp mozilla/gfx/src/freetype/nsFreeType.cpp
56 --- mozilla-orig/gfx/src/freetype/nsFreeType.cpp 2004-07-15 11:24:14.000000000 +0000
57 +++ mozilla/gfx/src/freetype/nsFreeType.cpp 2004-07-15 11:28:26.000000000 +0000
59 {"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE},
60 {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE},
61 {"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE},
62 - {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE},
63 - {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE},
64 + {"FTC_ImageCache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE},
65 + {"FTC_Manager_LookupFace", NS_FT2_OFFSET(nsFTC_Manager_LookupFace), PR_TRUE},
66 {"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE},
67 {"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE},
68 - {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE},
69 + {"FTC_ImageCache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE},
71 {"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE},
72 {"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE},
77 -nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc,
78 +nsFreeType2::ImageCacheLookup(FTC_ImageCache cache, FTC_ImageType *desc,
79 FT_UInt glyphID, FT_Glyph *glyph)
81 // call the FreeType2 function via the function pointer
86 -nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font,
87 - FT_Face *face, FT_Size *size)
88 +nsFreeType2::ManagerLookupFace(FTC_Manager manager, FTC_FaceID face_id,
91 // call the FreeType2 function via the function pointer
92 - FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size);
93 + FT_Error error = nsFTC_Manager_LookupFace(manager, face_id, face);
94 return error ? NS_ERROR_FAILURE : NS_OK;
101 -nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache)
102 +nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_ImageCache *cache)
104 // call the FreeType2 function via the function pointer
105 FT_Error error = nsFTC_Image_Cache_New(manager, cache);
110 -nsFreeType2::GetImageCache(FTC_Image_Cache *aCache)
111 +nsFreeType2::GetImageCache(FTC_ImageCache *aCache)
113 *aCache = mImageCache;
115 diff -Naur mozilla-orig/gfx/src/freetype/nsFreeType.h mozilla/gfx/src/freetype/nsFreeType.h
116 --- mozilla-orig/gfx/src/freetype/nsFreeType.h 2004-07-15 11:24:14.000000000 +0000
117 +++ mozilla/gfx/src/freetype/nsFreeType.h 2004-07-15 11:28:26.000000000 +0000
118 @@ -104,13 +104,13 @@
119 typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*);
120 typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap);
121 typedef FT_Error (*FTC_Image_Cache_Lookup_t)
122 - (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*);
123 -typedef FT_Error (*FTC_Manager_Lookup_Size_t)
124 - (FTC_Manager, FTC_Font, FT_Face*, FT_Size*);
125 + (FTC_ImageCache, FTC_ImageType*, FT_UInt, FT_Glyph*);
126 +typedef FT_Error (*FTC_Manager_LookupFace_t)
127 + (FTC_Manager, FTC_FaceID, FT_Face*);
128 typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager);
129 typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong,
130 FTC_Face_Requester, FT_Pointer, FTC_Manager*);
131 -typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*);
132 +typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_ImageCache*);
134 typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*);
135 typedef FT_Error (*FT_Get_Kerning_t)
137 FT_Outline_Decompose_t nsFT_Outline_Decompose;
138 FT_Set_Charmap_t nsFT_Set_Charmap;
139 FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup;
140 - FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size;
141 + FTC_Manager_LookupFace_t nsFTC_Manager_LookupFace;
142 FTC_Manager_Done_t nsFTC_Manager_Done;
143 FTC_Manager_New_t nsFTC_Manager_New;
144 FTC_Image_Cache_New_t nsFTC_Image_Cache_New;
146 PRLibrary *mSharedLib;
147 FT_Library mFreeTypeLibrary;
148 FTC_Manager mFTCacheManager;
149 - FTC_Image_Cache mImageCache;
150 + FTC_ImageCache mImageCache;
152 static nsHashtable *sFontFamilies;
153 static nsHashtable *sRange1CharSetNames;
154 diff -Naur mozilla-orig/gfx/src/ps/nsFontMetricsPS.cpp mozilla/gfx/src/ps/nsFontMetricsPS.cpp
155 --- mozilla-orig/gfx/src/ps/nsFontMetricsPS.cpp 2004-07-15 11:24:14.000000000 +0000
156 +++ mozilla/gfx/src/ps/nsFontMetricsPS.cpp 2004-07-15 11:28:26.000000000 +0000
157 @@ -1141,10 +1141,10 @@
159 mPixelSize = NSToIntRound(app2dev * mFont->size);
161 - mImageDesc.font.face_id = (void*)mEntry;
162 - mImageDesc.font.pix_width = mPixelSize;
163 - mImageDesc.font.pix_height = mPixelSize;
164 - mImageDesc.image_type = 0;
165 + mImageDesc->face_id = (FTC_FaceID)&mEntry;
166 + mImageDesc->width = mPixelSize;
167 + mImageDesc->height = mPixelSize;
168 + mImageDesc->flags = 0;
171 mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv);
172 @@ -1190,7 +1190,7 @@
176 - FTC_Image_Cache iCache;
177 + FTC_ImageCache iCache;
178 nsresult rv = mFt2->GetImageCache(&iCache);
180 NS_ERROR("Failed to get Image Cache");
181 @@ -1228,8 +1228,8 @@
183 FTC_Manager cManager;
184 mFt2->GetFTCacheManager(&cManager);
185 - nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
187 + nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
189 NS_ASSERTION(rv==0, "failed to get face/size");
192 @@ -1622,16 +1622,16 @@
193 mEntry->GetFamilyName(fontName);
194 mEntry->GetStyleName(styleName);
196 - mImageDesc.font.face_id = (void*)mEntry;
197 + mImageDesc->face_id = (FTC_FaceID)&mEntry;
198 // TT glyph has no relation to size
199 - mImageDesc.font.pix_width = 16;
200 - mImageDesc.font.pix_height = 16;
201 - mImageDesc.image_type = 0;
202 + mImageDesc->width = 16;
203 + mImageDesc->height = 16;
204 + mImageDesc->flags = 0;
205 FT_Face face = nsnull;
206 FTC_Manager cManager;
207 mFt2->GetFTCacheManager(&cManager);
208 - nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font,
210 + nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id,
215 diff -Naur mozilla-orig/gfx/src/ps/nsFontMetricsPS.h mozilla/gfx/src/ps/nsFontMetricsPS.h
216 --- mozilla-orig/gfx/src/ps/nsFontMetricsPS.h 2004-07-15 11:24:14.000000000 +0000
217 +++ mozilla/gfx/src/ps/nsFontMetricsPS.h 2004-07-15 11:28:26.000000000 +0000
219 nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID;
220 nsCOMPtr<nsIFreeType2> mFt2;
222 - FTC_Image_Desc mImageDesc;
223 + FTC_ImageType mImageDesc;
226 static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont,
229 nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry;
230 nsCOMPtr<nsIFreeType2> mFt2;
231 - FTC_Image_Desc mImageDesc;
232 + FTC_ImageType mImageDesc;
236 diff -Naur mozilla-orig/gfx/src/x11shared/nsFontFreeType.cpp mozilla/gfx/src/x11shared/nsFontFreeType.cpp
237 --- mozilla-orig/gfx/src/x11shared/nsFontFreeType.cpp 2004-07-15 11:24:14.000000000 +0000
238 +++ mozilla/gfx/src/x11shared/nsFontFreeType.cpp 2004-07-15 11:28:26.000000000 +0000
242 mFt2->GetFTCacheManager(&mgr);
243 - rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull);
244 + rv = mFt2->ManagerLookupFace(mgr, mImageDesc->face_id, &face);
245 NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size");
248 @@ -191,22 +191,15 @@
249 PRBool embedded_bimap = PR_FALSE;
251 mPixelSize = aPixelSize;
252 - mImageDesc.font.face_id = (void*)mFaceID;
253 - mImageDesc.font.pix_width = aPixelSize;
254 - mImageDesc.font.pix_height = aPixelSize;
255 - mImageDesc.image_type = 0;
256 + mImageDesc->face_id = (FTC_FaceID)&mFaceID;
257 + mImageDesc->width = aPixelSize;
258 + mImageDesc->height = aPixelSize;
259 + mImageDesc->flags = 0;
261 if (aPixelSize < nsFreeType2::gAntiAliasMinimum) {
262 - mImageDesc.image_type |= ftc_image_mono;
263 anti_alias = PR_FALSE;
266 - if (nsFreeType2::gFreeType2Autohinted)
267 - mImageDesc.image_type |= ftc_image_flag_autohinted;
269 - if (nsFreeType2::gFreeType2Unhinted)
270 - mImageDesc.image_type |= ftc_image_flag_unhinted;
272 PRUint32 num_embedded_bitmaps, i;
273 PRInt32* embedded_bitmapheights;
274 mFaceID->GetEmbeddedBitmapHeights(&num_embedded_bitmaps,
276 if (embedded_bitmapheights[i] == aPixelSize) {
277 embedded_bimap = PR_TRUE;
278 // unhinted must be set for embedded bitmaps to be used
279 - mImageDesc.image_type |= ftc_image_flag_unhinted;
285 return NS_ERROR_FAILURE;
287 - FTC_Image_Cache icache;
288 + FTC_ImageCache icache;
289 mFt2->GetImageCache(&icache);
291 return NS_ERROR_FAILURE;
296 - FTC_Image_Cache icache;
297 + FTC_ImageCache icache;
298 mFt2->GetImageCache(&icache);
302 if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2);
305 - FTC_Image_Cache icache;
306 + FTC_ImageCache icache;
307 mFt2->GetImageCache(&icache);
310 diff -Naur mozilla-orig/gfx/src/x11shared/nsFontFreeType.h mozilla/gfx/src/x11shared/nsFontFreeType.h
311 --- mozilla-orig/gfx/src/x11shared/nsFontFreeType.h 2004-07-15 11:24:14.000000000 +0000
312 +++ mozilla/gfx/src/x11shared/nsFontFreeType.h 2004-07-15 11:28:26.000000000 +0000
314 XImage *GetXImage(PRUint32 width, PRUint32 height);
315 nsITrueTypeFontCatalogEntry *mFaceID;
317 - FTC_Image_Desc mImageDesc;
318 + FTC_ImageType mImageDesc;
319 nsCOMPtr<nsIFreeType2> mFt2;