Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 45219 Details for
Bug 73255
gecko-sdk package will not compile with freetype >= 2.1.8
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
a rename of the excellent patch made by agriffis to suit gecko-sdk
gecko-sdk-1.7.3-4ft2.patch (text/plain), 21.84 KB, created by
scott
on 2004-12-03 12:57:05 UTC
(
hide
)
Description:
a rename of the excellent patch made by agriffis to suit gecko-sdk
Filename:
MIME Type:
Creator:
scott
Created:
2004-12-03 12:57:05 UTC
Size:
21.84 KB
patch
obsolete
>This patch is from >https://bugzilla.mozilla.org/show_bug.cgi?id=234035#c65 to enable >linking against freetype-2.1.8+. It disables the experimental >freetype caching. I modified this patch slightly to apply to 1.7.3; >some things had moved around in the files since the original patch. > >Note this is the same patch as we apply to mozilla-firefox-1.0 > >15 Nov 2004 agriffis > >--- gfx/idl/nsIFreeType2.idl.agriffis 2004-04-15 21:09:33.000000000 -0400 >+++ gfx/idl/nsIFreeType2.idl 2004-11-15 13:29:05.120343408 -0500 >@@ -98,8 +98,6 @@ > { > > readonly attribute FT_Library library; >- readonly attribute FTC_Manager FTCacheManager; >- readonly attribute FTC_Image_Cache ImageCache; > > void doneFace(in FT_Face face); > void doneFreeType(in FT_Library lib); >@@ -114,17 +112,8 @@ > in FT_Long face_num, out FT_Face face); > void outlineDecompose(in FT_Outline_p outline, > in const_FT_Outline_Funcs_p funcs, in voidPtr p); >+ void setPixelSizes(in FT_Face face, in FT_UInt width, in FT_UInt height); > void setCharmap(in FT_Face face, in FT_CharMap charmap); >- void imageCacheLookup(in FTC_Image_Cache cache, in FTC_Image_Desc_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 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); > /* #ifdef MOZ_SVG */ > void glyphTransform(in FT_Glyph glyph, in FT_Matrix_p matrix, > in FT_Vector_p delta); >--- gfx/src/ps/nsFontMetricsPS.h.agriffis 2003-04-22 12:25:09.000000000 -0400 >+++ gfx/src/ps/nsFontMetricsPS.h 2004-11-15 13:37:58.431267824 -0500 >@@ -320,7 +320,8 @@ > nsCOMPtr<nsITrueTypeFontCatalogEntry> mFaceID; > nsCOMPtr<nsIFreeType2> mFt2; > PRUint16 mPixelSize; >- FTC_Image_Desc mImageDesc; >+ FT_Face mFace; >+ FT_Library mFreeTypeLibrary; > > > static PRBool AddUserPref(nsIAtom *aLang, const nsFont& aFont, >@@ -363,7 +364,8 @@ > protected: > nsCOMPtr<nsITrueTypeFontCatalogEntry> mEntry; > nsCOMPtr<nsIFreeType2> mFt2; >- FTC_Image_Desc mImageDesc; >+ FT_Face mFace; >+ FT_Library mFreeTypeLibrary; > }; > #endif > >--- gfx/src/ps/nsFontMetricsPS.cpp.agriffis 2004-02-04 20:57:05.000000000 -0500 >+++ gfx/src/ps/nsFontMetricsPS.cpp 2004-11-15 13:29:05.123342952 -0500 >@@ -1141,21 +1141,26 @@ > > 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; >- > nsresult rv; > mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); > if (NS_FAILED(rv)) { >+ NS_ERROR("failed to get ft2 service"); >+ return NS_ERROR_FAILURE; >+ } >+ >+ if (NS_FAILED(mFt2->GetLibrary(&mFreeTypeLibrary))) { >+ NS_ERROR("failed to get ft2 library"); > return NS_ERROR_FAILURE; > } >+ >+ mFace = nsnull; > return NS_OK; > } > > nsFontPSFreeType::~nsFontPSFreeType() > { >+ if (mFace) >+ mFt2->DoneFace(mFace); > mEntry = nsnull; > } > >@@ -1180,32 +1185,26 @@ > nscoord > nsFontPSFreeType::GetWidth(const PRUnichar* aString, PRUint32 aLength) > { >- FT_UInt glyph_index; >- FT_Glyph glyph; >- double origin_x = 0; >- > // get the face/size from the FreeType cache > FT_Face face = getFTFace(); > NS_ASSERTION(face, "failed to get face/size"); > if (!face) > return 0; > >- FTC_Image_Cache iCache; >- nsresult rv = mFt2->GetImageCache(&iCache); >- if (NS_FAILED(rv)) { >- NS_ERROR("Failed to get Image Cache"); >- return 0; >- } >+ FT_UInt glyph_index; >+ FT_Glyph glyph; >+ double origin_x = 0; > >+ // XXX : we might need some caching here > for (PRUint32 i=0; i<aLength; i++) { >- mFt2->GetCharIndex((FT_Face)face, aString[i], &glyph_index); >- nsresult rv = mFt2->ImageCacheLookup(iCache, &mImageDesc, >- glyph_index, &glyph); >- if (NS_FAILED(rv)) { >+ mFt2->GetCharIndex(face, aString[i], &glyph_index); >+ if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) || >+ NS_FAILED(mFt2->GetGlyph(face->glyph, &glyph))) { > origin_x += FT_REG_TO_16_16(face->size->metrics.x_ppem/2 + 2); > continue; > } > origin_x += glyph->advance.x; >+ mFt2->DoneGlyph(glyph); > } > > NS_ENSURE_TRUE(mFontMetrics, 0); >@@ -1224,16 +1223,26 @@ > FT_Face > nsFontPSFreeType::getFTFace() > { >- FT_Face face = nsnull; >- >- FTC_Manager cManager; >- mFt2->GetFTCacheManager(&cManager); >- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, >- &face, nsnull); >+ if (mFace) return mFace; >+ >+ nsCAutoString fileName; >+ PRInt16 faceIndex; >+ mEntry->GetFileName(fileName); >+ mEntry->GetFaceIndex(&faceIndex); >+ >+ nsresult rv = >+ mFt2->NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace); >+ > NS_ASSERTION(rv==0, "failed to get face/size"); >- if (rv) >- return nsnull; >- return face; >+ if (NS_FAILED(rv)) { >+ return nsnull; >+ } >+ >+ if (NS_FAILED(mFt2->SetPixelSizes(mFace, mPixelSize, 0))) { >+ return nsnull; >+ } >+ >+ return mFace; > } > > nscoord >@@ -1618,26 +1627,23 @@ > > void nsFT2Type8Generator::GeneratePSFont(FILE* aFile) > { >- nsCAutoString fontName, styleName; >- mEntry->GetFamilyName(fontName); >- mEntry->GetStyleName(styleName); >- >- mImageDesc.font.face_id = (void*)mEntry; >- // TT glyph has no relation to size >- mImageDesc.font.pix_width = 16; >- mImageDesc.font.pix_height = 16; >- mImageDesc.image_type = 0; >- FT_Face face = nsnull; >- FTC_Manager cManager; >- mFt2->GetFTCacheManager(&cManager); >- nsresult rv = mFt2->ManagerLookupSize(cManager, &mImageDesc.font, >- &face, nsnull); >- if (NS_FAILED(rv)) >- return; >+ if (mFace == nsnull) { >+ nsCAutoString fileName; >+ PRInt16 faceIndex; >+ >+ mEntry->GetFileName(fileName); >+ mEntry->GetFaceIndex(&faceIndex); >+ if (NS_FAILED(mFt2-> >+ NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace))) { >+ return; >+ } >+ NS_ASSERTION(mFace != nsnull, "mFace is null"); >+ } >+ > > int wmode = 0; > if (!mSubset.IsEmpty()) >- FT2SubsetToType8(face, mSubset.get(), mSubset.Length(), wmode, aFile); >+ FT2SubsetToType8(mFace, mSubset.get(), mSubset.Length(), wmode, aFile); > } > #endif //MOZ_ENABLE_FREETYPE2 > >--- gfx/src/x11shared/nsFontFreeType.cpp.agriffis 2003-12-25 03:24:52.000000000 -0500 >+++ gfx/src/x11shared/nsFontFreeType.cpp 2004-11-15 13:29:05.125342648 -0500 >@@ -173,15 +173,22 @@ > FT_Face > nsFreeTypeFont::getFTFace() > { >- FT_Face face = nsnull; >- FTC_Manager mgr; >+ if (mFace) return mFace; >+ >+ nsCAutoString fileName; >+ PRInt16 faceIndex; >+ mFaceID->GetFileName(fileName); >+ mFaceID->GetFaceIndex(&faceIndex); >+ > nsresult rv; >- mFt2->GetFTCacheManager(&mgr); >- rv = mFt2->ManagerLookupSize(mgr, &mImageDesc.font, &face, nsnull); >+ rv = mFt2->NewFace(mFreeTypeLibrary, fileName.get(), faceIndex, &mFace); > NS_ASSERTION(NS_SUCCEEDED(rv), "failed to get face/size"); > if (NS_FAILED(rv)) > return nsnull; >- return face; >+ rv = mFt2->SetPixelSizes(mFace, mPixelSize, 0); >+ if (NS_FAILED(rv)) >+ return nsnull; >+ return mFace; > } > > nsFreeTypeFont::nsFreeTypeFont(nsITrueTypeFontCatalogEntry *aFaceID, >@@ -191,21 +198,20 @@ > 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; >+//mLoadFlag = FT_LOAD_RENDER; >+ mLoadFlag = 0; >+ mFace = nsnull; > > if (aPixelSize < nsFreeType2::gAntiAliasMinimum) { >- mImageDesc.image_type |= ftc_image_mono; >+ mLoadFlag |= FT_LOAD_MONOCHROME; > anti_alias = PR_FALSE; > } > > if (nsFreeType2::gFreeType2Autohinted) >- mImageDesc.image_type |= ftc_image_flag_autohinted; >+ mLoadFlag |= FT_LOAD_FORCE_AUTOHINT; > > if (nsFreeType2::gFreeType2Unhinted) >- mImageDesc.image_type |= ftc_image_flag_unhinted; >+ mLoadFlag |= FT_LOAD_NO_HINTING; > > PRUint32 num_embedded_bitmaps, i; > PRInt32* embedded_bitmapheights; >@@ -218,7 +224,7 @@ > 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; >+ mLoadFlag |= FT_LOAD_NO_HINTING; > break; > } > } >@@ -230,6 +236,11 @@ > mFt2 = do_GetService(NS_FREETYPE2_CONTRACTID, &rv); > NS_ASSERTION(NS_SUCCEEDED(rv), "failed to find FreeType routines"); > >+ if (mFt2) { >+ rv = mFt2->GetLibrary(&mFreeTypeLibrary); >+ NS_ASSERTION(NS_SUCCEEDED(rv), "failed to find FreeType library"); >+ } >+ > FREETYPE_FONT_PRINTF(("anti_alias=%d, embedded_bitmap=%d, " > "AutoHinted=%d, gFreeType2Unhinted = %d, " > "size=%dpx, \"%s\"", >@@ -288,8 +299,6 @@ > PRInt32* aDescent, > PRInt32* aWidth) > { >- nsresult rv; >- > *aLeftBearing = 0; > *aRightBearing = 0; > *aAscent = 0; >@@ -312,11 +321,6 @@ > if (!face) > return NS_ERROR_FAILURE; > >- FTC_Image_Cache icache; >- mFt2->GetImageCache(&icache); >- if (!icache) >- return NS_ERROR_FAILURE; >- > // get the text size > PRUint32 i, extraSurrogateLength; > for (i=0; i<aLength; i+=1+extraSurrogateLength) { >@@ -337,16 +341,17 @@ > } > mFt2->GetCharIndex(face, code_point, &glyph_index); > >- //NS_ASSERTION(glyph_index,"failed to get glyph"); >- if (glyph_index) { >- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); >- NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); >- } >- if ((glyph_index) && (NS_SUCCEEDED(rv))) { >+ // XXX : we need some caching here >+ if (glyph_index && >+ NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) && >+// NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) && >+ NS_SUCCEEDED(mFt2->GetGlyph(face->glyph, &glyph))) { > mFt2->GlyphGetCBox(glyph, ft_glyph_bbox_pixels, &glyph_bbox); > advance = FT_16_16_TO_REG(glyph->advance.x); >+ mFt2->DoneGlyph(glyph); > } > else { >+ NS_ERROR("failed to get or load glyph"); > // allocate space to draw an empty box in > GetFallbackGlyphMetrics(&glyph_bbox, face); > advance = glyph_bbox.xMax + 1; >@@ -401,11 +406,6 @@ > if (!face) > return 0; > >- FTC_Image_Cache icache; >- mFt2->GetImageCache(&icache); >- if (!icache) >- return 0; >- > PRUint32 i, extraSurrogateLength; > for (i=0; i<aLength; i+=1+extraSurrogateLength) { > extraSurrogateLength=0; >@@ -418,15 +418,18 @@ > // skip aString[i+1], it is already used as low surrogate > extraSurrogateLength = 1; > } >+ >+ // XXX : we need some caching here > mFt2->GetCharIndex((FT_Face)face, code_point, &glyph_index); >- nsresult rv; >- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); >- NS_ASSERTION(NS_SUCCEEDED(rv),"error loading glyph"); >- if (NS_FAILED(rv)) { >+ if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) || >+// if (NS_FAILED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) || >+ NS_FAILED(mFt2->GetGlyph(face->glyph, &glyph))) { >+ NS_ERROR("error loading glyph"); > origin_x += face->size->metrics.x_ppem/2 + 2; > continue; > } > origin_x += FT_16_16_TO_REG(glyph->advance.x); >+ mFt2->DoneGlyph(glyph); > } > > return origin_x; >@@ -723,11 +726,6 @@ > if (y%4==0) (*blendPixelFunc)(sub_image, y, ascent-1, black, 255/2); > #endif > >- FTC_Image_Cache icache; >- mFt2->GetImageCache(&icache); >- if (!icache) >- return 0; >- > // > // Get aa glyphs and blend with background > // >@@ -736,7 +734,6 @@ > for (i=0; i<aLength; i+=1+extraSurrogateLength) { > FT_UInt glyph_index; > FT_Glyph glyph; >- nsresult rv; > FT_BBox glyph_bbox; > FT_ULong code_point = aString[i]; > extraSurrogateLength = 0; >@@ -750,11 +747,12 @@ > extraSurrogateLength = 1; > } > >+ // XXX : we need some caching here > mFt2->GetCharIndex(face, code_point, &glyph_index); >- if (glyph_index) { >- rv = mFt2->ImageCacheLookup(icache, &mImageDesc, glyph_index, &glyph); >- } >- if ((glyph_index) && (NS_SUCCEEDED(rv))) { >+ if (glyph_index && >+ NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, mLoadFlag)) && >+// NS_SUCCEEDED(mFt2->LoadGlyph(face, glyph_index, FT_LOAD_DEFAULT)) && >+ NS_SUCCEEDED(mFt2->GetGlyph(face->glyph, &glyph))) { > mFt2->GlyphGetCBox(glyph, ft_glyph_bbox_pixels, &glyph_bbox); > } > else { >@@ -775,13 +773,26 @@ > continue; > } > >- FT_BitmapGlyph slot = (FT_BitmapGlyph)glyph; >+ FT_BitmapGlyph slot; >+ >+ if (glyph->format != FT_GLYPH_FORMAT_BITMAP) >+ { >+ if (mFt2->GlyphToBitmap(&glyph, FT_RENDER_MODE_NORMAL, 0, 1)) { >+ NS_ERROR("failed to convert outline to bitmap "); >+ XDestroyImage(sub_image); >+ mFt2->DoneGlyph(glyph); >+ return 0; >+ } >+ } >+ >+ slot = (FT_BitmapGlyph)glyph; > nsAntiAliasedGlyph aaglyph(glyph_bbox.xMax-glyph_bbox.xMin, > glyph_bbox.yMax-glyph_bbox.yMin, 0); > PRUint8 buf[IMAGE_BUFFER_SIZE]; // try to use the stack for data > if (!aaglyph.WrapFreeType(&glyph_bbox, slot, buf, IMAGE_BUFFER_SIZE)) { > NS_ERROR("failed to wrap freetype image"); > XDestroyImage(sub_image); >+ mFt2->DoneGlyph(glyph); > return 0; > } > >@@ -815,6 +826,7 @@ > x_pos + aaglyph.GetLBearing(), ascent-glyph_bbox.yMax); > > x_pos += aaglyph.GetAdvance(); >+ mFt2->DoneGlyph(glyph); > } > > // >--- gfx/src/x11shared/nsFontFreeType.h.agriffis 2003-04-22 12:25:13.000000000 -0400 >+++ gfx/src/x11shared/nsFontFreeType.h 2004-11-15 13:29:05.125342648 -0500 >@@ -110,8 +110,10 @@ > XImage *GetXImage(PRUint32 width, PRUint32 height); > nsITrueTypeFontCatalogEntry *mFaceID; > PRUint16 mPixelSize; >- FTC_Image_Desc mImageDesc; > nsCOMPtr<nsIFreeType2> mFt2; >+ FT_Face mFace; >+ FT_Int32 mLoadFlag; >+ FT_Library mFreeTypeLibrary; > }; > > void WeightTableInitCorrection(PRUint8*, PRUint8, double); >--- gfx/src/freetype/nsFreeType.cpp.agriffis 2004-02-07 10:22:30.000000000 -0500 >+++ gfx/src/freetype/nsFreeType.cpp 2004-11-15 13:29:05.121343256 -0500 >@@ -109,12 +109,8 @@ > {"FT_Load_Glyph", NS_FT2_OFFSET(nsFT_Load_Glyph), PR_TRUE}, > {"FT_New_Face", NS_FT2_OFFSET(nsFT_New_Face), PR_TRUE}, > {"FT_Outline_Decompose", NS_FT2_OFFSET(nsFT_Outline_Decompose), PR_TRUE}, >+ {"FT_Set_Pixel_Sizes", NS_FT2_OFFSET(nsFT_Set_Pixel_Sizes), 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_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}, > // #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}, >@@ -274,59 +270,21 @@ > } > > NS_IMETHODIMP >-nsFreeType2::SetCharmap(FT_Face face, FT_CharMap charmap) >-{ >- // call the FreeType2 function via the function pointer >- FT_Error error = nsFT_Set_Charmap(face, charmap); >- return error ? NS_ERROR_FAILURE : NS_OK; >-} >- >-NS_IMETHODIMP >-nsFreeType2::ImageCacheLookup(FTC_Image_Cache cache, FTC_Image_Desc *desc, >- FT_UInt glyphID, FT_Glyph *glyph) >-{ >- // call the FreeType2 function via the function pointer >- FT_Error error = nsFTC_Image_Cache_Lookup(cache, desc, glyphID, glyph); >- return error ? NS_ERROR_FAILURE : NS_OK; >-} >- >-NS_IMETHODIMP >-nsFreeType2::ManagerLookupSize(FTC_Manager manager, FTC_Font font, >- FT_Face *face, FT_Size *size) >+nsFreeType2::SetPixelSizes(FT_Face face, FT_UInt width, FT_UInt height) > { > // call the FreeType2 function via the function pointer >- FT_Error error = nsFTC_Manager_Lookup_Size(manager, font, face, size); >+ FT_Error error = nsFT_Set_Pixel_Sizes(face, width, height); > return error ? NS_ERROR_FAILURE : NS_OK; > } >- >-NS_IMETHODIMP >-nsFreeType2::ManagerDone(FTC_Manager manager) >-{ >- // call the FreeType2 function via the function pointer >- nsFTC_Manager_Done(manager); >- return NS_OK; >-} >- >+ > NS_IMETHODIMP >-nsFreeType2::ManagerNew(FT_Library library, FT_UInt max_faces, >- FT_UInt max_sizes, FT_ULong max_bytes, >- FTC_Face_Requester requester, FT_Pointer req_data, >- FTC_Manager *manager) >+nsFreeType2::SetCharmap(FT_Face face, FT_CharMap charmap) > { > // call the FreeType2 function via the function pointer >- FT_Error error = nsFTC_Manager_New(library, max_faces, max_sizes, max_bytes, >- requester, req_data, manager); >+ FT_Error error = nsFT_Set_Charmap(face, charmap); > return error ? NS_ERROR_FAILURE : NS_OK; > } > >-NS_IMETHODIMP >-nsFreeType2::ImageCacheNew(FTC_Manager manager, FTC_Image_Cache *cache) >-{ >- // call the FreeType2 function via the function pointer >- FT_Error error = nsFTC_Image_Cache_New(manager, cache); >- return error ? NS_ERROR_FAILURE : NS_OK; >-} >- > // #ifdef MOZ_SVG > NS_IMETHODIMP > nsFreeType2::GlyphTransform(FT_Glyph glyph, FT_Matrix * matrix, FT_Vector * delta) >@@ -389,20 +347,6 @@ > } > > NS_IMETHODIMP >-nsFreeType2::GetImageCache(FTC_Image_Cache *aCache) >-{ >- *aCache = mImageCache; >- return NS_OK; >-} >- >-NS_IMETHODIMP >-nsFreeType2::GetFTCacheManager(FTC_Manager *aManager) >-{ >- *aManager = mFTCacheManager; >- return NS_OK; >-} >- >-NS_IMETHODIMP > nsFreeType2::GetLibrary(FT_Library *aLibrary) > { > *aLibrary = mFreeTypeLibrary; >@@ -425,8 +369,6 @@ > { > mSharedLib = nsnull; > mFreeTypeLibrary = nsnull; >- mFTCacheManager = nsnull; >- mImageCache = nsnull; > } > > // I would like to make this a static member function but the compilier >@@ -456,12 +398,6 @@ > delete gFreeTypeFaces; > gFreeTypeFaces = nsnull; > } >- // mImageCache released by cache manager >- if (mFTCacheManager) { >- // use "this->" to make sure it is obivious we are calling the member func >- this->ManagerDone(mFTCacheManager); >- mFTCacheManager = nsnull; >- } > if (mFreeTypeLibrary) { > // use "this->" to make sure it is obivious we are calling the member func > this->DoneFreeType(mFreeTypeLibrary); >@@ -658,17 +594,6 @@ > mFreeTypeLibrary = nsnull; > goto cleanup_and_return; > } >- // use "this->" to make sure it is obivious we are calling the member func >- rv = this->ManagerNew(mFreeTypeLibrary, 0, 0, 0, nsFreeTypeFaceRequester, >- this, &mFTCacheManager); >- NS_ASSERTION(NS_SUCCEEDED(rv), "failed to create FreeType Cache manager"); >- if (NS_FAILED(rv)) >- goto cleanup_and_return; >- // use "this->" to make sure it is obivious we are calling the member func >- rv = this->ImageCacheNew(mFTCacheManager, &mImageCache); >- NS_ASSERTION(NS_SUCCEEDED(rv), "failed to create FreeType image cache"); >- if (NS_FAILED(rv)) >- goto cleanup_and_return; > return PR_TRUE; > > cleanup_and_return: >--- gfx/src/freetype/nsFreeType.h.agriffis 2004-04-16 17:31:42.000000000 -0400 >+++ gfx/src/freetype/nsFreeType.h 2004-11-15 13:29:05.122343104 -0500 >@@ -102,15 +102,8 @@ > typedef FT_Error (*FT_Outline_Decompose_t) > (FT_Outline*, const FT_Outline_Funcs*, void*); > typedef FT_Error (*FT_New_Face_t)(FT_Library, const char*, FT_Long, FT_Face*); >+typedef FT_Error (*FT_Set_Pixel_Sizes_t)(FT_Face face, FT_UInt, FT_UInt); > 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*); >-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*); > // #ifdef MOZ_SVG > typedef FT_Error (*FT_Glyph_Transform_t)(FT_Glyph, FT_Matrix*, FT_Vector*); > typedef FT_Error (*FT_Get_Kerning_t) >@@ -163,12 +156,8 @@ > FT_Load_Glyph_t nsFT_Load_Glyph; > FT_New_Face_t nsFT_New_Face; > FT_Outline_Decompose_t nsFT_Outline_Decompose; >+ FT_Set_Pixel_Sizes_t nsFT_Set_Pixel_Sizes; > 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_Done_t nsFTC_Manager_Done; >- FTC_Manager_New_t nsFTC_Manager_New; >- FTC_Image_Cache_New_t nsFTC_Image_Cache_New; > // #ifdef MOZ_SVG > FT_Glyph_Transform_t nsFT_Glyph_Transform; > FT_Get_Kerning_t nsFT_Get_Kerning; >@@ -181,9 +170,9 @@ > // this array needs to be big enough to hold all the function pointers > // plus one extra for the null at the end > // #ifdef MOZ_SVG >- static FtFuncList FtFuncs[24]; >+ static FtFuncList FtFuncs[20]; > // #else >-// static FtFuncList FtFuncs[20]; >+// static FtFuncList FtFuncs[17]; > // #endif > > protected: >@@ -212,8 +201,6 @@ > > PRLibrary *mSharedLib; > FT_Library mFreeTypeLibrary; >- FTC_Manager mFTCacheManager; >- FTC_Image_Cache mImageCache; > > static nsHashtable *sFontFamilies; > static nsHashtable *sRange1CharSetNames;
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 73255
: 45219