Changeset 70225 in webkit


Ignore:
Timestamp:
Oct 21, 2010 3:42:44 AM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2010-10-21 takano takumi <takano1@asia.apple.com>

Reviewed by Dan Bernstein.

Need to swap glyphs for vertical writing
https://bugs.webkit.org/show_bug.cgi?id=46973

  • fast/text/international/vertical-text-glyph-test.html: Added.
  • fast/text/international/vertical-text-metrics-test.html: Added.
  • platform/mac/fast/text/international/vertical-text-glyph-test-expected.checksum: Added.
  • platform/mac/fast/text/international/vertical-text-glyph-test-expected.png: Added.
  • platform/mac/fast/text/international/vertical-text-glyph-test-expected.txt: Added.
  • platform/mac/fast/text/international/vertical-text-metrics-test-expected.txt: Added.

2010-10-21 takano takumi <takano1@asia.apple.com>

Reviewed by Dan Bernstein.

Need to swap glyphs for vertical writing
https://bugs.webkit.org/show_bug.cgi?id=46973

Made changes to pass the writing-mode orientation flag in RenderStyle down to FontPlatformData,
and ultimately to CoreText APIs in both font complex path and fast path.

Tests: fast/text/international/vertical-text-glyph-test.html

fast/text/international/vertical-text-metrics-test.html

  • WebCore.exp.in:
  • WebCore.xcodeproj/project.pbxproj: Added platform/graphics/FontOrientation.h.
  • css/CSSFontFaceSource.cpp: (WebCore::CSSFontFaceSource::getFontData): Added font orientation parameter to SimpleFontData.
  • css/CSSStyleSelector.cpp: (WebCore::CSSStyleSelector::applyProperty): Set appropriate font orientation to the font description when writing-mode is being specified.
  • loader/CachedFont.cpp: (WebCore::CachedFont::platformDataFromCustomData): Made to pass font orientation to FontPlatformData.
  • loader/CachedFont.h:
  • platform/graphics/FontCache.cpp: Added font orientation to FontPlatformDataCacheKey (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey): (WebCore::FontPlatformDataCacheKey::operator==): (WebCore::computeHash): (WebCore::FontCache::getCachedFontPlatformData):
  • platform/graphics/FontDescription.h: Added font orientation support to FontDescription class (WebCore::FontDescription::FontDescription): (WebCore::FontDescription::orientation): (WebCore::FontDescription::setOrientation): (WebCore::FontDescription::operator==):
  • platform/graphics/FontOrientation.h: Added.
  • platform/graphics/SimpleFontData.h:
  • platform/graphics/cairo/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/cairo/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
  • platform/graphics/cocoa/FontPlatformData.h: Added font orientation support to FontPlatformData class (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::orientation): (WebCore::FontPlatformData::hash): (WebCore::FontPlatformData::operator==):
  • platform/graphics/cocoa/FontPlatformDataCocoa.mm: Added font orientation support (WebCore::FontPlatformData::FontPlatformData): (WebCore::FontPlatformData::operator=): (WebCore::FontPlatformData::allowsLigatures): Don't allow ligatures when the font is vertical orientation. (WebCore::FontPlatformData::description):
  • platform/graphics/gtk/FontCustomPlatformDataPango.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/haiku/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/haiku/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
  • platform/graphics/mac/FontCacheMac.mm: Added font orientation parameter when creating FontPlatformData object. (WebCore::FontCache::getFontDataForCharacters): (WebCore::FontCache::createFontPlatformData):
  • platform/graphics/mac/FontCustomPlatformData.cpp: Added font orientation parameter when creating FontPlatformData object. (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/mac/FontCustomPlatformData.h: Changed to pass font orientation parameter to fontPlatformData()
  • platform/graphics/mac/GlyphPageTreeNodeMac.cpp: (WebCore::GlyphPage::fill): Changed to use CoreText to extract glyphs when the current font is vertical orientation. CoreText automatically swaps glyphs with vertical variants when the font orientation is vertical.
  • platform/graphics/mac/SimpleFontDataCoreText.cpp: Added vertical form attribute to the attribute dictionary for a CTLine. (WebCore::SimpleFontData::getCFStringAttributes):
  • platform/graphics/mac/SimpleFontDataMac.mm: (WebCore::SimpleFontData::platformBoundsForGlyph): Changed to use CoreText (from CG) to support vertical metrics. (WebCore::SimpleFontData::platformWidthForGlyph): Made to use CoreText, instead of wkGetGlyphTransformedAdvances, to get vertical metrics when the font orientation is vertical.
  • platform/graphics/qt/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
  • platform/graphics/qt/FontCustomPlatformDataQt.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/skia/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/skia/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
  • platform/graphics/win/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/win/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
  • platform/graphics/win/FontCustomPlatformDataCairo.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/win/FontCustomPlatformDataCairo.h: Changed to pass font orientation to fontPlatformData()
  • platform/graphics/wince/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/wince/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
  • platform/graphics/wx/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData() (WebCore::FontCustomPlatformData::fontPlatformData):
  • platform/graphics/wx/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
Location:
trunk
Files:
7 added
36 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r70224 r70225  
     12010-10-21  takano takumi  <takano1@asia.apple.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        Need to swap glyphs for vertical writing
     6        https://bugs.webkit.org/show_bug.cgi?id=46973
     7
     8        * fast/text/international/vertical-text-glyph-test.html: Added.
     9        * fast/text/international/vertical-text-metrics-test.html: Added.
     10        * platform/mac/fast/text/international/vertical-text-glyph-test-expected.checksum: Added.
     11        * platform/mac/fast/text/international/vertical-text-glyph-test-expected.png: Added.
     12        * platform/mac/fast/text/international/vertical-text-glyph-test-expected.txt: Added.
     13        * platform/mac/fast/text/international/vertical-text-metrics-test-expected.txt: Added.
     14
    1152010-10-21  Julie Parent  <jparent@chromium.org>
    216
  • trunk/WebCore/ChangeLog

    r70223 r70225  
     12010-10-21  takano takumi  <takano1@asia.apple.com>
     2
     3        Reviewed by Dan Bernstein.
     4
     5        Need to swap glyphs for vertical writing
     6        https://bugs.webkit.org/show_bug.cgi?id=46973
     7
     8        Made changes to pass the writing-mode orientation flag in RenderStyle down to FontPlatformData,
     9        and ultimately to CoreText APIs in both font complex path and fast path.
     10
     11        Tests: fast/text/international/vertical-text-glyph-test.html
     12               fast/text/international/vertical-text-metrics-test.html
     13
     14        * WebCore.exp.in:
     15        * WebCore.xcodeproj/project.pbxproj: Added platform/graphics/FontOrientation.h.
     16        * css/CSSFontFaceSource.cpp:
     17        (WebCore::CSSFontFaceSource::getFontData): Added font orientation parameter to SimpleFontData.
     18        * css/CSSStyleSelector.cpp:
     19        (WebCore::CSSStyleSelector::applyProperty): Set appropriate font orientation to the font description
     20        when writing-mode is being specified.
     21        * loader/CachedFont.cpp:
     22        (WebCore::CachedFont::platformDataFromCustomData): Made to pass font orientation to FontPlatformData.
     23        * loader/CachedFont.h:
     24        * platform/graphics/FontCache.cpp: Added font orientation to FontPlatformDataCacheKey
     25        (WebCore::FontPlatformDataCacheKey::FontPlatformDataCacheKey):
     26        (WebCore::FontPlatformDataCacheKey::operator==):
     27        (WebCore::computeHash):
     28        (WebCore::FontCache::getCachedFontPlatformData):
     29        * platform/graphics/FontDescription.h: Added font orientation support to FontDescription class
     30        (WebCore::FontDescription::FontDescription):
     31        (WebCore::FontDescription::orientation):
     32        (WebCore::FontDescription::setOrientation):
     33        (WebCore::FontDescription::operator==):
     34        * platform/graphics/FontOrientation.h: Added.
     35        * platform/graphics/SimpleFontData.h:
     36        * platform/graphics/cairo/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData()
     37        (WebCore::FontCustomPlatformData::fontPlatformData):
     38        * platform/graphics/cairo/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
     39        * platform/graphics/cocoa/FontPlatformData.h: Added font orientation support to FontPlatformData class
     40        (WebCore::FontPlatformData::FontPlatformData):
     41        (WebCore::FontPlatformData::orientation):
     42        (WebCore::FontPlatformData::hash):
     43        (WebCore::FontPlatformData::operator==):
     44        * platform/graphics/cocoa/FontPlatformDataCocoa.mm: Added font orientation support
     45        (WebCore::FontPlatformData::FontPlatformData):
     46        (WebCore::FontPlatformData::operator=):
     47        (WebCore::FontPlatformData::allowsLigatures): Don't allow ligatures when the font is vertical orientation.
     48        (WebCore::FontPlatformData::description):
     49        * platform/graphics/gtk/FontCustomPlatformDataPango.cpp: Changed to pass font orientation to fontPlatformData()
     50        (WebCore::FontCustomPlatformData::fontPlatformData):
     51        * platform/graphics/haiku/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData()
     52        (WebCore::FontCustomPlatformData::fontPlatformData):
     53        * platform/graphics/haiku/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
     54        * platform/graphics/mac/FontCacheMac.mm: Added font orientation parameter when creating FontPlatformData object.
     55        (WebCore::FontCache::getFontDataForCharacters):
     56        (WebCore::FontCache::createFontPlatformData):
     57        * platform/graphics/mac/FontCustomPlatformData.cpp: Added font orientation parameter when creating FontPlatformData object.
     58        (WebCore::FontCustomPlatformData::fontPlatformData):
     59        * platform/graphics/mac/FontCustomPlatformData.h: Changed to pass font orientation parameter to fontPlatformData()
     60        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
     61        (WebCore::GlyphPage::fill): Changed to use CoreText to extract glyphs when the current font is vertical orientation.
     62        CoreText automatically swaps glyphs with vertical variants when the font orientation is vertical.
     63        * platform/graphics/mac/SimpleFontDataCoreText.cpp: Added vertical form attribute to the attribute dictionary for a CTLine.
     64        (WebCore::SimpleFontData::getCFStringAttributes):
     65        * platform/graphics/mac/SimpleFontDataMac.mm:
     66        (WebCore::SimpleFontData::platformBoundsForGlyph): Changed to use CoreText (from CG) to support vertical metrics.
     67        (WebCore::SimpleFontData::platformWidthForGlyph): Made to use CoreText, instead of wkGetGlyphTransformedAdvances,
     68        to get vertical metrics when the font orientation is vertical.
     69        * platform/graphics/qt/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
     70        * platform/graphics/qt/FontCustomPlatformDataQt.cpp: Changed to pass font orientation to fontPlatformData()
     71        (WebCore::FontCustomPlatformData::fontPlatformData):
     72        * platform/graphics/skia/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData()
     73        (WebCore::FontCustomPlatformData::fontPlatformData):
     74        * platform/graphics/skia/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
     75        * platform/graphics/win/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData()
     76        (WebCore::FontCustomPlatformData::fontPlatformData):
     77        * platform/graphics/win/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
     78        * platform/graphics/win/FontCustomPlatformDataCairo.cpp: Changed to pass font orientation to fontPlatformData()
     79        (WebCore::FontCustomPlatformData::fontPlatformData):
     80        * platform/graphics/win/FontCustomPlatformDataCairo.h: Changed to pass font orientation to fontPlatformData()
     81        * platform/graphics/wince/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData()
     82        (WebCore::FontCustomPlatformData::fontPlatformData):
     83        * platform/graphics/wince/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
     84        * platform/graphics/wx/FontCustomPlatformData.cpp: Changed to pass font orientation to fontPlatformData()
     85        (WebCore::FontCustomPlatformData::fontPlatformData):
     86        * platform/graphics/wx/FontCustomPlatformData.h: Changed to pass font orientation to fontPlatformData()
     87
    1882010-10-20  Nikolas Zimmermann  <nzimmermann@rim.com>
    289
  • trunk/WebCore/WebCore.exp.in

    r70195 r70225  
    385385__ZN7WebCore16DeviceMotionData6createEN3WTF10PassRefPtrINS0_12AccelerationEEES4_NS2_INS0_12RotationRateEEEbd
    386386__ZN7WebCore16FontFallbackList15releaseFontDataEv
    387 __ZN7WebCore16FontPlatformDataC1EP6NSFontbb
     387__ZN7WebCore16FontPlatformDataC1EP6NSFontbbNS_15FontOrientationE
    388388__ZN7WebCore16FontPlatformDataD1Ev
    389389__ZN7WebCore16HTMLInputElement13setAutofilledEb
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r70223 r70225  
    55275527                F5D3A57C106B83B300545297 /* DateComponents.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F5D3A57A106B83B300545297 /* DateComponents.cpp */; };
    55285528                F5D3A57D106B83B300545297 /* DateComponents.h in Headers */ = {isa = PBXBuildFile; fileRef = F5D3A57B106B83B300545297 /* DateComponents.h */; settings = {ATTRIBUTES = (Private, ); }; };
     5529                F7A034C4126BF6BE007DC19E /* FontOrientation.h in Headers */ = {isa = PBXBuildFile; fileRef = F7A034C3126BF6BE007DC19E /* FontOrientation.h */; settings = {ATTRIBUTES = (Private, ); }; };
    55295530                F916C48D0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F916C48B0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.cpp */; };
    55305531                F916C48E0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h in Headers */ = {isa = PBXBuildFile; fileRef = F916C48C0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.h */; };
     
    1157811579                F5D3A57A106B83B300545297 /* DateComponents.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DateComponents.cpp; sourceTree = "<group>"; };
    1157911580                F5D3A57B106B83B300545297 /* DateComponents.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateComponents.h; sourceTree = "<group>"; };
     11581                F7A034C3126BF6BE007DC19E /* FontOrientation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FontOrientation.h; sourceTree = "<group>"; };
    1158011582                F8216299029F4FB501000131 /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = JavaScriptCore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
    1158111583                F916C48B0DB510F80076CD83 /* JSXMLHttpRequestProgressEvent.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = JSXMLHttpRequestProgressEvent.cpp; sourceTree = "<group>"; };
     
    1651216514                                B2C3DA590D006CD600EF6F26 /* FontFamily.h */,
    1651316515                                72626E010EF022FE00A07E20 /* FontFastPath.cpp */,
     16516                                F7A034C3126BF6BE007DC19E /* FontOrientation.h */,
    1651416517                                37ACCE410DA2980F0089E602 /* FontRenderingMode.h */,
    1651516518                                B2C3DA5A0D006CD600EF6F26 /* FontSelector.h */,
     
    2112321126                                4FA3B90B125CD12200300BAD /* InspectorState.h in Headers */,
    2112421127                                9728C3141268E4390041E89B /* MarkupAccumulator.h in Headers */,
     21128                                F7A034C4126BF6BE007DC19E /* FontOrientation.h in Headers */,
    2112521129                                081CDFB8126ECFDB00D215CA /* DeprecatedSVGAnimatedProperty.h in Headers */,
    2112621130                                081CDFB9126ECFDB00D215CA /* DeprecatedSVGAnimatedPropertyTraits.h in Headers */,
  • trunk/WebCore/css/CSSFontFaceSource.cpp

    r66963 r70225  
    163163                    return 0;
    164164
    165                 fontData.set(new SimpleFontData(m_font->platformDataFromCustomData(fontDescription.computedPixelSize(), syntheticBold, syntheticItalic, fontDescription.renderingMode()), true, false));
     165                fontData.set(new SimpleFontData(m_font->platformDataFromCustomData(fontDescription.computedPixelSize(), syntheticBold, syntheticItalic, fontDescription.orientation(), fontDescription.renderingMode()), true, false));
    166166            }
    167167        } else {
  • trunk/WebCore/css/CSSStyleSelector.cpp

    r70209 r70225  
    55725572
    55735573    // CSS Text Layout Module Level 3: Vertical writing support
    5574     case CSSPropertyWebkitWritingMode:
     5574    case CSSPropertyWebkitWritingMode: {
    55755575        HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE(writingMode, WritingMode)
    5576         return;
    5577 
     5576        FontDescription fontDescription = m_style->fontDescription();
     5577        fontDescription.setOrientation(m_style->isHorizontalWritingMode() ? Horizontal : Vertical);
     5578        if (m_style->setFontDescription(fontDescription))
     5579            m_fontDirty = true;
     5580        return;
     5581    }
    55785582#if ENABLE(SVG)
    55795583    default:
  • trunk/WebCore/loader/CachedFont.cpp

    r68112 r70225  
    118118}
    119119
    120 FontPlatformData CachedFont::platformDataFromCustomData(float size, bool bold, bool italic, FontRenderingMode renderingMode)
     120FontPlatformData CachedFont::platformDataFromCustomData(float size, bool bold, bool italic, FontOrientation orientation, FontRenderingMode renderingMode)
    121121{
    122122#if ENABLE(SVG_FONTS)
     
    126126#ifdef STORE_FONT_CUSTOM_PLATFORM_DATA
    127127    ASSERT(m_fontData);
    128     return m_fontData->fontPlatformData(static_cast<int>(size), bold, italic, renderingMode);
     128    return m_fontData->fontPlatformData(static_cast<int>(size), bold, italic, orientation, renderingMode);
    129129#else
    130130    return FontPlatformData();
  • trunk/WebCore/loader/CachedFont.h

    r66963 r70225  
    2828
    2929#include "CachedResource.h"
     30#include "FontOrientation.h"
    3031#include "FontRenderingMode.h"
    3132#include <wtf/Vector.h>
     
    6364
    6465    bool ensureCustomFontData();
    65     FontPlatformData platformDataFromCustomData(float size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     66    FontPlatformData platformDataFromCustomData(float size, bool bold, bool italic, FontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    6667
    6768#if ENABLE(SVG_FONTS)
  • trunk/WebCore/platform/graphics/FontCache.cpp

    r65077 r70225  
    5656struct FontPlatformDataCacheKey : FastAllocBase {
    5757    FontPlatformDataCacheKey(const AtomicString& family = AtomicString(), unsigned size = 0, unsigned weight = 0, bool italic = false,
    58                              bool isPrinterFont = false, FontRenderingMode renderingMode = NormalRenderingMode)
     58                             bool isPrinterFont = false, FontRenderingMode renderingMode = NormalRenderingMode, FontOrientation orientation = Horizontal)
    5959        : m_size(size)
    6060        , m_weight(weight)
     
    6363        , m_printerFont(isPrinterFont)
    6464        , m_renderingMode(renderingMode)
     65        , m_orientation(orientation)
    6566    {
    6667    }
     
    7374        return equalIgnoringCase(m_family, other.m_family) && m_size == other.m_size &&
    7475               m_weight == other.m_weight && m_italic == other.m_italic && m_printerFont == other.m_printerFont &&
    75                m_renderingMode == other.m_renderingMode;
     76               m_renderingMode == other.m_renderingMode && m_orientation == other.m_orientation;
    7677    }
    7778
     
    8283    bool m_printerFont;
    8384    FontRenderingMode m_renderingMode;
     85    FontOrientation m_orientation;
    8486
    8587private:
     
    9395        fontKey.m_size,
    9496        fontKey.m_weight,
    95         static_cast<unsigned>(fontKey.m_italic) << 2 | static_cast<unsigned>(fontKey.m_printerFont) << 1 | static_cast<unsigned>(fontKey.m_renderingMode)
     97        static_cast<unsigned>(fontKey.m_orientation) << 3 | static_cast<unsigned>(fontKey.m_italic) << 2 | static_cast<unsigned>(fontKey.m_printerFont) << 1 | static_cast<unsigned>(fontKey.m_renderingMode)
    9698    };
    9799    return StringImpl::computeHash(reinterpret_cast<UChar*>(hashCodes), sizeof(hashCodes) / sizeof(UChar));
     
    192194
    193195    FontPlatformDataCacheKey key(familyName, fontDescription.computedPixelSize(), fontDescription.weight(), fontDescription.italic(),
    194                                  fontDescription.usePrinterFont(), fontDescription.renderingMode());
     196                                 fontDescription.usePrinterFont(), fontDescription.renderingMode(), fontDescription.orientation());
    195197    FontPlatformData* result = 0;
    196198    bool foundResult;
  • trunk/WebCore/platform/graphics/FontDescription.h

    r65591 r70225  
    2727
    2828#include "FontFamily.h"
     29#include "FontOrientation.h"
    2930#include "FontRenderingMode.h"
    3031#include "FontSmoothingMode.h"
     
    5657        : m_specifiedSize(0)
    5758        , m_computedSize(0)
     59        , m_orientation(Horizontal)
    5860        , m_italic(false)
    5961        , m_smallCaps(false)
     
    9597    FontTraitsMask traitsMask() const;
    9698    bool isSpecifiedFont() const { return m_isSpecifiedFont; }
     99    FontOrientation orientation() const { return m_orientation; }
    97100
    98101    void setFamily(const FontFamily& family) { m_familyList = family; }
     
    114117    void setTextRenderingMode(TextRenderingMode rendering) { m_textRendering = rendering; }
    115118    void setIsSpecifiedFont(bool isSpecifiedFont) { m_isSpecifiedFont = isSpecifiedFont; }
     119    void setOrientation(FontOrientation orientation) { m_orientation = orientation; }
    116120
    117121private:
     
    121125                             // rounding, minimum font sizes, and zooming.
    122126    float m_computedSize;    // Computed size adjusted for the minimum font size and the zoom factor. 
     127
     128    FontOrientation m_orientation;
    123129
    124130    bool m_italic : 1;
     
    156162        && m_fontSmoothing == other.m_fontSmoothing
    157163        && m_textRendering == other.m_textRendering
    158         && m_isSpecifiedFont == other.m_isSpecifiedFont;
     164        && m_isSpecifiedFont == other.m_isSpecifiedFont
     165        && m_orientation == other.m_orientation;
    159166}
    160167
  • trunk/WebCore/platform/graphics/SimpleFontData.h

    r64916 r70225  
    3838#endif
    3939
    40 #if USE(CORE_TEXT)
     40#if PLATFORM(MAC)
    4141#include <wtf/RetainPtr.h>
    4242#endif
     
    131131#endif
    132132
    133 #if USE(CORE_TEXT)
     133#if PLATFORM(MAC)
    134134    CFDictionaryRef getCFStringAttributes(TypesettingFeatures) const;
    135135#endif
     
    235235#endif
    236236
    237 #if USE(CORE_TEXT)
     237#if PLATFORM(MAC)
    238238    mutable HashMap<unsigned, RetainPtr<CFDictionaryRef> > m_CFStringAttributes;
    239239#endif
  • trunk/WebCore/platform/graphics/cairo/FontCustomPlatformData.cpp

    r68406 r70225  
    5959}
    6060
    61 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode)
     61FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode)
    6262{
    6363    return FontPlatformData(m_fontFace, size, bold, italic);
  • trunk/WebCore/platform/graphics/cairo/FontCustomPlatformData.h

    r68041 r70225  
    2323#define FontCustomPlatformData_h
    2424
     25#include "FontOrientation.h"
    2526#include "FontRenderingMode.h"
    2627#include <wtf/Forward.h>
     
    3940    FontCustomPlatformData(FT_Face, SharedBuffer*);
    4041    ~FontCustomPlatformData();
    41     FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     42    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    4243    static bool supportsFormat(const String&);
    4344
  • trunk/WebCore/platform/graphics/cocoa/FontPlatformData.h

    r66574 r70225  
    2525#define FontPlatformData_h
    2626
     27#include "FontOrientation.h"
    2728#include <wtf/text/StringImpl.h>
    2829
     
    5960class FontPlatformData {
    6061  public:
    61     FontPlatformData(float size, bool syntheticBold, bool syntheticOblique)
     62    FontPlatformData(float size, bool syntheticBold, bool syntheticOblique, FontOrientation orientation = Horizontal)
    6263        : m_syntheticBold(syntheticBold)
    6364        , m_syntheticOblique(syntheticOblique)
     65        , m_orientation(orientation)
    6466        , m_atsuFontID(0)
    6567        , m_size(size)
     
    7274    }
    7375
    74     FontPlatformData(NSFont *nsFont, bool syntheticBold = false, bool syntheticOblique = false);
     76    FontPlatformData(NSFont *nsFont, bool syntheticBold = false, bool syntheticOblique = false, FontOrientation = Horizontal);
    7577   
    76     FontPlatformData(CGFontRef cgFont, ATSUFontID fontID, float size, bool syntheticBold, bool syntheticOblique)
     78    FontPlatformData(CGFontRef cgFont, ATSUFontID fontID, float size, bool syntheticBold, bool syntheticOblique, FontOrientation orientation)
    7779        : m_syntheticBold(syntheticBold)
    7880        , m_syntheticOblique(syntheticOblique)
     81        , m_orientation(orientation)
    7982        , m_atsuFontID(fontID)
    8083        , m_size(size)
     
    9598    bool syntheticBold() const { return m_syntheticBold; }
    9699    bool syntheticOblique() const { return m_syntheticOblique; }
     100    FontOrientation orientation() const { return m_orientation; }
    97101
    98102    bool m_syntheticBold;
    99103    bool m_syntheticOblique;
     104    FontOrientation m_orientation;
    100105
    101106    ATSUFontID m_atsuFontID;
     
    105110    {
    106111        ASSERT(m_font != 0 || m_cgFont == 0);
    107         uintptr_t hashCodes[2] = { (uintptr_t)m_font, m_syntheticBold << 1 | m_syntheticOblique };
     112        uintptr_t hashCodes[2] = { (uintptr_t)m_font, m_orientation << 2 | m_syntheticBold << 1 | m_syntheticOblique };
    108113        return StringImpl::computeHash(reinterpret_cast<UChar*>(hashCodes), sizeof(hashCodes) / sizeof(UChar));
    109114    }
     
    114119    {
    115120        return m_font == other.m_font && m_syntheticBold == other.m_syntheticBold && m_syntheticOblique == other.m_syntheticOblique &&
    116                m_cgFont == other.m_cgFont && m_size == other.m_size && m_atsuFontID == other.m_atsuFontID;
     121               m_cgFont == other.m_cgFont && m_size == other.m_size && m_atsuFontID == other.m_atsuFontID && m_orientation == other.m_orientation;
    117122    }
    118123
  • trunk/WebCore/platform/graphics/cocoa/FontPlatformDataCocoa.mm

    r66574 r70225  
    4545#endif  // PLATFORM(MAC)
    4646
    47 FontPlatformData::FontPlatformData(NSFont *nsFont, bool syntheticBold, bool syntheticOblique)
     47FontPlatformData::FontPlatformData(NSFont *nsFont, bool syntheticBold, bool syntheticOblique, FontOrientation orientation)
    4848    : m_syntheticBold(syntheticBold)
    4949    , m_syntheticOblique(syntheticOblique)
     50    , m_orientation(orientation)
    5051    , m_font(nsFont)
    5152#if !defined(BUILDING_ON_TIGER) && !defined(BUILDING_ON_LEOPARD) && !defined(BUILDING_ON_SNOW_LEOPARD)
     
    8485    m_atsuFontID = f.m_atsuFontID;
    8586    m_isColorBitmapFont = f.m_isColorBitmapFont;
     87    m_orientation = f.m_orientation;
    8688#if USE(CORE_TEXT)
    8789    m_CTFont = f.m_CTFont;
     
    113115    m_font = f.m_font;
    114116    m_isColorBitmapFont = f.m_isColorBitmapFont;
     117    m_orientation = f.m_orientation;
    115118#if USE(CORE_TEXT)
    116119    m_CTFont = f.m_CTFont;
     
    170173bool FontPlatformData::allowsLigatures() const
    171174{
    172     return ![[m_font coveredCharacterSet] characterIsMember:'a'];
     175    return m_orientation == Horizontal && ![[m_font coveredCharacterSet] characterIsMember:'a'];
    173176}
    174177
     
    188191{
    189192    RetainPtr<CFStringRef> cgFontDescription(AdoptCF, CFCopyDescription(cgFont()));
    190     return String(cgFontDescription.get()) + " " + String::number(m_size) + (m_syntheticBold ? " synthetic bold" : "") + (m_syntheticOblique ? " synthetic oblique" : "");
     193    return String(cgFontDescription.get()) + " " + String::number(m_size)
     194            + (m_syntheticBold ? " synthetic bold" : "") + (m_syntheticOblique ? " synthetic oblique" : "") + (m_orientation ? " vertical orientation" : "");
    191195}
    192196#endif
  • trunk/WebCore/platform/graphics/gtk/FontCustomPlatformDataPango.cpp

    r64434 r70225  
    3131}
    3232
    33 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode)
     33FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode)
    3434{
    3535    return FontPlatformData(m_fontFace, size, bold, italic);
  • trunk/WebCore/platform/graphics/haiku/FontCustomPlatformData.cpp

    r64434 r70225  
    3232}
    3333
    34 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode)
     34FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode)
    3535{
    3636    return FontPlatformData(size, bold, italic);
  • trunk/WebCore/platform/graphics/haiku/FontCustomPlatformData.h

    r65021 r70225  
    2222#define FontCustomPlatformData_h
    2323
     24#include "FontOrientation.h"
    2425#include "FontRenderingMode.h"
    2526#include <wtf/Forward.h>
     
    3839        static bool supportsFormat(const String&);
    3940
    40         FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     41        FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    4142    };
    4243
  • trunk/WebCore/platform/graphics/mac/FontCacheMac.mm

    r54601 r70225  
    143143    FontPlatformData alternateFont(substituteFont,
    144144        !font.isPlatformFont() && isAppKitFontWeightBold(weight) && !isAppKitFontWeightBold(substituteFontWeight),
    145         !font.isPlatformFont() && (traits & NSFontItalicTrait) && !(substituteFontTraits & NSFontItalicTrait));
     145        !font.isPlatformFont() && (traits & NSFontItalicTrait) && !(substituteFontTraits & NSFontItalicTrait),
     146        platformData.m_orientation);
    146147    return getCachedFontData(&alternateFont);
    147148}
     
    211212    bool syntheticOblique = (traits & NSFontItalicTrait) && !(actualTraits & NSFontItalicTrait);
    212213
    213     return new FontPlatformData(platformFont, syntheticBold, syntheticOblique);
     214    return new FontPlatformData(platformFont, syntheticBold, syntheticOblique, fontDescription.orientation());
    214215}
    215216
  • trunk/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp

    r65760 r70225  
    3939}
    4040
    41 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode)
     41FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation orientation, FontRenderingMode)
    4242{
    43     return FontPlatformData(m_cgFont, (ATSUFontID)m_atsFont, size, bold, italic);
     43    return FontPlatformData(m_cgFont, (ATSUFontID)m_atsFont, size, bold, italic, orientation);
    4444}
    4545
  • trunk/WebCore/platform/graphics/mac/FontCustomPlatformData.h

    r65021 r70225  
    2222#define FontCustomPlatformData_h
    2323
     24#include "FontOrientation.h"
    2425#include "FontRenderingMode.h"
    2526#include <CoreFoundation/CFBase.h>
     
    4243    ~FontCustomPlatformData();
    4344
    44     FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     45    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    4546
    4647    static bool supportsFormat(const String&);
  • trunk/WebCore/platform/graphics/mac/GlyphPageTreeNodeMac.cpp

    r36296 r70225  
    4141
    4242#ifndef BUILDING_ON_TIGER
    43     Vector<CGGlyph, 512> glyphs(bufferLength);
    44     wkGetGlyphsForCharacters(fontData->platformData().cgFont(), buffer, glyphs.data(), bufferLength);
     43    if (fontData->platformData().orientation() == Horizontal) {
     44        Vector<CGGlyph, 512> glyphs(bufferLength);
     45        wkGetGlyphsForCharacters(fontData->platformData().cgFont(), buffer, glyphs.data(), bufferLength);
     46        for (unsigned i = 0; i < length; ++i) {
     47            if (!glyphs[i])
     48                setGlyphDataForIndex(offset + i, 0, 0);
     49            else {
     50                setGlyphDataForIndex(offset + i, glyphs[i], fontData);
     51                haveGlyphs = true;
     52            }
     53        }
     54    } else {
     55        // We ask CoreText for possible vertical variant glyphs
     56        RetainPtr<CFStringRef> string(AdoptCF, CFStringCreateWithCharactersNoCopy(kCFAllocatorDefault, buffer, bufferLength, kCFAllocatorNull));
     57        RetainPtr<CFAttributedStringRef> attributedString(AdoptCF, CFAttributedStringCreate(kCFAllocatorDefault, string.get(), fontData->getCFStringAttributes(0)));
     58        RetainPtr<CTLineRef> line(AdoptCF, CTLineCreateWithAttributedString(attributedString.get()));
    4559
    46     for (unsigned i = 0; i < length; ++i) {
    47         if (!glyphs[i])
    48             setGlyphDataForIndex(offset + i, 0, 0);
    49         else {
    50             setGlyphDataForIndex(offset + i, glyphs[i], fontData);
    51             haveGlyphs = true;
     60        CFArrayRef runArray = CTLineGetGlyphRuns(line.get());
     61        CFIndex runCount = CFArrayGetCount(runArray);
     62
     63        // Initialize glyph entries
     64        for (unsigned index = 0; index < length; ++index)
     65            setGlyphDataForIndex(offset + index, 0, 0);
     66
     67        Vector<CGGlyph, 512> glyphVector;
     68        Vector<CFIndex, 512> indexVector;
     69        bool done = false;
     70        for (CFIndex r = 0; r < runCount && !done ; ++r) {
     71            // CTLine could map characters over multiple fonts using its own font fallback list.
     72            // We need to pick runs that use the exact font we need, i.e., fontData->platformData().ctFont().
     73            CTRunRef ctRun = static_cast<CTRunRef>(CFArrayGetValueAtIndex(runArray, r));
     74            ASSERT(CFGetTypeID(ctRun) == CTRunGetTypeID());
     75
     76            CFDictionaryRef attributes = CTRunGetAttributes(ctRun);
     77            CTFontRef runFont = static_cast<CTFontRef>(CFDictionaryGetValue(attributes, kCTFontAttributeName));
     78            RetainPtr<CGFontRef> runCGFont(AdoptCF, CTFontCopyGraphicsFont(runFont, 0));
     79            // Use CGFont here as CFEqual for CTFont counts all attributes for font.
     80            if (CFEqual(fontData->platformData().cgFont(), runCGFont.get())) {
     81                // This run uses the font we want. Extract glyphs.
     82                CFIndex glyphCount = CTRunGetGlyphCount(ctRun);
     83                const CGGlyph* glyphs = CTRunGetGlyphsPtr(ctRun);
     84                if (!glyphs) {
     85                    glyphVector.resize(glyphCount);
     86                    CTRunGetGlyphs(ctRun, CFRangeMake(0, 0), glyphVector.data());
     87                    glyphs = glyphVector.data();
     88                }
     89                const CFIndex* stringIndices = CTRunGetStringIndicesPtr(ctRun);
     90                if (!stringIndices) {
     91                    indexVector.resize(glyphCount);
     92                    CTRunGetStringIndices(ctRun, CFRangeMake(0, 0), indexVector.data());
     93                    stringIndices = indexVector.data();
     94                }
     95
     96                for (CFIndex i = 0; i < glyphCount; ++i) {
     97                    if (stringIndices[i] >= static_cast<CFIndex>(length)) {
     98                        done = true;
     99                        break;
     100                    }
     101                    if (glyphs[i]) {
     102                        setGlyphDataForIndex(offset + stringIndices[i], glyphs[i], fontData);
     103                        haveGlyphs = true;
     104                    }
     105                }
     106            }
    52107        }
    53108    }
  • trunk/WebCore/platform/graphics/mac/SimpleFontDataCoreText.cpp

    r64915 r70225  
    3131#import "SimpleFontData.h"
    3232
    33 #if USE(CORE_TEXT)
    34 
    3533#import "Font.h"
    3634#import "FontCache.h"
     
    6159        static const float kerningAdjustmentValue = 0;
    6260        static CFNumberRef kerningAdjustment = CFNumberCreate(kCFAllocatorDefault, kCFNumberFloatType, &kerningAdjustmentValue);
    63         static const void* keysWithKerningDisabled[] = { kCTFontAttributeName, kCTKernAttributeName, kCTLigatureAttributeName };
     61        static const void* keysWithKerningDisabled[] = { kCTFontAttributeName, kCTKernAttributeName, kCTLigatureAttributeName, kCTVerticalFormsAttributeName };
    6462        const void* valuesWithKerningDisabled[] = { platformData().ctFont(), kerningAdjustment, allowLigatures
    65             ? ligaturesAllowed : ligaturesNotAllowed };
     63            ? ligaturesAllowed : ligaturesNotAllowed, platformData().orientation() == Vertical ? kCFBooleanTrue : kCFBooleanFalse };
    6664        attributesDictionary.adoptCF(CFDictionaryCreate(0, keysWithKerningDisabled, valuesWithKerningDisabled,
    6765            sizeof(keysWithKerningDisabled) / sizeof(*keysWithKerningDisabled),
     
    6967    } else {
    7068        // By omitting the kCTKernAttributeName attribute, we get Core Text's standard kerning.
    71         static const void* keysWithKerningEnabled[] = { kCTFontAttributeName, kCTLigatureAttributeName };
    72         const void* valuesWithKerningEnabled[] = { platformData().ctFont(), allowLigatures ? ligaturesAllowed : ligaturesNotAllowed };
     69        static const void* keysWithKerningEnabled[] = { kCTFontAttributeName, kCTLigatureAttributeName, kCTVerticalFormsAttributeName };
     70        const void* valuesWithKerningEnabled[] = { platformData().ctFont(), allowLigatures ? ligaturesAllowed : ligaturesNotAllowed, platformData().orientation() == Vertical ? kCFBooleanTrue : kCFBooleanFalse };
    7371        attributesDictionary.adoptCF(CFDictionaryCreate(0, keysWithKerningEnabled, valuesWithKerningEnabled,
    7472            sizeof(keysWithKerningEnabled) / sizeof(*keysWithKerningEnabled),
     
    8078
    8179} // namespace WebCore
    82 
    83 #endif
  • trunk/WebCore/platform/graphics/mac/SimpleFontDataMac.mm

    r66440 r70225  
    418418    FloatRect boundingBox;
    419419#ifndef BUILDING_ON_TIGER
    420     CGRect box;
    421     CGFontGetGlyphBBoxes(platformData().cgFont(), &glyph, 1, &box);
    422     float pointSize = platformData().m_size;
    423     CGFloat scale = pointSize / unitsPerEm();
    424     boundingBox = CGRectApplyAffineTransform(box, CGAffineTransformMakeScale(scale, -scale));
     420    boundingBox = CTFontGetBoundingRectsForGlyphs(m_platformData.ctFont(),
     421                    m_platformData.orientation() == Vertical ? kCTFontVerticalOrientation : kCTFontHorizontalOrientation, &glyph, 0, 1);
     422    boundingBox.setY(-boundingBox.bottom());
    425423#else
    426424    // FIXME: Custom fonts don't have NSFonts, so this function doesn't compute correct bounds for these on Tiger.
     
    438436float SimpleFontData::platformWidthForGlyph(Glyph glyph) const
    439437{
    440     NSFont* font = platformData().font();
    441     float pointSize = platformData().m_size;
    442     CGAffineTransform m = CGAffineTransformMakeScale(pointSize, pointSize);
    443438    CGSize advance;
    444     if (!wkGetGlyphTransformedAdvances(platformData().cgFont(), font, &m, &glyph, &advance)) {
    445         LOG_ERROR("Unable to cache glyph widths for %@ %f", [font displayName], pointSize);
    446         advance.width = 0;
    447     }
     439    if (m_platformData.orientation() == Horizontal) {
     440        NSFont* font = platformData().font();
     441        float pointSize = platformData().m_size;
     442        CGAffineTransform m = CGAffineTransformMakeScale(pointSize, pointSize);
     443        if (!wkGetGlyphTransformedAdvances(platformData().cgFont(), font, &m, &glyph, &advance)) {
     444            LOG_ERROR("Unable to cache glyph widths for %@ %f", [font displayName], pointSize);
     445            advance.width = 0;
     446        }
     447    } else
     448        CTFontGetAdvancesForGlyphs(m_platformData.ctFont(), kCTFontVerticalOrientation, &glyph, &advance, 1);
     449
    448450    return advance.width + m_syntheticBoldOffset;
    449451}
  • trunk/WebCore/platform/graphics/qt/FontCustomPlatformData.h

    r65021 r70225  
    2323#define FontCustomPlatformData_h
    2424
     25#include "FontOrientation.h"
    2526#include "FontRenderingMode.h"
    2627#include <wtf/Forward.h>
     
    3839    int m_handle;
    3940
    40     FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     41    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    4142
    4243    static bool supportsFormat(const String&);
  • trunk/WebCore/platform/graphics/qt/FontCustomPlatformDataQt.cpp

    r64434 r70225  
    3535}
    3636
    37 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode)
     37FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode)
    3838{
    3939    QFont font;
  • trunk/WebCore/platform/graphics/skia/FontCustomPlatformData.cpp

    r68112 r70225  
    6565}
    6666
    67 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode mode)
     67FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode mode)
    6868{
    6969#if OS(WINDOWS)
  • trunk/WebCore/platform/graphics/skia/FontCustomPlatformData.h

    r68112 r70225  
    3333#define FontCustomPlatformData_h
    3434
     35#include "FontOrientation.h"
    3536#include "FontRenderingMode.h"
    3637#include <wtf/Forward.h>
     
    6364    ~FontCustomPlatformData();
    6465
    65     FontPlatformData fontPlatformData(int size, bool bold, bool italic,
     66    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal,
    6667                                      FontRenderingMode = NormalRenderingMode);
    6768
  • trunk/WebCore/platform/graphics/win/FontCustomPlatformData.cpp

    r64434 r70225  
    6060}
    6161
    62 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode renderingMode)
     62FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode renderingMode)
    6363{
    6464    ASSERT(m_fontReference);
  • trunk/WebCore/platform/graphics/win/FontCustomPlatformData.h

    r65021 r70225  
    2222#define FontCustomPlatformData_h
    2323
     24#include "FontOrientation.h"
    2425#include "FontRenderingMode.h"
    2526#include "PlatformString.h"
     
    4344    ~FontCustomPlatformData();
    4445
    45     FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     46    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    4647
    4748    static bool supportsFormat(const String&);
  • trunk/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.cpp

    r66047 r70225  
    3333}
    3434
    35 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic)
     35FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation)
    3636{
    3737    return FontPlatformData(m_fontFace, size, bold, italic);
  • trunk/WebCore/platform/graphics/win/FontCustomPlatformDataCairo.h

    r66047 r70225  
    2323#define FontCustomPlatformDataCairo_h
    2424
     25#include "FontDescription.h"
    2526#include <wtf/Forward.h>
    2627#include <wtf/Noncopyable.h>
     
    4041    ~FontCustomPlatformData();
    4142
    42     FontPlatformData fontPlatformData(int size, bool bold, bool italic);
     43    FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal);
    4344
    4445    static bool supportsFormat(const String&);
  • trunk/WebCore/platform/graphics/wince/FontCustomPlatformData.cpp

    r64434 r70225  
    4646}
    4747
    48 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode renderingMode)
     48FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode renderingMode)
    4949{
    5050    FontDescription fontDesc;
  • trunk/WebCore/platform/graphics/wince/FontCustomPlatformData.h

    r64434 r70225  
    2222#define FontCustomPlatformData_h
    2323
     24#include "FontDescription.h"
    2425#include "FontRenderingMode.h"
    2526#include "PlatformString.h"
     
    4546        ~FontCustomPlatformData();
    4647
    47         FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     48        FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation fontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    4849
    4950        static bool supportsFormat(const String&);
  • trunk/WebCore/platform/graphics/wx/FontCustomPlatformData.cpp

    r64528 r70225  
    3232}
    3333
    34 FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontRenderingMode)
     34FontPlatformData FontCustomPlatformData::fontPlatformData(int size, bool bold, bool italic, FontOrientation, FontRenderingMode)
    3535{
    3636    return FontPlatformData(size, bold, italic);
  • trunk/WebCore/platform/graphics/wx/FontCustomPlatformData.h

    r65021 r70225  
    2222#define FontCustomPlatformData_h
    2323
     24#include "FontOrientation.h"
    2425#include "FontRenderingMode.h"
    2526#include <wtf/Forward.h>
     
    3839        static bool supportsFormat(const String&);
    3940
    40         FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontRenderingMode = NormalRenderingMode);
     41        FontPlatformData fontPlatformData(int size, bool bold, bool italic, FontOrientation = Horizontal, FontRenderingMode = NormalRenderingMode);
    4142    };
    4243
Note: See TracChangeset for help on using the changeset viewer.