WebCore:
authormitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 9 Sep 2008 18:12:06 +0000 (18:12 +0000)
committermitz@apple.com <mitz@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 9 Sep 2008 18:12:06 +0000 (18:12 +0000)
        Reviewed by Darin Adler.

        - WebCore part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard

        * WebCore.Tiger.exp:
        * WebCore.base.exp:
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::initFontData):
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformDestroy):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

WebKit/mac:

        Reviewed by Darin Adler.

        - WebKit part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard

        * WebCoreSupport/WebSystemInterface.m:
        (InitWebCoreSystemInterface):

WebKitLibraries:

        Reviewed by Darin Adler.

        - WebKitLibraries part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard

        * WebKitSystemInterface.h:
        * libWebKitSystemInterfaceLeopard.a:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@36296 268f45cc-cd09-0410-ab3c-d52691b4dbfc

13 files changed:
WebCore/ChangeLog
WebCore/WebCore.Tiger.exp
WebCore/WebCore.base.exp
WebCore/platform/graphics/SimpleFontData.h
WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp
WebCore/platform/graphics/mac/SimpleFontDataMac.mm
WebCore/platform/mac/WebCoreSystemInterface.h
WebCore/platform/mac/WebCoreSystemInterface.mm
WebKit/mac/ChangeLog
WebKit/mac/WebCoreSupport/WebSystemInterface.m
WebKitLibraries/ChangeLog
WebKitLibraries/WebKitSystemInterface.h
WebKitLibraries/libWebKitSystemInterfaceLeopard.a

index 3f31bae6730d679889f67ee01583056b930e3e61..f2e181e38d5ee9dd6d9cec6d8f30f8c623f61208 100644 (file)
@@ -1,3 +1,21 @@
+2008-09-09  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Darin Adler.
+
+        - WebCore part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard
+
+        * WebCore.Tiger.exp:
+        * WebCore.base.exp:
+        * platform/graphics/SimpleFontData.h:
+        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
+        (WebCore::GlyphPage::fill):
+        * platform/graphics/mac/SimpleFontDataMac.mm:
+        (WebCore::initFontData):
+        (WebCore::SimpleFontData::platformInit):
+        (WebCore::SimpleFontData::platformDestroy):
+        * platform/mac/WebCoreSystemInterface.h:
+        * platform/mac/WebCoreSystemInterface.mm:
+
 2008-09-09  Kevin McCullough  <kmccullough@apple.com>
 
         Reviewed by Tim.
index cd91799c365e7601fcb0f6b7b64635f0630cd82c..72646941be8e09b4b2c6e8040ce9f217479d088a 100644 (file)
@@ -1,5 +1,12 @@
+_wkClearGlyphVector
+_wkCopyFullFontName
+_wkGetATSStyleGroup
 _wkGetCGFontFromNSFont
 _wkGetFontMetrics
+_wkGetGlyphVectorFirstRecord
+_wkGetGlyphVectorNumGlyphs
+_wkGetGlyphVectorRecordSize
 _wkGetNSFontATSUFontId
+_wkInitializeGlyphVector
+_wkReleaseStyleGroup
 _wkSupportsMultipartXMixedReplace
-_wkCopyFullFontName
index 061aea9ba0386178364830d48a0d032cfd85b202..f2632b15a3dbb39c096330807e1de28932bd57c0 100644 (file)
@@ -1,3 +1,4 @@
+
 .objc_class_name_DOMAbstractView
 .objc_class_name_DOMAttr
 .objc_class_name_DOMCDATASection
@@ -871,7 +872,6 @@ _hasCaseInsensitiveSuffix
 _suggestedFilenameWithMIMEType
 _wkAdvanceDefaultButtonPulseAnimation
 _wkCGContextGetShouldSmoothFonts
-_wkClearGlyphVector
 _wkConvertCharToGlyphs
 _wkCreateCustomCFReadStream
 _wkCreateNSURLConnectionDelegateProxy
