Date: Fri, 4 Mar 2005 03:09:47 +0100 (CET) From: Dejan Lesjak <dejan.lesjak@ijs.si> To: FreeBSD-gnats-submit@FreeBSD.org Subject: ports/78385: [PATCH] Update Freetype to 2.1.9 Message-ID: <200503040209.j2429le2009332@idefix.ijs.si> Resent-Message-ID: <200503040220.j242KDiW006282@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 78385 >Category: ports >Synopsis: [PATCH] Update Freetype to 2.1.9 >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: update >Submitter-Id: current-users >Arrival-Date: Fri Mar 04 02:20:12 GMT 2005 >Closed-Date: >Last-Modified: >Originator: Dejan Lesjak >Release: FreeBSD 5.3-STABLE i386 >Organization: >Environment: System: FreeBSD idefix.ijs.si 5.3-STABLE FreeBSD 5.3-STABLE #0: Tue Feb 22 06:58:06 CET 2005 lesi@idefix.ijs.si:/usr/obj/usr/src/sys/IDEFIX i386 >Description: Update Freetype to 2.1.9 and fix www/firefox and www/mozilla to build with new Freetype. This supercedes ports/68747. This also adds a patch to Freetype that fixes problem with added support for vertical phantom points fixed in Freetype CVS in rev. 1.132 of ttgload.c. Furthermore it adds a patch for pkgconfig to add ${prefix}/include to CFLAGS from anholt in ports/68747. The fix for Firefox and Mozilla is taken from Mozilla Bugzilla #234035 (patch #149334). A different path has been chosen by Mozilla developers for future versions of Firefox and Mozilla (so mozilla-devel port doesn't need patching) but that approach seems to invasive for current versions of ports (discussion is in mentioned bugzilla entry). These patches should therefore be removed when updating to next Mozilla/Firefox major releases. Another patch is needed for Mozilla - it is taken from NetBSD pkgsrc (named patch-by), but since it patches the same file as extra-patch-nsSVGLibartGlyphMetricsFT.cpp it has been added to that one and another extra patch (extra-patch2-nsSVGLibartGlyphMetricsFT.cpp) is applied in cases the first one is not. extra-patch2-nsSVGLibartGlyphMetricsFT.cpp should be removed upon upgrade to next major Mozilla release and at least the corresponding part of extra-patch-nsSVGLibartGlyphMetricsFT.cpp removed. >How-To-Repeat: >Fix: added/removed files: print/freetype2: added files: files/patch-builds::unix::freetype2.in files/patch-src::truetype::ttgload.c removed files: files/patch-src::type1::t1load.c www/mozilla: added files: files/extra-patch2-nsSVGLibartGlyphMetricsFT.cpp files/patch-bugzilla149334 removed files: files/patch-gfx_src_gtk_nsFontMetricsXft.cpp www/firefox: added files: files/patch-bugzilla149334 --- freetype-219-up.diff begins here --- Index: print/freetype2/Makefile =================================================================== RCS file: /usr/local/repos/freebsd/ports/print/freetype2/Makefile,v retrieving revision 1.60 diff -u -r1.60 Makefile --- print/freetype2/Makefile 13 Dec 2004 00:53:56 -0000 1.60 +++ print/freetype2/Makefile 3 Mar 2005 19:21:22 -0000 @@ -6,8 +6,7 @@ # PORTNAME= freetype2 -PORTVERSION= 2.1.7 -PORTREVISION= 4 +PORTVERSION= 2.1.9 CATEGORIES= print MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:S,%SUBDIR%,freetype,} \ http://sunsite.cnlab-switch.ch/ftp/mirror/freetype/%SUBDIR%/ \ Index: print/freetype2/distinfo =================================================================== RCS file: /usr/local/repos/freebsd/ports/print/freetype2/distinfo,v retrieving revision 1.25 diff -u -r1.25 distinfo --- print/freetype2/distinfo 21 Nov 2004 22:03:48 -0000 1.25 +++ print/freetype2/distinfo 3 Mar 2005 19:21:22 -0000 @@ -1,4 +1,4 @@ -MD5 (freetype-2.1.7.tar.bz2) = d71723948d7c0e44c401b5733c50857e -SIZE (freetype-2.1.7.tar.bz2) = 930766 +MD5 (freetype-2.1.9.tar.bz2) = ec1b903e4be5f073caa72458ea58c29c +SIZE (freetype-2.1.9.tar.bz2) = 992394 MD5 (cjk-patch-freetype2-20041115.diff.gz) = c1e52458b877a78636a4cdbb97badb11 SIZE (cjk-patch-freetype2-20041115.diff.gz) = 16052 Index: print/freetype2/pkg-plist =================================================================== RCS file: /usr/local/repos/freebsd/ports/print/freetype2/pkg-plist,v retrieving revision 1.28 diff -u -r1.28 pkg-plist --- print/freetype2/pkg-plist 16 Mar 2004 20:28:44 -0000 1.28 +++ print/freetype2/pkg-plist 3 Mar 2005 19:21:22 -0000 @@ -4,8 +4,8 @@ include/freetype2/freetype/cache/ftcglyph.h include/freetype2/freetype/cache/ftcimage.h include/freetype2/freetype/cache/ftcmanag.h +include/freetype2/freetype/cache/ftcmru.h include/freetype2/freetype/cache/ftcsbits.h -include/freetype2/freetype/cache/ftlru.h include/freetype2/freetype/config/ftconfig.h include/freetype2/freetype/config/ftheader.h include/freetype2/freetype/config/ftmodule.h @@ -23,6 +23,7 @@ include/freetype2/freetype/ftimage.h include/freetype2/freetype/ftincrem.h include/freetype2/freetype/ftlist.h +include/freetype2/freetype/ftlzw.h include/freetype2/freetype/ftmac.h include/freetype2/freetype/ftmm.h include/freetype2/freetype/ftmodapi.h @@ -48,6 +49,7 @@ include/freetype2/freetype/internal/ftgloadr.h include/freetype2/freetype/internal/ftmemory.h include/freetype2/freetype/internal/ftobjs.h +include/freetype2/freetype/internal/ftrfork.h include/freetype2/freetype/internal/ftserv.h include/freetype2/freetype/internal/ftstream.h include/freetype2/freetype/internal/fttrace.h @@ -64,6 +66,7 @@ include/freetype2/freetype/internal/svpscmap.h include/freetype2/freetype/internal/svpsinfo.h include/freetype2/freetype/internal/svsfnt.h +include/freetype2/freetype/internal/svttcmap.h include/freetype2/freetype/internal/svwinfnt.h include/freetype2/freetype/internal/svxf86nm.h include/freetype2/freetype/internal/t1types.h Index: print/freetype2/files/patch-aa =================================================================== RCS file: /usr/local/repos/freebsd/ports/print/freetype2/files/patch-aa,v retrieving revision 1.4 diff -u -r1.4 patch-aa --- print/freetype2/files/patch-aa 28 Jun 2002 14:37:52 -0000 1.4 +++ print/freetype2/files/patch-aa 3 Mar 2005 19:21:22 -0000 @@ -1,16 +1,13 @@ - -$FreeBSD: ports/print/freetype2/files/patch-aa,v 1.4 2002/06/28 14:37:52 sobomax Exp $ - ---- builds/unix/detect.mk.orig Fri Jun 14 11:09:25 2002 -+++ builds/unix/detect.mk Fri Jun 28 13:35:48 2002 -@@ -76,10 +76,10 @@ +--- builds/unix/detect.mk.orig Sun Jan 9 21:12:51 2005 ++++ builds/unix/detect.mk Sun Jan 9 21:13:42 2005 +@@ -78,10 +78,10 @@ ifneq ($(have_mk),) # we are building FT2 not in the src tree - unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in + $(BUILD_DIR)/unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in - $(TOP_DIR)/builds/unix/configure $(CFG) +# $(TOP_DIR)/builds/unix/configure $(CFG) else - unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in + $(BUILD_DIR)/unix-def.mk: $(TOP_DIR)/builds/unix/unix-def.in - cd builds/unix; ./configure $(CFG) +# cd builds/unix; ./configure $(CFG) endif Index: print/freetype2/files/patch-builds::unix::freetype-config.in =================================================================== RCS file: /usr/local/repos/freebsd/ports/print/freetype2/files/patch-builds::unix::freetype-config.in,v retrieving revision 1.3 diff -u -r1.3 patch-builds::unix::freetype-config.in --- print/freetype2/files/patch-builds::unix::freetype-config.in 30 Sep 2003 06:05:45 -0000 1.3 +++ print/freetype2/files/patch-builds::unix::freetype-config.in 3 Mar 2005 19:21:22 -0000 @@ -1,17 +1,17 @@ ---- builds/unix/freetype-config.in.orig Thu Apr 24 01:45:59 2003 -+++ builds/unix/freetype-config.in Tue Sep 30 01:39:03 2003 -@@ -79,12 +79,8 @@ +--- builds/unix/freetype-config.in.orig Sun Jan 9 21:18:15 2005 ++++ builds/unix/freetype-config.in Sun Jan 9 21:18:57 2005 +@@ -105,12 +105,8 @@ fi if test "$echo_cflags" = "yes" ; then -- cflags="-I@includedir@/freetype2" -- if test "@includedir@" != "/usr/include" ; then -- echo $cflags -I@includedir@ -- else -- echo $cflags -- fi -+ cflags="-I@includedir@/freetype2 -I@includedir@" -+ echo $cflags +- cflags="-I$includedir/freetype2" +- if test "$includedir" != "/usr/include" ; then +- echo $cflags -I$includedir +- else +- echo $cflags +- fi ++ cflags="-I@includedir@/freetype2 -I@includedir@" ++ echo $cflags fi if test "$echo_libs" = "yes" ; then Index: print/freetype2/files/patch-builds::unix::freetype2.in =================================================================== RCS file: print/freetype2/files/patch-builds::unix::freetype2.in diff -N print/freetype2/files/patch-builds::unix::freetype2.in --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ print/freetype2/files/patch-builds::unix::freetype2.in 3 Mar 2005 19:21:22 -0000 @@ -0,0 +1,8 @@ +--- builds/unix/freetype2.in.orig Wed Mar 2 20:22:23 2005 ++++ builds/unix/freetype2.in Wed Mar 2 20:22:53 2005 +@@ -8,4 +8,4 @@ + Version: @ft_version@ + Requires: + Libs: -L${libdir} -lfreetype @LIBZ@ +-Cflags: -I${includedir}/freetype2 ++Cflags: -I${includedir}/freetype2 -I${includedir} Index: print/freetype2/files/patch-src::truetype::ttgload.c =================================================================== RCS file: print/freetype2/files/patch-src::truetype::ttgload.c diff -N print/freetype2/files/patch-src::truetype::ttgload.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ print/freetype2/files/patch-src::truetype::ttgload.c 3 Mar 2005 19:21:22 -0000 @@ -0,0 +1,22 @@ +Index: src/truetype/ttgload.c +=================================================================== +RCS file: /cvsroot/freetype/freetype2/src/truetype/ttgload.c,v +retrieving revision 1.131 +retrieving revision 1.132 +diff -u -r1.131 -r1.132 +--- src/truetype/ttgload.c 13 Oct 2004 05:15:44 -0000 1.131 ++++ src/truetype/ttgload.c 19 Nov 2004 10:35:52 -0000 1.132 +@@ -797,12 +797,10 @@ + if ( IS_HINTED( load->load_flags ) ) + { + FT_Pos x = zone->org[n_points-4].x; +- FT_Pos y = zone->org[n_points-2].y; + + + x = FT_PIX_ROUND( x ) - x; +- y = FT_PIX_ROUND( y ) - y; +- translate_array( n_points, zone->org, x, y ); ++ translate_array( n_points, zone->org, x, 0 ); + + org_to_cur( n_points, zone ); + Index: print/freetype2/files/patch-src::type1::t1load.c =================================================================== RCS file: print/freetype2/files/patch-src::type1::t1load.c diff -N print/freetype2/files/patch-src::type1::t1load.c --- print/freetype2/files/patch-src::type1::t1load.c 18 Apr 2004 04:53:13 -0000 1.1 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,14 +0,0 @@ ---- src/type1/t1load.c.orig Sat Apr 17 21:32:53 2004 -+++ src/type1/t1load.c Sat Apr 17 21:34:43 2004 -@@ -1527,6 +1527,11 @@ - parser->root.cursor = cur2; - } - -+ /* look for `eexec' */ -+ else if ( *cur == 'e' && cur + 5 < limit && -+ ft_strncmp( (char*)cur, "eexec", 5 ) == 0 ) -+ break; -+ - /* look for `closefile' which ends the eexec section */ - else if ( *cur == 'c' && cur + 9 < limit && - ft_strncmp( (char*)cur, "closefile", 9 ) == 0 ) Index: www/firefox/files/patch-bugzilla149334 =================================================================== RCS file: www/firefox/files/patch-bugzilla149334 diff -N www/firefox/files/patch-bugzilla149334 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/firefox/files/patch-bugzilla149334 3 Mar 2005 19:26:47 -0000 @@ -0,0 +1,342 @@ +Index: gfx/idl/nsIFreeType2.idl +=================================================================== +RCS file: /cvsroot/mozilla/gfx/idl/nsIFreeType2.idl,v +retrieving revision 1.10 +diff -u -3 -p -r1.10 nsIFreeType2.idl +--- gfx/idl/nsIFreeType2.idl 15 Apr 2004 23:30:02 -0000 1.10 ++++ gfx/idl/nsIFreeType2.idl 26 May 2004 10:00:54 -0000 +@@ -76,10 +76,11 @@ native FT_Pointer(FT_Pointer); + native FT_Sfnt_Tag(FT_Sfnt_Tag); + native FT_Size(FT_Size); + +-[ptr] native FTC_Image_Desc_p(FTC_Image_Desc); ++[ptr] native FTC_ImageType_p(FTC_ImageType); + native FTC_Face_Requester(FTC_Face_Requester); + native FTC_Font(FTC_Font); +-native FTC_Image_Cache(FTC_Image_Cache); ++native FTC_FaceID(FTC_FaceID); ++native FTC_ImageCache(FTC_ImageCache); + native FTC_Manager(FTC_Manager); + + // #ifdef MOZ_SVG +@@ -99,7 +100,7 @@ interface nsIFreeType2 : nsISupports + + readonly attribute FT_Library library; + readonly attribute FTC_Manager FTCacheManager; +- readonly attribute FTC_Image_Cache ImageCache; ++ readonly attribute FTC_ImageCache ImageCache; + + void doneFace(in FT_Face face); + void doneFreeType(in FT_Library lib); +@@ -115,16 +116,16 @@ interface nsIFreeType2 : nsISupports + void outlineDecompose(in FT_Outline_p outline, + in const_FT_Outline_Funcs_p funcs, in voidPtr p); + void setCharmap(in FT_Face face, in FT_CharMap charmap); +- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc, ++ void imageCacheLookup(in FTC_ImageCache cache, in FTC_ImageType_p desc, + in FT_UInt gindex, out FT_Glyph glyph); +- void managerLookupSize(in FTC_Manager manager, in FTC_Font font, +- out FT_Face face, out FT_Size size); ++ void managerLookupFace(in FTC_Manager manager, in FTC_FaceID face_id, ++ out FT_Face face); + void managerDone(in FTC_Manager manager); + void managerNew(in FT_Library lib, in FT_UInt max_faces, + in FT_UInt max_sizes, in FT_ULong max_bytes, + in FTC_Face_Requester requester, in FT_Pointer req_data, + out FTC_Manager manager); +- void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache); ++ void imageCacheNew(in FTC_Manager manager, out FTC_ImageCache cache); + /* #ifdef MOZ_SVG */ + void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix, + in FT_Vector_p delta); +Index: gfx/src/freetype/nsFreeType.cpp +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/freetype/nsFreeType.cpp,v +retrieving revision 1.25 +diff -u -3 -p -r1.25 nsFreeType.cpp +--- gfx/src/freetype/nsFreeType.cpp 17 Apr 2004 21:52:29 -0000 1.25 ++++ gfx/src/freetype/nsFreeType.cpp 26 May 2004 10:00:54 -0000 +@@ -110,11 +110,11 @@ FtFuncList nsFreeType2::FtFuncs [] = { + {"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE}, + {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE}, + {"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE}, +- {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE}, +- {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE}, ++ {"FTC_ImageCache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE}, ++ {"FTC_Manager_LookupFace", NS_FT2_OFFSET(nsFTC_Manager_LookupFace), PR_TRUE}, + {"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE}, + {"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE}, +- {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE}, ++ {"FTC_ImageCache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE}, + // #ifdef MOZ_SVG + {"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE}, + {"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE}, +@@ -282,7 +282,7 @@ nsFreeType2::SetCharmap(FT_Face face, FT + } + + NS_IMETHODIMP +-nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc, ++nsFreeType2::ImageCacheLookup(FTC_ImageCache cache, FTC_ImageType *desc, + FT_UInt glyphID, FT_Glyph *glyph) + { + // call the FreeType2 function via the function pointer +@@ -291,11 +291,11 @@ nsFreeType2::ImageCacheLookup(FTC_Image_ + } + + NS_IMETHODIMP +-nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font, +- FT_Face *face, FT_Size *size) ++nsFreeType2::ManagerLookupFace(FTC_Manager manager, FTC_FaceID face_id, ++ FT_Face *face) + { + // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size); ++ FT_Error error = nsFTC_Manager_LookupFace(manager, face_id, face); + return error ? NS_ERROR_FAILURE : NS_OK; + } + +@@ -320,7 +320,7 @@ nsFreeType2::ManagerNew(FT_Library libra + } + + NS_IMETHODIMP +-nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) ++nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_ImageCache *cache) + { + // call the FreeType2 function via the function pointer + FT_Error error = nsFTC_Image_Cache_New(manager, cache); +@@ -389,7 +389,7 @@ nsFreeType2::SupportsExtFunc(PRBool *res + } + + NS_IMETHODIMP +-nsFreeType2::GetImageCache(FTC_Image_Cache *aCache) ++nsFreeType2::GetImageCache(FTC_ImageCache *aCache) + { + *aCache = mImageCache; + return NS_OK; +Index: gfx/src/freetype/nsFreeType.h +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/freetype/nsFreeType.h,v +retrieving revision 1.17 +diff -u -3 -p -r1.17 nsFreeType.h +--- gfx/src/freetype/nsFreeType.h 17 Apr 2004 21:52:29 -0000 1.17 ++++ gfx/src/freetype/nsFreeType.h 26 May 2004 10:00:54 -0000 +@@ -120,13 +120,13 @@ typedef FT_Error (*FT_Outline_Decompose_ + typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*); + typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap); + typedef FT_Error (*FTC_Image_Cache_Lookup_t) +- (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*); +-typedef FT_Error (*FTC_Manager_Lookup_Size_t) +- (FTC_Manager, FTC_Font, FT_Face*, FT_Size*); ++ (FTC_ImageCache, FTC_ImageType*, FT_UInt, FT_Glyph*); ++typedef FT_Error (*FTC_Manager_LookupFace_t) ++ (FTC_Manager, FTC_FaceID, FT_Face*); + typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager); + typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong, + FTC_Face_Requester, FT_Pointer, FTC_Manager*); +-typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*); ++typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_ImageCache*); + // #ifdef MOZ_SVG + typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*); + typedef FT_Error (*FT_Get_Kerning_t) +@@ -181,7 +181,7 @@ protected: + FT_Outline_Decompose_t nsFT_Outline_Decompose; + FT_Set_Charmap_t nsFT_Set_Charmap; + FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup; +- FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size; ++ FTC_Manager_LookupFace_t nsFTC_Manager_LookupFace; + FTC_Manager_Done_t nsFTC_Manager_Done; + FTC_Manager_New_t nsFTC_Manager_New; + FTC_Image_Cache_New_t nsFTC_Image_Cache_New; +@@ -229,7 +229,7 @@ protected: + PRLibrary *mSharedLib; + FT_Library mFreeTypeLibrary; + FTC_Manager mFTCacheManager; +- FTC_Image_Cache mImageCache; ++ FTC_ImageCache mImageCache; + + static nsHashtable *sFontFamilies; + static nsHashtable *sRange1CharSetNames; +Index: gfx/src/ps/nsFontMetricsPS.cpp +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/ps/nsFontMetricsPS.cpp,v +retrieving revision 1.43 +diff -u -3 -p -r1.43 nsFontMetricsPS.cpp +--- gfx/src/ps/nsFontMetricsPS.cpp 17 Apr 2004 21:52:31 -0000 1.43 ++++ gfx/src/ps/nsFontMetricsPS.cpp 26 May 2004 10:01:03 -0000 +@@ -1140,10 +1140,10 @@ nsFontPSFreeType::Init(nsITrueTypeFontCa + + mPixelSize = NSToIntRound(app2dev * mFont->size); + +- mImageDesc.font.face_id = (void*)mEntry; +- mImageDesc.font.pix_width = mPixelSize; +- mImageDesc.font.pix_height = mPixelSize; +- mImageDesc.image_type = 0; ++ mImageDesc->face_id = (FTC_FaceID)&mEntry; ++ mImageDesc->width = mPixelSize; ++ mImageDesc->height = mPixelSize; ++ mImageDesc->flags = 0; + + nsresult rv; + mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); +@@ -1189,7 +1189,7 @@ nsFontPSFreeType::GetWidth(const PRUnich + if (!face) + return 0; + +- FTC_Image_Cache iCache; ++ FTC_ImageCache iCache; + nsresult rv = mFt2->GetImageCache(&iCache); + if (NS_FAILED(rv)) { + NS_ERROR("Failed to get Image Cache"); +@@ -1227,8 +1227,8 @@ nsFontPSFreeType::getFTFace() + + FTC_Manager cManager; + mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); ++ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id, ++ &face); + NS_ASSERTION(rv==0, "failed to get face/size"); + if (rv) + return nsnull; +@@ -1621,16 +1621,16 @@ void nsFT2Type8Generator::GeneratePSFont + mEntry->GetFamilyName(fontName); + mEntry->GetStyleName(styleName); + +- mImageDesc.font.face_id = (void*)mEntry; ++ mImageDesc->face_id = (FTC_FaceID)&mEntry; + // TT glyph has no relation to size +- mImageDesc.font.pix_width = 16; +- mImageDesc.font.pix_height = 16; +- mImageDesc.image_type = 0; ++ mImageDesc->width = 16; ++ mImageDesc->height = 16; ++ mImageDesc->flags = 0; + FT_Face face = nsnull; + FTC_Manager cManager; + mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); ++ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id, ++ &face); + if (NS_FAILED(rv)) + return; + +Index: gfx/src/ps/nsFontMetricsPS.h +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/ps/nsFontMetricsPS.h,v +retrieving revision 1.25 +diff -u -3 -p -r1.25 nsFontMetricsPS.h +--- gfx/src/ps/nsFontMetricsPS.h 17 Apr 2004 21:52:31 -0000 1.25 ++++ gfx/src/ps/nsFontMetricsPS.h 26 May 2004 10:01:03 -0000 +@@ -319,7 +319,7 @@ protected: + nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID; + nsCOMPtr<nsIFreeType2> mFt2; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; ++ FTC_ImageType mImageDesc; + + + static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont, +@@ -362,7 +362,7 @@ public: + protected: + nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry; + nsCOMPtr<nsIFreeType2> mFt2; +- FTC_Image_Desc mImageDesc; ++ FTC_ImageType mImageDesc; + }; + #endif + +Index: gfx/src/x11shared/nsFontFreeType.cpp +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/x11shared/nsFontFreeType.cpp,v +retrieving revision 1.14 +diff -u -3 -p -r1.14 nsFontFreeType.cpp +--- gfx/src/x11shared/nsFontFreeType.cpp 17 Apr 2004 21:52:34 -0000 1.14 ++++ gfx/src/x11shared/nsFontFreeType.cpp 26 May 2004 10:01:03 -0000 +@@ -177,7 +177,7 @@ nsFreeTypeFont::getFTFace() + FTC_Manager mgr; + nsresult rv; + mFt2->GetFTCacheManager(&mgr); +- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull); ++ rv = mFt2->ManagerLookupFace(mgr, mImageDesc->face_id, &face); + NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size"); + if (NS_FAILED(rv)) + return nsnull; +@@ -191,22 +191,15 @@ nsFreeTypeFont::nsFreeTypeFont(nsITrueTy + PRBool embedded_bimap = PR_FALSE; + mFaceID = aFaceID; + mPixelSize = aPixelSize; +- mImageDesc.font.face_id = (void*)mFaceID; +- mImageDesc.font.pix_width = aPixelSize; +- mImageDesc.font.pix_height = aPixelSize; +- mImageDesc.image_type = 0; ++ mImageDesc->face_id = (FTC_FaceID)&mFaceID; ++ mImageDesc->width = aPixelSize; ++ mImageDesc->height = aPixelSize; ++ mImageDesc->flags = 0; + + if (aPixelSize < nsFreeType2::gAntiAliasMinimum) { +- mImageDesc.image_type |= ftc_image_mono; + anti_alias = PR_FALSE; + } + +- if (nsFreeType2::gFreeType2Autohinted) +- mImageDesc.image_type |= ftc_image_flag_autohinted; +- +- if (nsFreeType2::gFreeType2Unhinted) +- mImageDesc.image_type |= ftc_image_flag_unhinted; +- + PRUint32 num_embedded_bitmaps, i; + PRInt32* embedded_bitmapheights; + mFaceID->GetEmbeddedBitmapHeights(&num_embedded_bitmaps, +@@ -218,7 +211,6 @@ nsFreeTypeFont::nsFreeTypeFont(nsITrueTy + if (embedded_bitmapheights[i] == aPixelSize) { + embedded_bimap = PR_TRUE; + // unhinted must be set for embedded bitmaps to be used +- mImageDesc.image_type |= ftc_image_flag_unhinted; + break; + } + } +@@ -312,7 +304,7 @@ nsFreeTypeFont::doGetBoundingMetrics(con + if (!face) + return NS_ERROR_FAILURE; + +- FTC_Image_Cache icache; ++ FTC_ImageCache icache; + mFt2->GetImageCache(&icache); + if (!icache) + return NS_ERROR_FAILURE; +@@ -401,7 +393,7 @@ nsFreeTypeFont::GetWidth(const PRUnichar + if (!face) + return 0; + +- FTC_Image_Cache icache; ++ FTC_ImageCache icache; + mFt2->GetImageCache(&icache); + if (!icache) + return 0; +@@ -723,7 +715,7 @@ nsFreeTypeXImage::DrawString(nsRendering + if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2); + #endif + +- FTC_Image_Cache icache; ++ FTC_ImageCache icache; + mFt2->GetImageCache(&icache); + if (!icache) + return 0; +Index: gfx/src/x11shared/nsFontFreeType.h +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/x11shared/nsFontFreeType.h,v +retrieving revision 1.10 +diff -u -3 -p -r1.10 nsFontFreeType.h +--- gfx/src/x11shared/nsFontFreeType.h 17 Apr 2004 21:52:34 -0000 1.10 ++++ gfx/src/x11shared/nsFontFreeType.h 26 May 2004 10:01:03 -0000 +@@ -110,7 +110,7 @@ protected: + XImage *GetXImage(PRUint32 width, PRUint32 height); + nsITrueTypeFontCatalogEntry *mFaceID; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; ++ FTC_ImageType mImageDesc; + nsCOMPtr<nsIFreeType2> mFt2; + }; + Index: www/mozilla/Makefile =================================================================== RCS file: /usr/local/repos/freebsd/ports/www/mozilla/Makefile,v retrieving revision 1.186 diff -u -r1.186 Makefile --- www/mozilla/Makefile 13 Feb 2005 07:20:57 -0000 1.186 +++ www/mozilla/Makefile 3 Mar 2005 19:24:42 -0000 @@ -197,6 +197,8 @@ .if ${OSVERSION} < 500035 && !defined(WITH_CAIRO_RENDER) EXTRA_PATCHES+= ${FILESDIR}/extra-patch-nsSVGLibartGlyphMetricsFT.cpp +.else +EXTRA_PATCHES+= ${FILESDIR}/extra-patch2-nsSVGLibartGlyphMetricsFT.cpp .endif .if defined(WITH_SMB) Index: www/mozilla/files/extra-patch-nsSVGLibartGlyphMetricsFT.cpp =================================================================== RCS file: /usr/local/repos/freebsd/ports/www/mozilla/files/extra-patch-nsSVGLibartGlyphMetricsFT.cpp,v retrieving revision 1.1 diff -u -r1.1 extra-patch-nsSVGLibartGlyphMetricsFT.cpp --- www/mozilla/files/extra-patch-nsSVGLibartGlyphMetricsFT.cpp 28 Jun 2004 02:18:58 -0000 1.1 +++ www/mozilla/files/extra-patch-nsSVGLibartGlyphMetricsFT.cpp 3 Mar 2005 19:24:42 -0000 @@ -1,6 +1,6 @@ ---- layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp.orig Thu Feb 26 02:13:35 2004 -+++ layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp Thu Feb 26 03:27:56 2004 -@@ -56,6 +57,13 @@ +--- layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp.orig Wed Mar 2 12:36:59 2005 ++++ layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp Wed Mar 2 12:36:37 2005 +@@ -56,6 +56,13 @@ #include "nsArray.h" #include "nsDataHashtable.h" @@ -14,7 +14,7 @@ /** * \addtogroup libart_renderer Libart Rendering Engine * @{ -@@ -112,7 +120,7 @@ +@@ -112,7 +119,7 @@ nsCOMPtr<nsISVGGlyphMetricsSource> mSource; public: @@ -23,7 +23,7 @@ }; /** @} */ -@@ -120,7 +128,7 @@ +@@ -120,7 +127,7 @@ //---------------------------------------------------------------------- // nsSVGLibartGlyphMetricsFT implementation: @@ -32,7 +32,26 @@ nsSVGLibartGlyphMetricsFT::sFontAliases; -@@ -406,7 +414,7 @@ +@@ -155,15 +162,15 @@ + + static NS_NAMED_LITERAL_STRING(arial, "arial"); + nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("helvetica"), +- &arial); ++ (nsLiteralString *)&arial); + + static NS_NAMED_LITERAL_STRING(courier, "courier new"); + nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("courier"), +- &courier); ++ (nsLiteralString *)&courier); + + static NS_NAMED_LITERAL_STRING(times, "times new roman"); + nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("times"), +- ×); ++ (nsLiteralString *)×); + } + + void NS_FreeSVGLibartGlyphMetricsFTGlobals() +@@ -406,7 +413,7 @@ } else { // try alias if there is one: @@ -41,3 +60,29 @@ nsSVGLibartGlyphMetricsFT::sFontAliases.Get(NS_ConvertUTF8toUCS2(family_name), &alias); if (alias) { +@@ -440,19 +447,19 @@ + return; + } + +- FTC_Image_Desc imageDesc; +- imageDesc.font.face_id=(void*)font_data.font_entry.get(); // XXX do we need to addref? ++ FTC_ImageType imageDesc; ++ imageDesc->face_id = (FTC_FaceID)font_data.font_entry.get(); // XXX do we need to addref? + float twipstopixel = GetTwipsToPixels(); + float scale = GetPixelScale(); +- imageDesc.font.pix_width = (int)((float)(font_data.font.size)*twipstopixel/scale); +- imageDesc.font.pix_height = (int)((float)(font_data.font.size)*twipstopixel/scale); +- imageDesc.image_type |= ftc_image_grays; ++ imageDesc->width = (int)((float)(font_data.font.size)*twipstopixel/scale); ++ imageDesc->height = (int)((float)(font_data.font.size)*twipstopixel/scale); ++ imageDesc->flags = 0; + + // get the face + nsresult rv; + FTC_Manager mgr; + nsSVGLibartFreetype::ft2->GetFTCacheManager(&mgr); +- rv = nsSVGLibartFreetype::ft2->ManagerLookupSize(mgr, &imageDesc.font, &mFace, nsnull); ++ rv = nsSVGLibartFreetype::ft2->ManagerLookupFace(mgr, imageDesc->face_id, &mFace); + NS_ASSERTION(mFace, "failed to get face/size"); + } + Index: www/mozilla/files/extra-patch2-nsSVGLibartGlyphMetricsFT.cpp =================================================================== RCS file: www/mozilla/files/extra-patch2-nsSVGLibartGlyphMetricsFT.cpp diff -N www/mozilla/files/extra-patch2-nsSVGLibartGlyphMetricsFT.cpp --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/mozilla/files/extra-patch2-nsSVGLibartGlyphMetricsFT.cpp 3 Mar 2005 19:24:42 -0000 @@ -0,0 +1,50 @@ +$NetBSD: patch-by,v 1.2 2004/07/05 14:22:42 taya Exp $ + +diff -ru ../Orig/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp ./layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp +--- ../Orig/mozilla/layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2004-03-19 10:36:16.000000000 +0900 ++++ ./layout/svg/renderer/src/libart/nsSVGLibartGlyphMetricsFT.cpp 2004-07-04 22:59:19.000000000 +0900 +@@ -155,15 +155,15 @@ + + static NS_NAMED_LITERAL_STRING(arial, "arial"); + nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("helvetica"), +- &arial); ++ (nsDependentString *)&arial); + + static NS_NAMED_LITERAL_STRING(courier, "courier new"); + nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("courier"), +- &courier); ++ (nsDependentString *)&courier); + + static NS_NAMED_LITERAL_STRING(times, "times new roman"); + nsSVGLibartGlyphMetricsFT::sFontAliases.Put(NS_LITERAL_STRING("times"), +- ×); ++ (nsDependentString *)×); + } + + void NS_FreeSVGLibartGlyphMetricsFTGlobals() +@@ -440,19 +440,19 @@ + return; + } + +- FTC_Image_Desc imageDesc; +- imageDesc.font.face_id=(void*)font_data.font_entry.get(); // XXX do we need to addref? ++ FTC_ImageType imageDesc; ++ imageDesc->face_id = (FTC_FaceID)font_data.font_entry.get(); // XXX do we need to addref? + float twipstopixel = GetTwipsToPixels(); + float scale = GetPixelScale(); +- imageDesc.font.pix_width = (int)((float)(font_data.font.size)*twipstopixel/scale); +- imageDesc.font.pix_height = (int)((float)(font_data.font.size)*twipstopixel/scale); +- imageDesc.image_type |= ftc_image_grays; ++ imageDesc->width = (int)((float)(font_data.font.size)*twipstopixel/scale); ++ imageDesc->height = (int)((float)(font_data.font.size)*twipstopixel/scale); ++ imageDesc->flags = 0; + + // get the face + nsresult rv; + FTC_Manager mgr; + nsSVGLibartFreetype::ft2->GetFTCacheManager(&mgr); +- rv = nsSVGLibartFreetype::ft2->ManagerLookupSize(mgr, &imageDesc.font, &mFace, nsnull); ++ rv = nsSVGLibartFreetype::ft2->ManagerLookupFace(mgr, imageDesc->face_id, &mFace); + NS_ASSERTION(mFace, "failed to get face/size"); + } + Index: www/mozilla/files/patch-bugzilla149334 =================================================================== RCS file: www/mozilla/files/patch-bugzilla149334 diff -N www/mozilla/files/patch-bugzilla149334 --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ www/mozilla/files/patch-bugzilla149334 3 Mar 2005 19:24:42 -0000 @@ -0,0 +1,342 @@ +Index: gfx/idl/nsIFreeType2.idl +=================================================================== +RCS file: /cvsroot/mozilla/gfx/idl/nsIFreeType2.idl,v +retrieving revision 1.10 +diff -u -3 -p -r1.10 nsIFreeType2.idl +--- gfx/idl/nsIFreeType2.idl 15 Apr 2004 23:30:02 -0000 1.10 ++++ gfx/idl/nsIFreeType2.idl 26 May 2004 10:00:54 -0000 +@@ -76,10 +76,11 @@ native FT_Pointer(FT_Pointer); + native FT_Sfnt_Tag(FT_Sfnt_Tag); + native FT_Size(FT_Size); + +-[ptr] native FTC_Image_Desc_p(FTC_Image_Desc); ++[ptr] native FTC_ImageType_p(FTC_ImageType); + native FTC_Face_Requester(FTC_Face_Requester); + native FTC_Font(FTC_Font); +-native FTC_Image_Cache(FTC_Image_Cache); ++native FTC_FaceID(FTC_FaceID); ++native FTC_ImageCache(FTC_ImageCache); + native FTC_Manager(FTC_Manager); + + // #ifdef MOZ_SVG +@@ -99,7 +100,7 @@ interface nsIFreeType2 : nsISupports + + readonly attribute FT_Library library; + readonly attribute FTC_Manager FTCacheManager; +- readonly attribute FTC_Image_Cache ImageCache; ++ readonly attribute FTC_ImageCache ImageCache; + + void doneFace(in FT_Face face); + void doneFreeType(in FT_Library lib); +@@ -115,16 +116,16 @@ interface nsIFreeType2 : nsISupports + void outlineDecompose(in FT_Outline_p outline, + in const_FT_Outline_Funcs_p funcs, in voidPtr p); + void setCharmap(in FT_Face face, in FT_CharMap charmap); +- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_p desc, ++ void imageCacheLookup(in FTC_ImageCache cache, in FTC_ImageType_p desc, + in FT_UInt gindex, out FT_Glyph glyph); +- void managerLookupSize(in FTC_Manager manager, in FTC_Font font, +- out FT_Face face, out FT_Size size); ++ void managerLookupFace(in FTC_Manager manager, in FTC_FaceID face_id, ++ out FT_Face face); + void managerDone(in FTC_Manager manager); + void managerNew(in FT_Library lib, in FT_UInt max_faces, + in FT_UInt max_sizes, in FT_ULong max_bytes, + in FTC_Face_Requester requester, in FT_Pointer req_data, + out FTC_Manager manager); +- void imageCacheNew(in FTC_Manager manager, out FTC_Image_Cache cache); ++ void imageCacheNew(in FTC_Manager manager, out FTC_ImageCache cache); + /* #ifdef MOZ_SVG */ + void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix, + in FT_Vector_p delta); +Index: gfx/src/freetype/nsFreeType.cpp +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/freetype/nsFreeType.cpp,v +retrieving revision 1.25 +diff -u -3 -p -r1.25 nsFreeType.cpp +--- gfx/src/freetype/nsFreeType.cpp 17 Apr 2004 21:52:29 -0000 1.25 ++++ gfx/src/freetype/nsFreeType.cpp 26 May 2004 10:00:54 -0000 +@@ -110,11 +110,11 @@ FtFuncList nsFreeType2::FtFuncs [] = { + {"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE}, + {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE}, + {"FT_Set_Charmap", NS_FT2_OFFSET(nsFT_Set_Charmap), PR_TRUE}, +- {"FTC_Image_Cache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE}, +- {"FTC_Manager_Lookup_Size", NS_FT2_OFFSET(nsFTC_Manager_Lookup_Size), PR_TRUE}, ++ {"FTC_ImageCache_Lookup", NS_FT2_OFFSET(nsFTC_Image_Cache_Lookup), PR_TRUE}, ++ {"FTC_Manager_LookupFace", NS_FT2_OFFSET(nsFTC_Manager_LookupFace), PR_TRUE}, + {"FTC_Manager_Done", NS_FT2_OFFSET(nsFTC_Manager_Done), PR_TRUE}, + {"FTC_Manager_New", NS_FT2_OFFSET(nsFTC_Manager_New), PR_TRUE}, +- {"FTC_Image_Cache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE}, ++ {"FTC_ImageCache_New", NS_FT2_OFFSET(nsFTC_Image_Cache_New), PR_TRUE}, + // #ifdef MOZ_SVG + {"FT_Glyph_Transform", NS_FT2_OFFSET(nsFT_Glyph_Transform), PR_TRUE}, + {"FT_Get_Kerning", NS_FT2_OFFSET(nsFT_Get_Kerning), PR_TRUE}, +@@ -282,7 +282,7 @@ nsFreeType2::SetCharmap(FT_Face face, FT + } + + NS_IMETHODIMP +-nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc, ++nsFreeType2::ImageCacheLookup(FTC_ImageCache cache, FTC_ImageType *desc, + FT_UInt glyphID, FT_Glyph *glyph) + { + // call the FreeType2 function via the function pointer +@@ -291,11 +291,11 @@ nsFreeType2::ImageCacheLookup(FTC_Image_ + } + + NS_IMETHODIMP +-nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font, +- FT_Face *face, FT_Size *size) ++nsFreeType2::ManagerLookupFace(FTC_Manager manager, FTC_FaceID face_id, ++ FT_Face *face) + { + // call the FreeType2 function via the function pointer +- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size); ++ FT_Error error = nsFTC_Manager_LookupFace(manager, face_id, face); + return error ? NS_ERROR_FAILURE : NS_OK; + } + +@@ -320,7 +320,7 @@ nsFreeType2::ManagerNew(FT_Library libra + } + + NS_IMETHODIMP +-nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) ++nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_ImageCache *cache) + { + // call the FreeType2 function via the function pointer + FT_Error error = nsFTC_Image_Cache_New(manager, cache); +@@ -389,7 +389,7 @@ nsFreeType2::SupportsExtFunc(PRBool *res + } + + NS_IMETHODIMP +-nsFreeType2::GetImageCache(FTC_Image_Cache *aCache) ++nsFreeType2::GetImageCache(FTC_ImageCache *aCache) + { + *aCache = mImageCache; + return NS_OK; +Index: gfx/src/freetype/nsFreeType.h +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/freetype/nsFreeType.h,v +retrieving revision 1.17 +diff -u -3 -p -r1.17 nsFreeType.h +--- gfx/src/freetype/nsFreeType.h 17 Apr 2004 21:52:29 -0000 1.17 ++++ gfx/src/freetype/nsFreeType.h 26 May 2004 10:00:54 -0000 +@@ -120,13 +120,13 @@ typedef FT_Error (*FT_Outline_Decompose_ + typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*); + typedef FT_Error (*FT_Set_Charmap_t)(FT_Face face, FT_CharMap charmap); + typedef FT_Error (*FTC_Image_Cache_Lookup_t) +- (FTC_Image_Cache, FTC_Image_Desc*, FT_UInt, FT_Glyph*); +-typedef FT_Error (*FTC_Manager_Lookup_Size_t) +- (FTC_Manager, FTC_Font, FT_Face*, FT_Size*); ++ (FTC_ImageCache, FTC_ImageType*, FT_UInt, FT_Glyph*); ++typedef FT_Error (*FTC_Manager_LookupFace_t) ++ (FTC_Manager, FTC_FaceID, FT_Face*); + typedef FT_Error (*FTC_Manager_Done_t)(FTC_Manager); + typedef FT_Error (*FTC_Manager_New_t)(FT_Library, FT_UInt, FT_UInt, FT_ULong, + FTC_Face_Requester, FT_Pointer, FTC_Manager*); +-typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_Image_Cache*); ++typedef FT_Error (*FTC_Image_Cache_New_t)(FTC_Manager, FTC_ImageCache*); + // #ifdef MOZ_SVG + typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*); + typedef FT_Error (*FT_Get_Kerning_t) +@@ -181,7 +181,7 @@ protected: + FT_Outline_Decompose_t nsFT_Outline_Decompose; + FT_Set_Charmap_t nsFT_Set_Charmap; + FTC_Image_Cache_Lookup_t nsFTC_Image_Cache_Lookup; +- FTC_Manager_Lookup_Size_t nsFTC_Manager_Lookup_Size; ++ FTC_Manager_LookupFace_t nsFTC_Manager_LookupFace; + FTC_Manager_Done_t nsFTC_Manager_Done; + FTC_Manager_New_t nsFTC_Manager_New; + FTC_Image_Cache_New_t nsFTC_Image_Cache_New; +@@ -229,7 +229,7 @@ protected: + PRLibrary *mSharedLib; + FT_Library mFreeTypeLibrary; + FTC_Manager mFTCacheManager; +- FTC_Image_Cache mImageCache; ++ FTC_ImageCache mImageCache; + + static nsHashtable *sFontFamilies; + static nsHashtable *sRange1CharSetNames; +Index: gfx/src/ps/nsFontMetricsPS.cpp +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/ps/nsFontMetricsPS.cpp,v +retrieving revision 1.43 +diff -u -3 -p -r1.43 nsFontMetricsPS.cpp +--- gfx/src/ps/nsFontMetricsPS.cpp 17 Apr 2004 21:52:31 -0000 1.43 ++++ gfx/src/ps/nsFontMetricsPS.cpp 26 May 2004 10:01:03 -0000 +@@ -1140,10 +1140,10 @@ nsFontPSFreeType::Init(nsITrueTypeFontCa + + mPixelSize = NSToIntRound(app2dev * mFont->size); + +- mImageDesc.font.face_id = (void*)mEntry; +- mImageDesc.font.pix_width = mPixelSize; +- mImageDesc.font.pix_height = mPixelSize; +- mImageDesc.image_type = 0; ++ mImageDesc->face_id = (FTC_FaceID)&mEntry; ++ mImageDesc->width = mPixelSize; ++ mImageDesc->height = mPixelSize; ++ mImageDesc->flags = 0; + + nsresult rv; + mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); +@@ -1189,7 +1189,7 @@ nsFontPSFreeType::GetWidth(const PRUnich + if (!face) + return 0; + +- FTC_Image_Cache iCache; ++ FTC_ImageCache iCache; + nsresult rv = mFt2->GetImageCache(&iCache); + if (NS_FAILED(rv)) { + NS_ERROR("Failed to get Image Cache"); +@@ -1227,8 +1227,8 @@ nsFontPSFreeType::getFTFace() + + FTC_Manager cManager; + mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); ++ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id, ++ &face); + NS_ASSERTION(rv==0, "failed to get face/size"); + if (rv) + return nsnull; +@@ -1621,16 +1621,16 @@ void nsFT2Type8Generator::GeneratePSFont + mEntry->GetFamilyName(fontName); + mEntry->GetStyleName(styleName); + +- mImageDesc.font.face_id = (void*)mEntry; ++ mImageDesc->face_id = (FTC_FaceID)&mEntry; + // TT glyph has no relation to size +- mImageDesc.font.pix_width = 16; +- mImageDesc.font.pix_height = 16; +- mImageDesc.image_type = 0; ++ mImageDesc->width = 16; ++ mImageDesc->height = 16; ++ mImageDesc->flags = 0; + FT_Face face = nsnull; + FTC_Manager cManager; + mFt2->GetFTCacheManager(&cManager); +- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, +- &face, nsnull); ++ nsresult rv = mFt2->ManagerLookupFace(cManager, mImageDesc->face_id, ++ &face); + if (NS_FAILED(rv)) + return; + +Index: gfx/src/ps/nsFontMetricsPS.h +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/ps/nsFontMetricsPS.h,v +retrieving revision 1.25 +diff -u -3 -p -r1.25 nsFontMetricsPS.h +--- gfx/src/ps/nsFontMetricsPS.h 17 Apr 2004 21:52:31 -0000 1.25 ++++ gfx/src/ps/nsFontMetricsPS.h 26 May 2004 10:01:03 -0000 +@@ -319,7 +319,7 @@ protected: + nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID; + nsCOMPtr<nsIFreeType2> mFt2; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; ++ FTC_ImageType mImageDesc; + + + static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont, +@@ -362,7 +362,7 @@ public: + protected: + nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry; + nsCOMPtr<nsIFreeType2> mFt2; +- FTC_Image_Desc mImageDesc; ++ FTC_ImageType mImageDesc; + }; + #endif + +Index: gfx/src/x11shared/nsFontFreeType.cpp +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/x11shared/nsFontFreeType.cpp,v +retrieving revision 1.14 +diff -u -3 -p -r1.14 nsFontFreeType.cpp +--- gfx/src/x11shared/nsFontFreeType.cpp 17 Apr 2004 21:52:34 -0000 1.14 ++++ gfx/src/x11shared/nsFontFreeType.cpp 26 May 2004 10:01:03 -0000 +@@ -177,7 +177,7 @@ nsFreeTypeFont::getFTFace() + FTC_Manager mgr; + nsresult rv; + mFt2->GetFTCacheManager(&mgr); +- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull); ++ rv = mFt2->ManagerLookupFace(mgr, mImageDesc->face_id, &face); + NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size"); + if (NS_FAILED(rv)) + return nsnull; +@@ -191,22 +191,15 @@ nsFreeTypeFont::nsFreeTypeFont(nsITrueTy + PRBool embedded_bimap = PR_FALSE; + mFaceID = aFaceID; + mPixelSize = aPixelSize; +- mImageDesc.font.face_id = (void*)mFaceID; +- mImageDesc.font.pix_width = aPixelSize; +- mImageDesc.font.pix_height = aPixelSize; +- mImageDesc.image_type = 0; ++ mImageDesc->face_id = (FTC_FaceID)&mFaceID; ++ mImageDesc->width = aPixelSize; ++ mImageDesc->height = aPixelSize; ++ mImageDesc->flags = 0; + + if (aPixelSize < nsFreeType2::gAntiAliasMinimum) { +- mImageDesc.image_type |= ftc_image_mono; + anti_alias = PR_FALSE; + } + +- if (nsFreeType2::gFreeType2Autohinted) +- mImageDesc.image_type |= ftc_image_flag_autohinted; +- +- if (nsFreeType2::gFreeType2Unhinted) +- mImageDesc.image_type |= ftc_image_flag_unhinted; +- + PRUint32 num_embedded_bitmaps, i; + PRInt32* embedded_bitmapheights; + mFaceID->GetEmbeddedBitmapHeights(&num_embedded_bitmaps, +@@ -218,7 +211,6 @@ nsFreeTypeFont::nsFreeTypeFont(nsITrueTy + if (embedded_bitmapheights[i] == aPixelSize) { + embedded_bimap = PR_TRUE; + // unhinted must be set for embedded bitmaps to be used +- mImageDesc.image_type |= ftc_image_flag_unhinted; + break; + } + } +@@ -312,7 +304,7 @@ nsFreeTypeFont::doGetBoundingMetrics(con + if (!face) + return NS_ERROR_FAILURE; + +- FTC_Image_Cache icache; ++ FTC_ImageCache icache; + mFt2->GetImageCache(&icache); + if (!icache) + return NS_ERROR_FAILURE; +@@ -401,7 +393,7 @@ nsFreeTypeFont::GetWidth(const PRUnichar + if (!face) + return 0; + +- FTC_Image_Cache icache; ++ FTC_ImageCache icache; + mFt2->GetImageCache(&icache); + if (!icache) + return 0; +@@ -723,7 +715,7 @@ nsFreeTypeXImage::DrawString(nsRendering + if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2); + #endif + +- FTC_Image_Cache icache; ++ FTC_ImageCache icache; + mFt2->GetImageCache(&icache); + if (!icache) + return 0; +Index: gfx/src/x11shared/nsFontFreeType.h +=================================================================== +RCS file: /cvsroot/mozilla/gfx/src/x11shared/nsFontFreeType.h,v +retrieving revision 1.10 +diff -u -3 -p -r1.10 nsFontFreeType.h +--- gfx/src/x11shared/nsFontFreeType.h 17 Apr 2004 21:52:34 -0000 1.10 ++++ gfx/src/x11shared/nsFontFreeType.h 26 May 2004 10:01:03 -0000 +@@ -110,7 +110,7 @@ protected: + XImage *GetXImage(PRUint32 width, PRUint32 height); + nsITrueTypeFontCatalogEntry *mFaceID; + PRUint16 mPixelSize; +- FTC_Image_Desc mImageDesc; ++ FTC_ImageType mImageDesc; + nsCOMPtr<nsIFreeType2> mFt2; + }; + Index: www/mozilla/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp =================================================================== RCS file: www/mozilla/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp diff -N www/mozilla/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp --- www/mozilla/files/patch-gfx_src_gtk_nsFontMetricsXft.cpp 17 Mar 2004 07:11:41 -0000 1.5 +++ /dev/null 1 Jan 1970 00:00:00 -0000 @@ -1,12 +0,0 @@ ---- gfx/src/gtk/nsFontMetricsXft.cpp.orig Wed Mar 17 02:08:01 2004 -+++ gfx/src/gtk/nsFontMetricsXft.cpp Wed Mar 17 02:08:15 2004 -@@ -65,7 +65,8 @@ - - #include <gdk/gdkx.h> - #include <freetype/tttables.h> --#include <freetype/freetype.h> -+#include <ft2build.h> -+#include FT_FREETYPE_H - - #define FORCE_PR_LOG - #include "prlog.h" --- freetype-219-up.diff ends here --- >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200503040209.j2429le2009332>