Changeset 211836 in webkit


Ignore:
Timestamp:
Feb 7, 2017 1:37:44 PM (7 years ago)
Author:
mmaxfield@apple.com
Message:

[Win] [GTK] [EFL] Compile (but don't use, yet) the platform-independent piece of ComplexTextController
https://bugs.webkit.org/show_bug.cgi?id=167927

Reviewed by Brent Fulgham.

Source/WebCore:

This patch simply moves some functions around to enable the Win, GTK, and EFL ports to compile the
platform-independent pieces of ComplexTextController. Those parts of ComplexTextController have
some dependencies which were previously only available on the Cocoa ports; however, those
dependencies are easily created or moved from elsewhere. The next step is to populate the
ComplexTextController::collectComplexTextRunsForCharacters() function for DirectWrite and HarfBuzz.
Once that is done, UniscribeController and HarfBuzzShaper can be deleted.

Adds ComplexTextController TestWebKitAPI tests to the Win and GTK ports.

  • CMakeLists.txt: Everyone can compile the platform-independent piece of ComplexTextController.
  • PlatformEfl.cmake: Add the HarfBuzz-specific piece.
  • PlatformGTK.cmake: Ditto.
  • PlatformWin.cmake: Add the DirectWrite-specific piece.
  • platform/graphics/ComplexTextController.cpp:

(WebCore::TextLayoutDeleter::operator()): ComplexTextController shouldn't be enabled yet for Win,
GTK, or EFL.
(WebCore::FontCascade::createLayout): Ditto.
(WebCore::FontCascade::width): Ditto.
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Moved shared code to the shared
file.

  • platform/graphics/Font.cpp:

(WebCore::Font::noSynthesizableFeaturesFont): Default implementation for other ports.
(WebCore::Font::variantCapsSupportsCharacterForSynthesis): Ditto.

  • platform/graphics/FontCascade.cpp:

(WebCore::FontCascade::fontForCombiningCharacterSequence): Ditto.
(WebCore::FontCascade::drawEmphasisMarksForComplexText): Ditto.
(WebCore::FontCascade::createLayout): Deleted. Moved to ComplexTextController.
(WebCore::TextLayoutDeleter::operator()): Deleted. Ditto.

  • platform/graphics/FontCascade.h: fontForCombiningCharacterSequence() should exist on all ports.
  • platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:

(WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Shared among all ports.

  • platform/graphics/cocoa/FontCascadeCocoa.mm:

(WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Ditto.

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: Added.

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Empty implementation of
HarfBuzz-specific piece of ComplexTextController.

  • platform/graphics/mac/ComplexTextControllerCoreText.mm: Moved constructors to shared file.
  • platform/graphics/win/ComplexTextControllerDirectWrite.cpp: Added.

(WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Empty implementation of
Direct Write-specific piece of ComplexTextController.

  • platform/graphics/win/FontWin.cpp:

(WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Shared among all ports.

Tools:

Enable ComplexTextController API tests on the Win and GTK ports.

  • TestWebKitAPI/PlatformGTK.cmake:
  • TestWebKitAPI/PlatformWin.cmake:
Location:
trunk
Files:
2 added
18 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/CMakeLists.txt

    r211821 r211836  
    21702170    platform/graphics/BitmapImage.cpp
    21712171    platform/graphics/Color.cpp
     2172    platform/graphics/ComplexTextController.cpp
    21722173    platform/graphics/CrossfadeGeneratedImage.cpp
    21732174    platform/graphics/DisplayRefreshMonitorClient.cpp
  • trunk/Source/WebCore/ChangeLog

    r211835 r211836  
     12017-02-07  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [Win] [GTK] [EFL] Compile (but don't use, yet) the platform-independent piece of ComplexTextController
     4        https://bugs.webkit.org/show_bug.cgi?id=167927
     5
     6        Reviewed by Brent Fulgham.
     7
     8        This patch simply moves some functions around to enable the Win, GTK, and EFL ports to compile the
     9        platform-independent pieces of ComplexTextController. Those parts of ComplexTextController have
     10        some dependencies which were previously only available on the Cocoa ports; however, those
     11        dependencies are easily created or moved from elsewhere. The next step is to populate the
     12        ComplexTextController::collectComplexTextRunsForCharacters() function for DirectWrite and HarfBuzz.
     13        Once that is done, UniscribeController and HarfBuzzShaper can be deleted.
     14
     15        Adds ComplexTextController TestWebKitAPI tests to the Win and GTK ports.
     16
     17        * CMakeLists.txt: Everyone can compile the platform-independent piece of ComplexTextController.
     18        * PlatformEfl.cmake: Add the HarfBuzz-specific piece.
     19        * PlatformGTK.cmake: Ditto.
     20        * PlatformWin.cmake: Add the DirectWrite-specific piece.
     21        * platform/graphics/ComplexTextController.cpp:
     22        (WebCore::TextLayoutDeleter::operator()): ComplexTextController shouldn't be enabled yet for Win,
     23        GTK, or EFL.
     24        (WebCore::FontCascade::createLayout): Ditto.
     25        (WebCore::FontCascade::width): Ditto.
     26        (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun): Moved shared code to the shared
     27        file.
     28        * platform/graphics/Font.cpp:
     29        (WebCore::Font::noSynthesizableFeaturesFont): Default implementation for other ports.
     30        (WebCore::Font::variantCapsSupportsCharacterForSynthesis): Ditto.
     31        * platform/graphics/FontCascade.cpp:
     32        (WebCore::FontCascade::fontForCombiningCharacterSequence): Ditto.
     33        (WebCore::FontCascade::drawEmphasisMarksForComplexText): Ditto.
     34        (WebCore::FontCascade::createLayout): Deleted. Moved to ComplexTextController.
     35        (WebCore::TextLayoutDeleter::operator()): Deleted. Ditto.
     36        * platform/graphics/FontCascade.h: fontForCombiningCharacterSequence() should exist on all ports.
     37        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
     38        (WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Shared among all ports.
     39        * platform/graphics/cocoa/FontCascadeCocoa.mm:
     40        (WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Ditto.
     41        * platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp: Added.
     42        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Empty implementation of
     43        HarfBuzz-specific piece of ComplexTextController.
     44        * platform/graphics/mac/ComplexTextControllerCoreText.mm: Moved constructors to shared file.
     45        * platform/graphics/win/ComplexTextControllerDirectWrite.cpp: Added.
     46        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters): Empty implementation of
     47        Direct Write-specific piece of ComplexTextController.
     48        * platform/graphics/win/FontWin.cpp:
     49        (WebCore::FontCascade::drawEmphasisMarksForComplexText): Deleted. Shared among all ports.
     50
    1512017-02-07  Alex Christensen  <achristensen@webkit.org>
    252
  • trunk/Source/WebCore/PlatformEfl.cmake

    r211027 r211836  
    139139    platform/graphics/gstreamer/ImageGStreamerCairo.cpp
    140140
     141    platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp
    141142    platform/graphics/harfbuzz/HarfBuzzFace.cpp
    142143    platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp
  • trunk/Source/WebCore/PlatformGTK.cmake

    r211631 r211836  
    120120    platform/graphics/gstreamer/ImageGStreamerCairo.cpp
    121121
     122    platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp
    122123    platform/graphics/harfbuzz/HarfBuzzFace.cpp
    123124    platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp
  • trunk/Source/WebCore/PlatformWin.cmake

    r211161 r211836  
    8787
    8888    platform/graphics/win/ColorDirect2D.cpp
     89    platform/graphics/win/ComplexTextControllerDirectWrite.cpp
    8990    platform/graphics/win/DIBPixelData.cpp
    9091    platform/graphics/win/FloatPointDirect2D.cpp
  • trunk/Source/WebCore/platform/graphics/ComplexTextController.cpp

    r211776 r211836  
    9393void TextLayoutDeleter::operator()(TextLayout* layout) const
    9494{
     95#if PLATFORM(COCOA)
    9596    delete layout;
     97#else
     98    ASSERT_UNUSED(layout, !layout);
     99#endif
    96100}
    97101
    98102std::unique_ptr<TextLayout, TextLayoutDeleter> FontCascade::createLayout(RenderText& text, float xPos, bool collapseWhiteSpace) const
    99103{
     104#if PLATFORM(COCOA)
    100105    if (!collapseWhiteSpace || !TextLayout::isNeeded(text, *this))
    101106        return nullptr;
    102107    return std::unique_ptr<TextLayout, TextLayoutDeleter>(new TextLayout(text, *this, xPos));
     108#else
     109    UNUSED_PARAM(text);
     110    UNUSED_PARAM(xPos);
     111    UNUSED_PARAM(collapseWhiteSpace);
     112    return nullptr;
     113#endif
    103114}
    104115
    105116float FontCascade::width(TextLayout& layout, unsigned from, unsigned len, HashSet<const Font*>* fallbackFonts)
    106117{
     118#if PLATFORM(COCOA)
    107119    return layout.width(from, len, fallbackFonts);
     120#else
     121    UNUSED_PARAM(layout);
     122    UNUSED_PARAM(from);
     123    UNUSED_PARAM(len);
     124    UNUSED_PARAM(fallbackFonts);
     125    ASSERT_NOT_REACHED();
     126    return 0;
     127#endif
    108128}
    109129
     
    704724        const FloatSize* advances = complexTextRun.baseAdvances();
    705725
    706         bool lastRun = runIndex + 1 == runCount;
    707726        float spaceWidth = font.spaceWidth() - font.syntheticBoldOffset();
    708727        const UChar* cp = complexTextRun.characters();
     
    721740            }
    722741            UChar ch = *(cp + characterIndex);
    723             bool lastGlyph = lastRun && i + 1 == glyphCount;
    724             UChar nextCh;
    725             if (lastGlyph)
    726                 nextCh = ' ';
    727             else if (i + 1 < glyphCount)
    728                 nextCh = *(cp + complexTextRun.indexAt(i + 1));
    729             else
    730                 nextCh = *(m_complexTextRuns[runIndex + 1]->characters() + m_complexTextRuns[runIndex + 1]->indexAt(0));
    731742
    732743            bool treatAsSpace = FontCascade::treatAsSpace(ch);
     
    831842}
    832843
     844// Missing glyphs run constructor. Core Text will not generate a run of missing glyphs, instead falling back on
     845// glyphs from LastResort. We want to use the primary font's missing glyph in order to match the fast text code path.
     846ComplexTextController::ComplexTextRun::ComplexTextRun(const Font& font, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr)
     847    : m_font(font)
     848    , m_characters(characters)
     849    , m_stringLength(stringLength)
     850    , m_indexBegin(indexBegin)
     851    , m_indexEnd(indexEnd)
     852    , m_stringLocation(stringLocation)
     853    , m_isLTR(ltr)
     854{
     855    auto runLengthInCodeUnits = m_indexEnd - m_indexBegin;
     856    m_coreTextIndices.reserveInitialCapacity(runLengthInCodeUnits);
     857    unsigned r = m_indexBegin;
     858    while (r < m_indexEnd) {
     859        m_coreTextIndices.uncheckedAppend(r);
     860        UChar32 character;
     861        U16_NEXT(m_characters, r, m_stringLength, character);
     862    }
     863    m_glyphCount = m_coreTextIndices.size();
     864    if (!ltr) {
     865        for (unsigned r = 0, end = m_glyphCount - 1; r < m_glyphCount / 2; ++r, --end)
     866            std::swap(m_coreTextIndices[r], m_coreTextIndices[end]);
     867    }
     868
     869    // Synthesize a run of missing glyphs.
     870    m_glyphs.fill(0, m_glyphCount);
     871    m_baseAdvances.fill(FloatSize(m_font.widthForGlyph(0), 0), m_glyphCount);
     872}
     873
     874ComplexTextController::ComplexTextRun::ComplexTextRun(const Vector<FloatSize>& advances, const Vector<FloatPoint>& origins, const Vector<Glyph>& glyphs, const Vector<unsigned>& stringIndices, FloatSize initialAdvance, const Font& font, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr)
     875    : m_baseAdvances(advances)
     876    , m_glyphOrigins(origins)
     877    , m_glyphs(glyphs)
     878    , m_coreTextIndices(stringIndices)
     879    , m_initialAdvance(initialAdvance)
     880    , m_font(font)
     881    , m_characters(characters)
     882    , m_stringLength(stringLength)
     883    , m_indexBegin(indexBegin)
     884    , m_indexEnd(indexEnd)
     885    , m_glyphCount(glyphs.size())
     886    , m_stringLocation(stringLocation)
     887    , m_isLTR(ltr)
     888{
     889}
     890
    833891} // namespace WebCore
  • trunk/Source/WebCore/platform/graphics/ComplexTextController.h

    r211776 r211836  
    196196    Vector<unsigned, 16> m_glyphCountFromStartToIndex;
    197197
     198#if PLATFORM(COCOA)
    198199    Vector<RetainPtr<CTLineRef>> m_coreTextLines;
     200#endif
    199201
    200202    Vector<String> m_stringsFor8BitRuns;
  • trunk/Source/WebCore/platform/graphics/Font.cpp

    r206830 r211836  
    293293}
    294294
     295const Font& Font::noSynthesizableFeaturesFont() const
     296{
    295297#if PLATFORM(COCOA)
    296 const Font& Font::noSynthesizableFeaturesFont() const
    297 {
    298298    if (!m_derivedFontData)
    299299        m_derivedFontData = std::make_unique<DerivedFonts>(isCustomFont());
     
    302302    ASSERT(m_derivedFontData->noSynthesizableFeatures != this);
    303303    return *m_derivedFontData->noSynthesizableFeatures;
    304 }
    305 #endif
     304#else
     305    return *this;
     306#endif
     307}
    306308
    307309const Font* Font::emphasisMarkFont(const FontDescription& fontDescription) const
     
    506508}
    507509
     510#if !PLATFORM(COCOA)
     511bool Font::variantCapsSupportsCharacterForSynthesis(FontVariantCaps, UChar32) const
     512{
     513    return false;
     514}
     515#endif
     516
    508517} // namespace WebCore
  • trunk/Source/WebCore/platform/graphics/FontCascade.cpp

    r211738 r211836  
    431431    return m_fonts->glyphDataForCharacter(c, m_fontDescription, variant);
    432432}
    433 
    434 #if !PLATFORM(COCOA)
    435 
    436 std::unique_ptr<TextLayout, TextLayoutDeleter> FontCascade::createLayout(RenderText&, float, bool) const
    437 {
    438     return nullptr;
    439 }
    440 
    441 void TextLayoutDeleter::operator()(TextLayout*) const
    442 {
    443 }
    444 
    445 float FontCascade::width(TextLayout&, unsigned, unsigned, HashSet<const Font*>*)
    446 {
    447     ASSERT_NOT_REACHED();
    448     return 0;
    449 }
    450 
    451 #endif
    452433
    453434static const char* fontFamiliesWithInvalidCharWidth[] = {
     
    14691450}
    14701451
    1471 
    1472 }
     1452#if !PLATFORM(COCOA)
     1453// FIXME: Unify this with the macOS and iOS implementation.
     1454const Font* FontCascade::fontForCombiningCharacterSequence(const UChar* characters, size_t length) const
     1455{
     1456    UChar32 baseCharacter;
     1457    size_t baseCharacterLength = 0;
     1458    U16_NEXT(characters, baseCharacterLength, length, baseCharacter);
     1459    GlyphData baseCharacterGlyphData = glyphDataForCharacter(baseCharacter, false, NormalVariant);
     1460
     1461    if (!baseCharacterGlyphData.glyph)
     1462        return nullptr;
     1463    return baseCharacterGlyphData.font;
     1464}
     1465#endif
     1466
     1467void FontCascade::drawEmphasisMarksForComplexText(GraphicsContext& context, const TextRun& run, const AtomicString& mark, const FloatPoint& point, unsigned from, unsigned to) const
     1468{
     1469    GlyphBuffer glyphBuffer;
     1470    float initialAdvance = getGlyphsAndAdvancesForComplexText(run, from, to, glyphBuffer, ForTextEmphasis);
     1471
     1472    if (glyphBuffer.isEmpty())
     1473        return;
     1474
     1475    drawEmphasisMarks(context, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
     1476}
     1477
     1478}
  • trunk/Source/WebCore/platform/graphics/FontCascade.h

    r211738 r211836  
    185185    const FontRanges& fallbackRangesAt(unsigned) const;
    186186    GlyphData glyphDataForCharacter(UChar32, bool mirror, FontVariant = AutoVariant) const;
    187    
    188 #if PLATFORM(COCOA)
     187
    189188    const Font* fontForCombiningCharacterSequence(const UChar*, size_t length) const;
    190 #endif
    191189
    192190    static bool isCJKIdeograph(UChar32);
  • trunk/Source/WebCore/platform/graphics/cairo/FontCairoHarfbuzzNG.cpp

    r204400 r211836  
    5353}
    5454
    55 void FontCascade::drawEmphasisMarksForComplexText(GraphicsContext& /* context */, const TextRun& /* run */, const AtomicString& /* mark */, const FloatPoint& /* point */, unsigned /* from */, unsigned /* to */) const
    56 {
    57     notImplemented();
    58 }
    59 
    6055bool FontCascade::canReturnFallbackFontsForComplexText()
    6156{
  • trunk/Source/WebCore/platform/graphics/cocoa/FontCascadeCocoa.mm

    r211667 r211836  
    532532}
    533533
    534 void FontCascade::drawEmphasisMarksForComplexText(GraphicsContext& context, const TextRun& run, const AtomicString& mark, const FloatPoint& point, unsigned from, unsigned to) const
    535 {
    536     GlyphBuffer glyphBuffer;
    537     float initialAdvance = getGlyphsAndAdvancesForComplexText(run, from, to, glyphBuffer, ForTextEmphasis);
    538 
    539     if (glyphBuffer.isEmpty())
    540         return;
    541 
    542     drawEmphasisMarks(context, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
    543 }
    544 
    545534float FontCascade::floatWidthForComplexText(const TextRun& run, HashSet<const Font*>* fallbackFonts, GlyphOverflow* glyphOverflow) const
    546535{
     
    561550}
    562551
     552// FIXME: Use this on all ports.
    563553const Font* FontCascade::fontForCombiningCharacterSequence(const UChar* characters, size_t length) const
    564554{
  • trunk/Source/WebCore/platform/graphics/mac/ComplexTextControllerCoreText.mm

    r211765 r211836  
    2424
    2525#include "config.h"
    26 
    2726#include "ComplexTextController.h"
    2827
     
    164163            m_baseAdvances.uncheckedAppend(baseAdvances[i]);
    165164    }
    166 }
    167 
    168 // Missing glyphs run constructor. Core Text will not generate a run of missing glyphs, instead falling back on
    169 // glyphs from LastResort. We want to use the primary font's missing glyph in order to match the fast text code path.
    170 ComplexTextController::ComplexTextRun::ComplexTextRun(const Font& font, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr)
    171     : m_font(font)
    172     , m_characters(characters)
    173     , m_stringLength(stringLength)
    174     , m_indexBegin(indexBegin)
    175     , m_indexEnd(indexEnd)
    176     , m_stringLocation(stringLocation)
    177     , m_isLTR(ltr)
    178 {
    179     auto runLengthInCodeUnits = m_indexEnd - m_indexBegin;
    180     m_coreTextIndices.reserveInitialCapacity(runLengthInCodeUnits);
    181     unsigned r = m_indexBegin;
    182     while (r < m_indexEnd) {
    183         m_coreTextIndices.uncheckedAppend(r);
    184         UChar32 character;
    185         U16_NEXT(m_characters, r, m_stringLength, character);
    186     }
    187     m_glyphCount = m_coreTextIndices.size();
    188     if (!ltr) {
    189         for (unsigned r = 0, end = m_glyphCount - 1; r < m_glyphCount / 2; ++r, --end)
    190             std::swap(m_coreTextIndices[r], m_coreTextIndices[end]);
    191     }
    192 
    193     // Synthesize a run of missing glyphs.
    194     m_glyphs.fill(0, m_glyphCount);
    195     m_baseAdvances.fill(FloatSize(m_font.widthForGlyph(0), 0), m_glyphCount);
    196 }
    197 
    198 
    199 ComplexTextController::ComplexTextRun::ComplexTextRun(const Vector<FloatSize>& advances, const Vector<FloatPoint>& origins, const Vector<Glyph>& glyphs, const Vector<unsigned>& stringIndices, FloatSize initialAdvance, const Font& font, const UChar* characters, unsigned stringLocation, unsigned stringLength, unsigned indexBegin, unsigned indexEnd, bool ltr)
    200     : m_baseAdvances(advances)
    201     , m_glyphOrigins(origins)
    202     , m_glyphs(glyphs)
    203     , m_coreTextIndices(stringIndices)
    204     , m_initialAdvance(initialAdvance)
    205     , m_font(font)
    206     , m_characters(characters)
    207     , m_stringLength(stringLength)
    208     , m_indexBegin(indexBegin)
    209     , m_indexEnd(indexEnd)
    210     , m_glyphCount(glyphs.size())
    211     , m_stringLocation(stringLocation)
    212     , m_isLTR(ltr)
    213 {
    214165}
    215166
  • trunk/Source/WebCore/platform/graphics/win/FontWin.cpp

    r206597 r211836  
    9292}
    9393
    94 void FontCascade::drawEmphasisMarksForComplexText(GraphicsContext& context, const TextRun& run, const AtomicString& mark, const FloatPoint& point, unsigned from, unsigned to) const
    95 {
    96     GlyphBuffer glyphBuffer;
    97     float initialAdvance = getGlyphsAndAdvancesForComplexText(run, from, to, glyphBuffer, ForTextEmphasis);
    98 
    99     if (glyphBuffer.isEmpty())
    100         return;
    101 
    102     drawEmphasisMarks(context, glyphBuffer, mark, FloatPoint(point.x() + initialAdvance, point.y()));
    103 }
    104 
    10594float FontCascade::floatWidthForComplexText(const TextRun& run, HashSet<const Font*>* fallbackFonts, GlyphOverflow* glyphOverflow) const
    10695{
  • trunk/Tools/ChangeLog

    r211833 r211836  
     12017-02-07  Myles C. Maxfield  <mmaxfield@apple.com>
     2
     3        [Win] [GTK] [EFL] Compile (but don't use, yet) the platform-independent piece of ComplexTextController
     4        https://bugs.webkit.org/show_bug.cgi?id=167927
     5
     6        Reviewed by Brent Fulgham.
     7
     8        Enable ComplexTextController API tests on the Win and GTK ports.
     9
     10        * TestWebKitAPI/PlatformGTK.cmake:
     11        * TestWebKitAPI/PlatformWin.cmake:
     12
    1132017-02-07  Jonathan Bedard  <jbedard@apple.com>
    214
  • trunk/Tools/TestWebKitAPI/PlatformGTK.cmake

    r210320 r211836  
    132132    ${TESTWEBKITAPI_DIR}/TestsController.cpp
    133133    ${TESTWEBKITAPI_DIR}/Tests/WebCore/CSSParser.cpp
     134    ${TESTWEBKITAPI_DIR}/Tests/WebCore/ComplexTextController.cpp
    134135    ${TESTWEBKITAPI_DIR}/Tests/WebCore/FileSystem.cpp
    135136    ${TESTWEBKITAPI_DIR}/Tests/WebCore/GridPosition.cpp
  • trunk/Tools/TestWebKitAPI/PlatformWin.cmake

    r211207 r211836  
    4747    ${TESTWEBKITAPI_DIR}/Tests/WebCore/AffineTransform.cpp
    4848    ${TESTWEBKITAPI_DIR}/Tests/WebCore/CalculationValue.cpp
     49    ${TESTWEBKITAPI_DIR}/Tests/WebCore/ComplexTextController.cpp
    4950    ${TESTWEBKITAPI_DIR}/Tests/WebCore/CSSParser.cpp
    5051    ${TESTWEBKITAPI_DIR}/Tests/WebCore/FloatRect.cpp
  • trunk/Tools/TestWebKitAPI/Tests/WebCore/ComplexTextController.cpp

    r211765 r211836  
    7575    ComplexTextController controller(font, textRun, runs);
    7676
    77     CGFloat totalWidth = 0;
     77    float totalWidth = 0;
    7878    for (size_t i = 1; i < advances.size(); ++i)
    7979        totalWidth += advances[i].width();
     
    124124    ComplexTextController controller(font, textRun, runs);
    125125
    126     CGFloat totalWidth = 0;
     126    float totalWidth = 0;
    127127    for (size_t i = 1; i < advances.size(); ++i)
    128128        totalWidth += advances[i].width();
     
    259259    ComplexTextController controller(font, textRun, runs);
    260260
    261     CGFloat totalWidth = 14.0397830018083 + 12.0 + 43.8119349005425;
     261    float totalWidth = 14.0397830018083 + 12.0 + 43.8119349005425;
    262262    EXPECT_NEAR(controller.totalWidth(), totalWidth, 0.0001);
    263263    GlyphBuffer glyphBuffer;
     
    299299    ComplexTextController controller(font, textRun, runs);
    300300
    301     CGFloat totalWidth = 100 + 24;
     301    float totalWidth = 100 + 24;
    302302    EXPECT_NEAR(controller.totalWidth(), totalWidth, 0.0001);
    303303    GlyphBuffer glyphBuffer;
Note: See TracChangeset for help on using the changeset viewer.