Index: webkit/port/platform/graphics/chromium/FontPlatformDataLinux.h |
diff --git a/webkit/port/platform/graphics/chromium/FontPlatformDataLinux.h b/webkit/port/platform/graphics/chromium/FontPlatformDataLinux.h |
index b8ae94fbdd578a201f308ca499094c6a091a20ce..0d67b24f0104428d3034eb38d3e7d252fa0967d3 100644 |
--- a/webkit/port/platform/graphics/chromium/FontPlatformDataLinux.h |
+++ b/webkit/port/platform/graphics/chromium/FontPlatformDataLinux.h |
@@ -8,17 +8,23 @@ |
#include "config.h" |
#include "build/build_config.h" |
-#include <pango/pango.h> |
- |
#include "StringImpl.h" |
#include "NotImplemented.h" |
#include <wtf/PassRefPtr.h> |
#include <wtf/RefCounted.h> |
+class SkPaint; |
+class SkTypeface; |
+ |
namespace WebCore { |
class FontDescription; |
+// ----------------------------------------------------------------------------- |
+// FontPlatformData is the handle which WebKit has on a specific face. A face |
+// is the tuple of (font, size, ...etc). Here we are just wrapping a Skia |
+// SkTypeface pointer and dealing with the reference counting etc. |
+// ----------------------------------------------------------------------------- |
class FontPlatformData { |
public: |
// Used for deleted values in the font cache's hash tables. The hash table |
@@ -27,47 +33,56 @@ public: |
// from the NULL one (created with the empty constructor), so we can't just |
// set everything to NULL. |
FontPlatformData(WTF::HashTableDeletedValueType) |
- : m_context(0) |
- , m_font(hashTableDeletedFontValue()) |
+ : m_typeface(hashTableDeletedFontValue()) |
+ , m_textSize(0) |
+ , m_fakeBold(false) |
+ , m_fakeItalic(false) |
{ } |
FontPlatformData() |
- : m_context(0) |
- , m_font(0) |
+ : m_typeface(0) |
+ , m_textSize(0) |
+ , m_fakeBold(false) |
+ , m_fakeItalic(false) |
{ } |
- FontPlatformData(const FontDescription&, const AtomicString& family); |
- |
- FontPlatformData(float size, bool bold, bool oblique); |
+ FontPlatformData(float textSize, bool fakeBold, bool fakeItalic) |
+ : m_typeface(0) |
+ , m_textSize(textSize) |
+ , m_fakeBold(fakeBold) |
+ , m_fakeItalic(fakeItalic) |
+ { } |
+ FontPlatformData(const FontPlatformData&); |
+ FontPlatformData(SkTypeface *, float textSize, bool fakeBold, bool fakeItalic); |
+ FontPlatformData(const FontPlatformData& src, float textSize); |
~FontPlatformData(); |
- static bool init(); |
- |
+ // ------------------------------------------------------------------------- |
+ // Return true iff this font is monospaced (i.e. every glyph has an equal x |
+ // advance) |
+ // ------------------------------------------------------------------------- |
bool isFixedPitch() const; |
- float size() const { return m_size; } |
- unsigned hash() const |
- { |
- notImplemented(); |
- return 0; |
- } |
+ // ------------------------------------------------------------------------- |
+ // Setup a Skia painting context to use this font. |
+ // ------------------------------------------------------------------------- |
+ void setupPaint(SkPaint*) const; |
- bool operator==(const FontPlatformData& other) const; |
- bool isHashTableDeletedValue() const { return m_font == hashTableDeletedFontValue(); } |
- |
- static PangoFontMap* m_fontMap; |
- static GHashTable* m_hashTable; |
- |
- PangoContext* m_context; |
- PangoFont* m_font; |
+ unsigned hash() const; |
+ float size() const { return m_textSize; } |
- float m_size; |
- bool m_syntheticBold; |
- bool m_syntheticOblique; |
+ bool operator==(const FontPlatformData& other) const; |
+ FontPlatformData& operator=(const FontPlatformData& src); |
+ bool isHashTableDeletedValue() const { return m_typeface == hashTableDeletedFontValue(); } |
private: |
- static PangoFont* hashTableDeletedFontValue() { return reinterpret_cast<PangoFont*>(-1); } |
+ SkTypeface* m_typeface; |
+ float m_textSize; |
+ bool m_fakeBold; |
+ bool m_fakeItalic; |
+ |
+ SkTypeface* hashTableDeletedFontValue() const { return reinterpret_cast<SkTypeface*>(-1); } |
}; |
} // namespace WebCore |