ports/78385: [PATCH] Update Freetype to 2.1.9

Dejan Lesjak dejan.lesjak at ijs.si
Fri Mar 4 02:20:14 UTC 2005


>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 at 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 at includedir@/freetype2"
-- if test "@includedir@" != "/usr/include" ; then
--  echo $cflags -I at includedir@
-- else
--  echo $cflags
-- fi
-+    cflags="-I at includedir@/freetype2 -I at includedir@"
-+    echo $cflags
+-  cflags="-I$includedir/freetype2"
+-  if test "$includedir" != "/usr/include" ; then
+-    echo $cflags -I$includedir
+-  else
+-    echo $cflags
+-  fi
++  cflags="-I at includedir@/freetype2 -I at 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"),
+-                                              &times);
++                                              (nsLiteralString *)&times);
+ }
+ 
+ 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"),
+-                                              &times);
++                                              (nsDependentString *)&times);
+ }
+ 
+ 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:



More information about the freebsd-ports-bugs mailing list