Index: Source/platform/fonts/FontPlatformData.h |
diff --git a/Source/platform/fonts/FontPlatformData.h b/Source/platform/fonts/FontPlatformData.h |
index 0eaf1dbc6be692c83792a7e198c0d9d6072ce2f9..87dcd1c43e86bce63760485e4c134caba2a8a721 100644 |
--- a/Source/platform/fonts/FontPlatformData.h |
+++ b/Source/platform/fonts/FontPlatformData.h |
@@ -50,10 +50,11 @@ |
typedef struct CGFont* CGFontRef; |
typedef const struct __CTFont* CTFontRef; |
+#include "platform/fonts/mac/MemoryActivatedFont.h" |
+#include <CoreFoundation/CFBase.h> |
#include <objc/objc-auto.h> |
inline CTFontRef toCTFontRef(NSFont *nsFont) { return reinterpret_cast<CTFontRef>(nsFont); } |
-inline NSFont* toNSFont(CTFontRef ctFontRef) { return const_cast<NSFont*>(reinterpret_cast<const NSFont*>(ctFontRef)); } |
#endif // OS(MACOSX) |
class SkTypeface; |
@@ -79,13 +80,24 @@ |
FontPlatformData(const FontPlatformData& src, float textSize); |
#if OS(MACOSX) |
FontPlatformData(NSFont*, float size, bool syntheticBold = false, bool syntheticItalic = false, FontOrientation = Horizontal); |
-#endif |
+ FontPlatformData(CGFontRef, PassRefPtr<SkTypeface>, float size, bool syntheticBold, bool syntheticOblique, FontOrientation); |
+#else |
FontPlatformData(PassRefPtr<SkTypeface>, const char* name, float textSize, bool syntheticBold, bool syntheticItalic, FontOrientation = Horizontal, bool subpixelTextPosition = defaultUseSubpixelPositioning()); |
+#endif |
~FontPlatformData(); |
#if OS(MACOSX) |
+ NSFont* font() const { return m_font; } |
+ void setFont(NSFont*); |
+ |
+ CGFontRef cgFont() const { return m_cgFont.get(); } |
CTFontRef ctFont() const; |
- CGFontRef cgFont() const; |
+ |
+ bool roundsGlyphAdvances() const; |
+ bool allowsLigatures() const; |
+ |
+ bool isColorBitmapFont() const { return m_isColorBitmapFont; } |
+ bool isCompositeFontReference() const { return m_isCompositeFontReference; } |
#endif |
String fontFamilyName() const; |
@@ -140,9 +152,20 @@ |
#endif |
private: |
+#if !OS(MACOSX) |
bool static defaultUseSubpixelPositioning(); |
-#if !OS(MACOSX) |
void querySystemForRenderStyle(bool useSkiaSubpixelPositioning); |
+#else |
+ // Load various data about the font specified by |nsFont| with the size fontSize into the following output paramters: |
+ // Note: Callers should always take into account that for the Chromium port, |outNSFont| isn't necessarily the same |
+ // font as |nsFont|. This because the sandbox may block loading of the original font. |
+ // * outNSFont - The font that was actually loaded, for the Chromium port this may be different than nsFont. |
+ // The caller is responsible for calling CFRelease() on this parameter when done with it. |
+ // * cgFont - CGFontRef representing the input font at the specified point size. |
+ void loadFont(NSFont*, float fontSize, NSFont*& outNSFont, CGFontRef&); |
+ void platformDataInit(const FontPlatformData&); |
+ const FontPlatformData& platformDataAssign(const FontPlatformData&); |
+ bool isAATFont(CTFontRef) const; |
#endif |
mutable RefPtr<SkTypeface> m_typeface; |
@@ -155,8 +178,17 @@ |
bool m_syntheticBold; |
bool m_syntheticItalic; |
FontOrientation m_orientation; |
+#if OS(MACOSX) |
+ bool m_isColorBitmapFont; |
+ bool m_isCompositeFontReference; |
+#endif |
private: |
-#if !OS(MACOSX) |
+#if OS(MACOSX) |
+ NSFont* m_font; |
+ RetainPtr<CGFontRef> m_cgFont; |
+ mutable RetainPtr<CTFontRef> m_CTFont; |
+ RefPtr<MemoryActivatedFont> m_inMemoryFont; |
+#else |
FontRenderStyle m_style; |
#endif |