@@ -891,26 +891,21 @@ _wkDrawMediaSliderThumb
 _wkDrawMediaSliderTrack
 _wkDrawMediaUnMuteButton
 _wkDrawTextFieldCellFocusRing
-_wkGetATSStyleGroup
 _wkGetExtensionsForMIMEType
 _wkGetFontInLanguageForCharacter
 _wkGetFontInLanguageForRange
 _wkGetGlyphTransformedAdvances
-_wkGetGlyphVectorFirstRecord
-_wkGetGlyphVectorNumGlyphs
-_wkGetGlyphVectorRecordSize
+_wkGetGlyphsForCharacters
 _wkGetMIMETypeForExtension
 _wkGetNSURLResponseCalculatedExpiration
 _wkGetNSURLResponseLastModifiedDate
 _wkGetNSURLResponseMustRevalidate
 _wkGetPreferredExtensionForMIMEType
 _wkGetWheelEventDeltas
-_wkInitializeGlyphVector
 _wkPopupMenu
 _wkQTMovieDataRate
 _wkQTMovieMaxTimeLoaded
 _wkQTMovieViewSetDrawSynchronously
-_wkReleaseStyleGroup
 _wkSetCGFontRenderingMode
 _wkSetDragImage
 _wkSetNSURLConnectionDefersCallbacks
@@ -921,4 +916,3 @@ _wkSetUpFontCache
 _wkSignalCFReadStreamEnd
 _wkSignalCFReadStreamError
 _wkSignalCFReadStreamHasBytes
-
index 13d3d3ef987c83503f882881f3e0dd02d80c0b09..9b760815a0e95254bea1867ce071f9bffa0eee41 100644 (file)
@@ -172,7 +172,9 @@ public:
 #endif
 
 #if PLATFORM(MAC)
+#ifdef BUILDING_ON_TIGER
     void* m_styleGroup;
+#endif
 #if USE(ATSUI)
     mutable ATSUStyle m_ATSUStyle;
     mutable bool m_ATSUStyleInitialized;
index b9f2da3cec6692393a271c59863104ff28c43429..143e665e96ed54280c0cd0c3c5d30ad82ceb41bd 100644 (file)
@@ -37,6 +37,21 @@ namespace WebCore {
 
 bool GlyphPage::fill(unsigned offset, unsigned length, UChar* buffer, unsigned bufferLength, const SimpleFontData* fontData)
 {
+    bool haveGlyphs = false;
+
+#ifndef BUILDING_ON_TIGER
+    Vector<CGGlyph, 512> glyphs(bufferLength);
+    wkGetGlyphsForCharacters(fontData->platformData().cgFont(), buffer, glyphs.data(), bufferLength);
+
+    for (unsigned i = 0; i < length; ++i) {
+        if (!glyphs[i])
+            setGlyphDataForIndex(offset + i, 0, 0);
+        else {
+            setGlyphDataForIndex(offset + i, glyphs[i], fontData);
+            haveGlyphs = true;
+        }
+    }
+#else
     // Use an array of long so we get good enough alignment.
     long glyphVector[(GLYPH_VECTOR_SIZE + sizeof(long) - 1) / sizeof(long)];
     
@@ -56,7 +71,6 @@ bool GlyphPage::fill(unsigned offset, unsigned length, UChar* buffer, unsigned b
         return false;
     }
 
-    bool haveGlyphs = false;
     ATSLayoutRecord* glyphRecord = (ATSLayoutRecord*)wkGetGlyphVectorFirstRecord(glyphVector);
     for (unsigned i = 0; i < length; i++) {
         Glyph glyph = glyphRecord->glyphID;
@@ -69,6 +83,7 @@ bool GlyphPage::fill(unsigned offset, unsigned length, UChar* buffer, unsigned b
         glyphRecord = (ATSLayoutRecord *)((char *)glyphRecord + wkGetGlyphVectorRecordSize(glyphVector));
     }
     wkClearGlyphVector(&glyphVector);
+#endif
 
     return haveGlyphs;
 }
index fb645ffb797a373fcad079377f3bfa20ab5597ac..300b1c968f67db0a9e9b727f83210a6c8beffcda 100644 (file)
@@ -59,6 +59,7 @@ bool initFontData(SimpleFontData* fontData)
     if (!fontData->m_font.cgFont())
         return false;
 
+#ifdef BUILDING_ON_TIGER
     ATSUStyle fontStyle;
     if (ATSUCreateStyle(&fontStyle) != noErr)
         return false;
@@ -84,6 +85,7 @@ bool initFontData(SimpleFontData* fontData)
     }
 
     ATSUDisposeStyle(fontStyle);
+#endif
 
     return true;
 }
@@ -141,7 +143,9 @@ static NSString* pathFromFont(NSFont *font)
 
 void SimpleFontData::platformInit()
 {
+#ifdef BUILDING_ON_TIGER
     m_styleGroup = 0;
+#endif
 #if USE(ATSUI)
     m_ATSUStyleInitialized = false;
     m_ATSUMirrors = false;
@@ -272,8 +276,10 @@ void SimpleFontData::platformInit()
 
 void SimpleFontData::platformDestroy()
 {
+#ifdef BUILDING_ON_TIGER
     if (m_styleGroup)
         wkReleaseStyleGroup(m_styleGroup);
+#endif
 #if USE(ATSUI)
     if (m_ATSUStyleInitialized)
         ATSUDisposeStyle(m_ATSUStyle);
index 57dafb60e4b528e0005b7159a74e9599d78cd391..5e512e5e636bec9eb606b567788953140eda8905 100644 (file)
@@ -73,13 +73,10 @@ typedef struct QTMovieView QTMovieView;
 extern "C" {
 #endif
 
-#define GLYPH_VECTOR_SIZE (50 * 32)
-
 // In alphabetical order.
 
 extern void (*wkAdvanceDefaultButtonPulseAnimation)(NSButtonCell *);
 extern BOOL (*wkCGContextGetShouldSmoothFonts)(CGContextRef);
-extern void (*wkClearGlyphVector)(void* glyphs);
 extern CFReadStreamRef (*wkCreateCustomCFReadStream)(void *(*formCreate)(CFReadStreamRef, void *), 
     void (*formFinalize)(CFReadStreamRef, void *), 
     Boolean (*formOpen)(CFReadStreamRef, CFStreamError *, Boolean *, void *), 
@@ -89,21 +86,15 @@ extern CFReadStreamRef (*wkCreateCustomCFReadStream)(void *(*formCreate)(CFReadS
     void (*formSchedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *), 
     void (*formUnschedule)(CFReadStreamRef, CFRunLoopRef, CFStringRef, void *),
     void *context);
-extern OSStatus (*wkConvertCharToGlyphs)(void* styleGroup, const UniChar*, unsigned numCharacters, void* glyphs);
 extern id (*wkCreateNSURLConnectionDelegateProxy)(void);
 extern void (*wkDrawBezeledTextFieldCell)(NSRect, BOOL enabled);
 extern void (*wkDrawTextFieldCellFocusRing)(NSTextFieldCell*, NSRect);
 extern void (*wkDrawCapsLockIndicator)(CGContextRef, CGRect);
 extern void (*wkDrawBezeledTextArea)(NSRect, BOOL enabled);
 extern void (*wkDrawFocusRing)(CGContextRef, CGColorRef, int radius);
-extern OSStatus (*wkGetATSStyleGroup)(ATSUStyle, void** styleGroup);
-extern CGFontRef (*wkGetCGFontFromNSFont)(NSFont*);
 extern NSFont* (*wkGetFontInLanguageForRange)(NSFont*, NSString*, NSRange);
 extern NSFont* (*wkGetFontInLanguageForCharacter)(NSFont*, UniChar);
 extern BOOL (*wkGetGlyphTransformedAdvances)(CGFontRef, NSFont*, CGAffineTransform*, ATSGlyphRef*, CGSize* advance);
-extern ATSLayoutRecord* (*wkGetGlyphVectorFirstRecord)(void* glyphVector);
-extern int (*wkGetGlyphVectorNumGlyphs)(void* glyphVector);
-extern size_t (*wkGetGlyphVectorRecordSize)(void* glyphVector);
 extern void (*wkDrawMediaFullscreenButton)(CGContextRef context, CGRect rect, BOOL active);
 extern void (*wkDrawMediaMuteButton)(CGContextRef context, CGRect rect, BOOL active);
 extern void (*wkDrawMediaPauseButton)(CGContextRef context, CGRect rect, BOOL active);
@@ -121,12 +112,10 @@ extern double (*wkGetNSURLResponseCalculatedExpiration)(NSURLResponse *response)
 extern NSDate *(*wkGetNSURLResponseLastModifiedDate)(NSURLResponse *response);
 extern BOOL (*wkGetNSURLResponseMustRevalidate)(NSURLResponse *response);
 extern void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, BOOL* continuous);
-extern OSStatus (*wkInitializeGlyphVector)(int count, void* glyphs);
 extern void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*);
 extern int (*wkQTMovieDataRate)(QTMovie*);
 extern float (*wkQTMovieMaxTimeLoaded)(QTMovie*);
 extern void (*wkQTMovieViewSetDrawSynchronously)(QTMovieView*, BOOL);
-extern void (*wkReleaseStyleGroup)(void* group);
 extern void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*);
 extern void (*wkSetDragImage)(NSImage*, NSPoint offset);
 extern void (*wkSetNSURLConnectionDefersCallbacks)(NSURLConnection *, BOOL);
@@ -138,9 +127,23 @@ extern void (*wkSignalCFReadStreamEnd)(CFReadStreamRef stream);
 extern void (*wkSignalCFReadStreamError)(CFReadStreamRef stream, CFStreamError *error);
 extern void (*wkSignalCFReadStreamHasBytes)(CFReadStreamRef stream);
 
-#ifdef BUILDING_ON_TIGER
-extern void (*wkGetFontMetrics)(CGFontRef, int* ascent, int* descent, int* lineGap, unsigned* unitsPerEm);
+#ifndef BUILDING_ON_TIGER
+extern void* wkConvertCharToGlyphs;
+extern void (*wkGetGlyphsForCharacters)(CGFontRef, const UniChar[], CGGlyph[], size_t);
+#else
+#define GLYPH_VECTOR_SIZE (50 * 32)
+
+extern void (*wkClearGlyphVector)(void* glyphs);
+extern OSStatus (*wkConvertCharToGlyphs)(void* styleGroup, const UniChar*, unsigned numCharacters, void* glyphs);
 extern CFStringRef (*wkCopyFullFontName)(CGFontRef font);
+extern OSStatus (*wkGetATSStyleGroup)(ATSUStyle, void** styleGroup);
+extern CGFontRef (*wkGetCGFontFromNSFont)(NSFont*);
+extern void (*wkGetFontMetrics)(CGFontRef, int* ascent, int* descent, int* lineGap, unsigned* unitsPerEm);
+extern ATSLayoutRecord* (*wkGetGlyphVectorFirstRecord)(void* glyphVector);
+extern int (*wkGetGlyphVectorNumGlyphs)(void* glyphVector);
+extern size_t (*wkGetGlyphVectorRecordSize)(void* glyphVector);
+extern OSStatus (*wkInitializeGlyphVector)(int count, void* glyphs);
+extern void (*wkReleaseStyleGroup)(void* group);
 extern BOOL (*wkSupportsMultipartXMixedReplace)(NSMutableURLRequest *);
 #endif
 
index 514365f0d06ddd01caf48162fb250f52f2753aae..29c08c536a25a7a00b9ebbaf64e594c1b2c92bf0 100644 (file)
@@ -28,8 +28,6 @@
 
 void (*wkAdvanceDefaultButtonPulseAnimation)(NSButtonCell *);
 BOOL (*wkCGContextGetShouldSmoothFonts)(CGContextRef);
-void (*wkClearGlyphVector)(void* glyphs);
-OSStatus (*wkConvertCharToGlyphs)(void* styleGroup, const UniChar*, unsigned numCharacters, void* glyphs);
 NSString* (*wkCreateURLPasteboardFlavorTypeName)(void);
 NSString* (*wkCreateURLNPasteboardFlavorTypeName)(void);
 void (*wkDrawBezeledTextFieldCell)(NSRect, BOOL enabled);
@@ -37,13 +35,9 @@ void (*wkDrawTextFieldCellFocusRing)(NSTextFieldCell*, NSRect);
 void (*wkDrawCapsLockIndicator)(CGContextRef, CGRect);
 void (*wkDrawBezeledTextArea)(NSRect, BOOL enabled);
 void (*wkDrawFocusRing)(CGContextRef, CGColorRef, int radius);
-OSStatus (*wkGetATSStyleGroup)(ATSUStyle, void** styleGroup);
 NSFont* (*wkGetFontInLanguageForRange)(NSFont*, NSString*, NSRange);
 NSFont* (*wkGetFontInLanguageForCharacter)(NSFont*, UniChar);
 BOOL (*wkGetGlyphTransformedAdvances)(CGFontRef, NSFont*, CGAffineTransform*, ATSGlyphRef*, CGSize* advance);
-ATSLayoutRecord* (*wkGetGlyphVectorFirstRecord)(void* glyphVector);
-int (*wkGetGlyphVectorNumGlyphs)(void* glyphVector);
-size_t (*wkGetGlyphVectorRecordSize)(void* glyphVector);
 void (*wkDrawMediaFullscreenButton)(CGContextRef context, CGRect rect, BOOL active);
 void (*wkDrawMediaMuteButton)(CGContextRef context, CGRect rect, BOOL active);
 void (*wkDrawMediaPauseButton)(CGContextRef context, CGRect rect, BOOL active);
@@ -60,12 +54,10 @@ NSTimeInterval (*wkGetNSURLResponseCalculatedExpiration)(NSURLResponse *response
 NSDate *(*wkGetNSURLResponseLastModifiedDate)(NSURLResponse *response);
 BOOL (*wkGetNSURLResponseMustRevalidate)(NSURLResponse *response);
 void (*wkGetWheelEventDeltas)(NSEvent*, float* deltaX, float* deltaY, BOOL* continuous);
-OSStatus (*wkInitializeGlyphVector)(int count, void* glyphs);
 void (*wkPopupMenu)(NSMenu*, NSPoint location, float width, NSView*, int selectedItem, NSFont*);
 int (*wkQTMovieDataRate)(QTMovie*);
 float (*wkQTMovieMaxTimeLoaded)(QTMovie*);
 void (*wkQTMovieViewSetDrawSynchronously)(QTMovieView*, BOOL);
-void (*wkReleaseStyleGroup)(void* group);
 void (*wkSetCGFontRenderingMode)(CGContextRef, NSFont*);
 void (*wkSetDragImage)(NSImage*, NSPoint offset);
 void (*wkSetPatternBaseCTM)(CGContextRef, CGAffineTransform);
@@ -87,10 +79,21 @@ void (*wkSetNSURLConnectionDefersCallbacks)(NSURLConnection *, BOOL);
 void (*wkSetNSURLRequestShouldContentSniff)(NSMutableURLRequest *, BOOL);
 id (*wkCreateNSURLConnectionDelegateProxy)(void);
 
-#ifdef BUILDING_ON_TIGER
+#ifndef BUILDING_ON_TIGER
+void* wkConvertCharToGlyphs;
+void (*wkGetGlyphsForCharacters)(CGFontRef, const UniChar[], CGGlyph[], size_t);
+#else
+void (*wkClearGlyphVector)(void* glyphs);
+OSStatus (*wkConvertCharToGlyphs)(void* styleGroup, const UniChar*, unsigned numCharacters, void* glyphs);
+CFStringRef (*wkCopyFullFontName)(CGFontRef font);
+OSStatus (*wkGetATSStyleGroup)(ATSUStyle, void** styleGroup);
 CGFontRef (*wkGetCGFontFromNSFont)(NSFont*);
 void (*wkGetFontMetrics)(CGFontRef, int* ascent, int* descent, int* lineGap, unsigned* unitsPerEm);
+ATSLayoutRecord* (*wkGetGlyphVectorFirstRecord)(void* glyphVector);
+int (*wkGetGlyphVectorNumGlyphs)(void* glyphVector);
+size_t (*wkGetGlyphVectorRecordSize)(void* glyphVector);
+OSStatus (*wkInitializeGlyphVector)(int count, void* glyphs);
+void (*wkReleaseStyleGroup)(void* group);
 ATSUFontID (*wkGetNSFontATSUFontId)(NSFont*);
-CFStringRef (*wkCopyFullFontName)(CGFontRef font);
 BOOL (*wkSupportsMultipartXMixedReplace)(NSMutableURLRequest *);
 #endif
index 357a9662c3d539717c9cebb196f79fbce9b29f75..1eb9add53328f2bdad9a119c19ddcc70158a0a66 100644 (file)
@@ -1,3 +1,12 @@
+2008-09-09  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Darin Adler.
+
+        - WebKit part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard
+
+        * WebCoreSupport/WebSystemInterface.m:
+        (InitWebCoreSystemInterface):
+
 2008-09-07  Cameron Zwarich  <cwzwarich@uwaterloo.ca>
 
         Reviewed by Maciej Stachowiak.
index beeee2f314cdf1ae0d7ed1088c62092b5cd4f6a7..6494105462bab47fa29c10210bfc99a47a399404 100644 (file)
@@ -41,8 +41,6 @@ void InitWebCoreSystemInterface(void)
 
     INIT(AdvanceDefaultButtonPulseAnimation);
     INIT(CGContextGetShouldSmoothFonts);
-    INIT(ClearGlyphVector);
-    INIT(ConvertCharToGlyphs);
     INIT(CreateCustomCFReadStream);
     INIT(CreateNSURLConnectionDelegateProxy);
     INIT(DrawCapsLockIndicator);
@@ -59,21 +57,16 @@ void InitWebCoreSystemInterface(void)
     INIT(DrawMediaSliderThumb);
     INIT(DrawMediaUnMuteButton);
     INIT(DrawTextFieldCellFocusRing);
-    INIT(GetATSStyleGroup);
     INIT(GetExtensionsForMIMEType);
     INIT(GetFontInLanguageForCharacter);
     INIT(GetFontInLanguageForRange);
+    INIT(GetGlyphsForCharacters);
     INIT(GetGlyphTransformedAdvances);
-    INIT(GetGlyphVectorFirstRecord);
-    INIT(GetGlyphVectorNumGlyphs);
-    INIT(GetGlyphVectorRecordSize);
     INIT(GetMIMETypeForExtension);
     INIT(GetNSURLResponseLastModifiedDate);
     INIT(GetPreferredExtensionForMIMEType);
     INIT(GetWheelEventDeltas);
-    INIT(InitializeGlyphVector);
     INIT(PopupMenu);
-    INIT(ReleaseStyleGroup);
     INIT(SetCGFontRenderingMode);
     INIT(SetDragImage);
     INIT(SetNSURLConnectionDefersCallbacks);
@@ -89,10 +82,18 @@ void InitWebCoreSystemInterface(void)
     INIT(QTMovieViewSetDrawSynchronously);
 
 #ifdef BUILDING_ON_TIGER
+    INIT(ClearGlyphVector);
+    INIT(ConvertCharToGlyphs);
+    INIT(CopyFullFontName);
+    INIT(GetATSStyleGroup);
     INIT(GetCGFontFromNSFont);
     INIT(GetFontMetrics);
+    INIT(GetGlyphVectorFirstRecord);
+    INIT(GetGlyphVectorNumGlyphs);
+    INIT(GetGlyphVectorRecordSize);
     INIT(GetNSFontATSUFontId);
-    INIT(CopyFullFontName);
+    INIT(InitializeGlyphVector);
+    INIT(ReleaseStyleGroup);
     INIT(SupportsMultipartXMixedReplace);
 #endif
 
index 1930547bba2ddb8467c12b013fcaa97d5889cb99..8425b0fd2bd2e6eab0c46f5360ced0bc6fa62007 100644 (file)
@@ -1,3 +1,12 @@
+2008-09-09  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Darin Adler.
+
+        - WebKitLibraries part of <rdar://problem/6206244> Use alternate character-to-glyph interface on Leopard
+
+        * WebKitSystemInterface.h:
+        * libWebKitSystemInterfaceLeopard.a:
+
 2008-09-04  Adam Roben  <aroben@apple.com>
 
         Ignore warning LNK4221 on Windows
index f1c5a20ca22b211774e323c9c89677ba1a2d4a07..c1d48224255afcc22d3e156af5d6ea27db509167 100644 (file)
@@ -115,7 +115,6 @@ BOOL WKGetGlyphTransformedAdvances(CGFontRef, NSFont*, CGAffineTransform *m, ATS
 NSFont *WKGetFontInLanguageForRange(NSFont *font, NSString *string, NSRange range);
 NSFont *WKGetFontInLanguageForCharacter(NSFont *font, UniChar ch);
 void WKSetCGFontRenderingMode(CGContextRef cgContext, NSFont *font);
-void WKReleaseStyleGroup(void *group);
 BOOL WKCGContextGetShouldSmoothFonts(CGContextRef cgContext);
 
 #ifdef BUILDING_ON_TIGER
@@ -132,15 +131,20 @@ CFStringRef WKCopyFullFontName(CGFontRef font);
 void WKSetPatternBaseCTM(CGContextRef, CGAffineTransform);
 void WKSetPatternPhaseInUserSpace(CGContextRef, CGPoint);
 
+#ifndef BUILDING_ON_TIGER
+void WKGetGlyphsForCharacters(CGFontRef, const UniChar[], CGGlyph[], size_t);
+#else
 typedef void *WKGlyphVectorRef;
 OSStatus WKConvertCharToGlyphs(void *styleGroup, const UniChar *characters, unsigned numCharacters, WKGlyphVectorRef glyphs);
 OSStatus WKGetATSStyleGroup(ATSUStyle fontStyle, void **styleGroup);
+void WKReleaseStyleGroup(void *group);
 OSStatus WKInitializeGlyphVector(int count, WKGlyphVectorRef glyphs);
 void WKClearGlyphVector(WKGlyphVectorRef glyphs);
 
 int WKGetGlyphVectorNumGlyphs(WKGlyphVectorRef glyphVector);
 ATSLayoutRecord *WKGetGlyphVectorFirstRecord(WKGlyphVectorRef glyphVector);
 size_t WKGetGlyphVectorRecordSize(WKGlyphVectorRef glyphVector);
+#endif
 
 #ifndef __LP64__
 NSEvent *WKCreateNSEventWithCarbonEvent(EventRef eventRef);
index a5fbd7c825abe337916aebed07b722cf9a82340d..8fea28a32c9d7476e1c8d7a601d8d50aa6d7b517 100644 (file)
Binary files a/WebKitLibraries/libWebKitSystemInterfaceLeopard.a and b/WebKitLibraries/libWebKitSystemInterfaceLeopard.a differ