Changeset 107887 in webkit


Ignore:
Timestamp:
Feb 15, 2012 10:40:30 PM (12 years ago)
Author:
leviw@chromium.org
Message:

Add FractionalLayoutPoint/Size/Rect for sub-pixel layout
https://bugs.webkit.org/show_bug.cgi?id=76571

Reviewed by Eric Seidel.

Add fixed point versions of the Point, Size and Rect classes using
the new FractionalLayoutPoint type and.

FractionalLayoutPoint, FractionalLayoutSize and FractionalLayoutRect are
Point, Size and Rect implementations respectively using this new type.

No new tests.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • WebCore.gypi:
  • WebCore.order:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/FractionalLayoutUnit.h:

Fixed a couple of typos and signed/unsigned bugs.

  • platform/graphics/FloatPoint.cpp:

(WebCore::FloatPoint::FloatPoint):
Add explicit FloatPoint(FractionalLayoutPoint) constructor.

(WebCore::FloatPoint::move):
Add move(FractionalLayoutSize) implementation.

(WebCore::FloatPoint::moveBy):
Add moveBy(FractionalLayoutPoint) implementation.

  • platform/graphics/FloatPoint.h:
  • platform/graphics/FloatRect.cpp:

(WebCore::FloatRect::FloatRect):
Add explicit FloatRectFractionalLayoutRect) constructor.

  • platform/graphics/FloatRect.h:

(WebCore):
(FloatRect):

  • platform/graphics/FloatSize.cpp:

(WebCore::FloatSize::FloatSize):
Add explicit FloatSize(FractionalLayoutSize) constructor.

  • platform/graphics/FloatSize.h:
  • platform/graphics/FractionalLayoutPoint.h: Added.
  • platform/graphics/FractionalLayoutRect.cpp: Added.
  • platform/graphics/FractionalLayoutRect.h: Added.
  • platform/graphics/FractionalLayoutSize.cpp: Added.
  • platform/graphics/FractionalLayoutSize.h: Added.
  • platform/graphics/IntRect.cpp:

(WebCore::IntRect::IntRect):
Add explicit IntRect(FractionalLayoutRect) constructor.

  • platform/graphics/IntRect.h:
Location:
trunk/Source/WebCore
Files:
5 added
16 edited

Legend:

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

    r107820 r107887  
    10991099    platform/graphics/Color.cpp
    11001100    platform/graphics/CrossfadeGeneratedImage.cpp
     1101    platform/graphics/FractionalLayoutRect.cpp
     1102    platform/graphics/FractionalLayoutSize.cpp
    11011103    platform/graphics/FloatPoint.cpp
    11021104    platform/graphics/FloatPoint3D.cpp
  • trunk/Source/WebCore/ChangeLog

    r107886 r107887  
     12012-02-15  Emil A Eklund  <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>
     2
     3        Add FractionalLayoutPoint/Size/Rect for sub-pixel layout
     4        https://bugs.webkit.org/show_bug.cgi?id=76571
     5
     6        Reviewed by Eric Seidel.
     7
     8        Add fixed point versions of the Point, Size and Rect classes using
     9        the new FractionalLayoutPoint type and.
     10
     11        FractionalLayoutPoint, FractionalLayoutSize and FractionalLayoutRect are
     12        Point, Size and Rect implementations respectively using this new type.
     13
     14        No new tests.
     15
     16        * CMakeLists.txt:
     17        * GNUmakefile.list.am:
     18        * WebCore.gypi:
     19        * WebCore.order:
     20        * WebCore.vcproj/WebCore.vcproj:
     21        * WebCore.xcodeproj/project.pbxproj:
     22        * platform/FractionalLayoutUnit.h:
     23        Fixed a couple of typos and signed/unsigned bugs.
     24
     25        * platform/graphics/FloatPoint.cpp:
     26        (WebCore::FloatPoint::FloatPoint):
     27        Add explicit FloatPoint(FractionalLayoutPoint) constructor.
     28       
     29        (WebCore::FloatPoint::move):
     30        Add move(FractionalLayoutSize) implementation.
     31       
     32        (WebCore::FloatPoint::moveBy):
     33        Add moveBy(FractionalLayoutPoint) implementation.
     34
     35        * platform/graphics/FloatPoint.h:
     36        * platform/graphics/FloatRect.cpp:
     37        (WebCore::FloatRect::FloatRect):
     38        Add explicit FloatRectFractionalLayoutRect) constructor.
     39       
     40        * platform/graphics/FloatRect.h:
     41        (WebCore):
     42        (FloatRect):
     43        * platform/graphics/FloatSize.cpp:
     44        (WebCore::FloatSize::FloatSize):
     45        Add explicit FloatSize(FractionalLayoutSize) constructor.
     46
     47        * platform/graphics/FloatSize.h:
     48        * platform/graphics/FractionalLayoutPoint.h: Added.
     49        * platform/graphics/FractionalLayoutRect.cpp: Added.
     50        * platform/graphics/FractionalLayoutRect.h: Added.
     51        * platform/graphics/FractionalLayoutSize.cpp: Added.
     52        * platform/graphics/FractionalLayoutSize.h: Added.
     53        * platform/graphics/IntRect.cpp:
     54        (WebCore::IntRect::IntRect):
     55        Add explicit IntRect(FractionalLayoutRect) constructor.
     56
     57        * platform/graphics/IntRect.h:
     58
    1592012-02-15  Kentaro Hara  <haraken@chromium.org>
    260
  • trunk/Source/WebCore/GNUmakefile.list.am

    r107787 r107887  
    29582958        Source/WebCore/platform/graphics/filters/arm/FELightingNEON.cpp \
    29592959        Source/WebCore/platform/graphics/filters/arm/FELightingNEON.h \
     2960        Source/WebCore/platform/graphics/FractionalLayoutPoint.h \
     2961        Source/WebCore/platform/graphics/FractionalLayoutRect.cpp \
     2962        Source/WebCore/platform/graphics/FractionalLayoutRect.h \
     2963        Source/WebCore/platform/graphics/FractionalLayoutSize.cpp \
     2964        Source/WebCore/platform/graphics/FractionalLayoutSize.h \
    29602965        Source/WebCore/platform/graphics/FloatPoint3D.cpp \
    29612966        Source/WebCore/platform/graphics/FloatPoint3D.h \
  • trunk/Source/WebCore/WebCore.gypi

    r107804 r107887  
    30103010            'platform/graphics/CrossfadeGeneratedImage.h',
    30113011            'platform/graphics/Extensions3D.h',
     3012            'platform/graphics/FractionalLayoutRect.cpp',
     3013            'platform/graphics/FractionalLayoutSize.cpp',
    30123014            'platform/graphics/FloatPoint.cpp',
    30133015            'platform/graphics/FloatPoint3D.cpp',
  • trunk/Source/WebCore/WebCore.order

    r107682 r107887  
    1032110321__ZNK7WebCore22CSSImageGeneratorValue21isImageGeneratorValueEv
    1032210322__ZN7WebCore22CSSImageGeneratorValue14generatedImageEv
    10323 __ZNK7WebCore14CSSCanvasValue11isFixedSizeEv
     10323__ZNK7WebCore14CSSCanvasValue11isFractionalLayoutSizeEv
    1032410324__ZN7WebCore19StyleGeneratedImage9addClientEPNS_12RenderObjectE
    1032510325__ZN7WebCore22CSSImageGeneratorValue9addClientEPNS_12RenderObjectERKNS_7IntSizeE
     
    1045510455__ZN7WebCore23BorderImageParseContext17commitBorderImageEPNS_9CSSParserEb
    1045610456__ZN7WebCore23BorderImageParseContextD1Ev
    10457 __ZNK7WebCore22CSSImageGeneratorValue11isFixedSizeEv
     10457__ZNK7WebCore22CSSImageGeneratorValue11isFractionalLayoutSizeEv
    1045810458__ZN7WebCore16CSSGradientValue5imageEPNS_12RenderObjectERKNS_7IntSizeE
    1045910459__ZNK3WTF9HashTableIPN7WebCore12RenderObjectESt4pairIS3_S4_INS1_7IntSizeEiEENS_18PairFirstExtractorIS7_EENS_7PtrHashIS3_EENS_14PairHashTraitsINS_10HashTraitsIS3_EENSD_IS6_EEEESE_E8containsIS3_NS_22IdentityHashTranslatorIS3_S7_SB_EEEEbRKT_
  • trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj

    r107824 r107887  
    2752627526                                </File>
    2752727527                                <File
     27528                                        RelativePath="..\platform\graphics\FractionalLayoutPoint.h"
     27529                                        >
     27530                                </File>
     27531                                <File
     27532                                        RelativePath="..\platform\graphics\FractionalLayoutRect.cpp"
     27533                                        >
     27534                                </File>
     27535                                <File
     27536                                        RelativePath="..\platform\graphics\FractionalLayoutRect.h"
     27537                                        >
     27538                                </File>
     27539                                <File
     27540                                        RelativePath="..\platform\graphics\FractionalLayoutSize.cpp"
     27541                                        >
     27542                                </File>
     27543                                <File
     27544                                        RelativePath="..\platform\graphics\FractionalLayoutSize.h"
     27545                                        >
     27546                                </File>
     27547                                <File
    2752827548                                        RelativePath="..\platform\graphics\FloatPoint.cpp"
    2752927549                                        >
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r107778 r107887  
    298298                1449E24C107D4A8400B5793F /* JSCallbackData.h in Headers */ = {isa = PBXBuildFile; fileRef = 1449E24A107D4A8400B5793F /* JSCallbackData.h */; };
    299299                1449E287107D4DB400B5793F /* JSCallbackData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1449E286107D4DB400B5793F /* JSCallbackData.cpp */; };
     300                144FCE5214EC79BC000D17A3 /* FractionalLayoutUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 144FCE5114EC79BC000D17A3 /* FractionalLayoutUnit.h */; settings = {ATTRIBUTES = (Private, ); }; };
     301                144FCE5914EC79E7000D17A3 /* FractionalLayoutPoint.h in Headers */ = {isa = PBXBuildFile; fileRef = 144FCE5414EC79E7000D17A3 /* FractionalLayoutPoint.h */; settings = {ATTRIBUTES = (Private, ); }; };
     302                144FCE5A14EC79E7000D17A3 /* FractionalLayoutRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 144FCE5514EC79E7000D17A3 /* FractionalLayoutRect.cpp */; };
     303                144FCE5B14EC79E7000D17A3 /* FractionalLayoutRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 144FCE5614EC79E7000D17A3 /* FractionalLayoutRect.h */; settings = {ATTRIBUTES = (Private, ); }; };
     304                144FCE5C14EC79E7000D17A3 /* FractionalLayoutSize.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 144FCE5714EC79E7000D17A3 /* FractionalLayoutSize.cpp */; };
     305                144FCE5D14EC79E7000D17A3 /* FractionalLayoutSize.h in Headers */ = {isa = PBXBuildFile; fileRef = 144FCE5814EC79E7000D17A3 /* FractionalLayoutSize.h */; settings = {ATTRIBUTES = (Private, ); }; };
    300306                1464E06C135EC10600FDB00A /* JSMediaListCustom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1464E06B135EC10600FDB00A /* JSMediaListCustom.cpp */; };
    301307                1477E7760BF4134A00152872 /* PageCache.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1477E7740BF4134A00152872 /* PageCache.cpp */; };
     
    49914997                B8DBDB4D130B0F8A00F5CDB1 /* SpellingCorrectionCommand.cpp in Sources */ = {isa = PBXBuildFile; fileRef = B8DBDB49130B0F8A00F5CDB1 /* SpellingCorrectionCommand.cpp */; };
    49924998                B8DBDB4E130B0F8A00F5CDB1 /* SpellingCorrectionCommand.h in Headers */ = {isa = PBXBuildFile; fileRef = B8DBDB4A130B0F8A00F5CDB1 /* SpellingCorrectionCommand.h */; };
    4993                 BAB22AD414B7A02D00D8ABA6 /* FractionalLayoutUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = BAB771501444CBB400EC4C4C /* FractionalLayoutUnit.h */; settings = {ATTRIBUTES = (Private, ); }; };
    49944999                BACF290113B2A0D500781F90 /* LayoutTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = BACF290013B2A0D500781F90 /* LayoutTypes.h */; settings = {ATTRIBUTES = (Private, ); }; };
    49955000                BC00F0040E0A185500FD04E3 /* DOMFile.h in Headers */ = {isa = PBXBuildFile; fileRef = BC00EFFE0E0A185500FD04E3 /* DOMFile.h */; };
     
    70177022                1449E24A107D4A8400B5793F /* JSCallbackData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSCallbackData.h; sourceTree = "<group>"; };
    70187023                1449E286107D4DB400B5793F /* JSCallbackData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSCallbackData.cpp; sourceTree = "<group>"; };
     7024                144FCE5114EC79BC000D17A3 /* FractionalLayoutUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FractionalLayoutUnit.h; sourceTree = "<group>"; };
     7025                144FCE5414EC79E7000D17A3 /* FractionalLayoutPoint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FractionalLayoutPoint.h; sourceTree = "<group>"; };
     7026                144FCE5514EC79E7000D17A3 /* FractionalLayoutRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FractionalLayoutRect.cpp; sourceTree = "<group>"; };
     7027                144FCE5614EC79E7000D17A3 /* FractionalLayoutRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FractionalLayoutRect.h; sourceTree = "<group>"; };
     7028                144FCE5714EC79E7000D17A3 /* FractionalLayoutSize.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FractionalLayoutSize.cpp; sourceTree = "<group>"; };
     7029                144FCE5814EC79E7000D17A3 /* FractionalLayoutSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FractionalLayoutSize.h; sourceTree = "<group>"; };
    70197030                1464E06B135EC10600FDB00A /* JSMediaListCustom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSMediaListCustom.cpp; sourceTree = "<group>"; };
    70207031                1477E7740BF4134A00152872 /* PageCache.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PageCache.cpp; sourceTree = "<group>"; };
     
    1190511916                B8DBDB49130B0F8A00F5CDB1 /* SpellingCorrectionCommand.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SpellingCorrectionCommand.cpp; sourceTree = "<group>"; };
    1190611917                B8DBDB4A130B0F8A00F5CDB1 /* SpellingCorrectionCommand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpellingCorrectionCommand.h; sourceTree = "<group>"; };
    11907                 BAB771501444CBB400EC4C4C /* FractionalLayoutUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FractionalLayoutUnit.h; sourceTree = "<group>"; };
    1190811918                BACF290013B2A0D500781F90 /* LayoutTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LayoutTypes.h; sourceTree = "<group>"; };
    1190911919                BC00EFFE0E0A185500FD04E3 /* DOMFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMFile.h; sourceTree = "<group>"; };
     
    1891418924                                3784C34A0E11AA34007D8D48 /* FontTraitsMask.h */,
    1891518925                                BCE4413512F7490B009B84B8 /* FontWidthVariant.h */,
     18926                                144FCE5414EC79E7000D17A3 /* FractionalLayoutPoint.h */,
     18927                                144FCE5514EC79E7000D17A3 /* FractionalLayoutRect.cpp */,
     18928                                144FCE5614EC79E7000D17A3 /* FractionalLayoutRect.h */,
     18929                                144FCE5714EC79E7000D17A3 /* FractionalLayoutSize.cpp */,
     18930                                144FCE5814EC79E7000D17A3 /* FractionalLayoutSize.h */,
    1891618931                                BC23F0DA0DAFF4A4009FDC91 /* GeneratedImage.h */,
    1891718932                                BCE04C890DAFF7A0007A0F41 /* Generator.h */,
     
    1978919804                                514B3F720C722047000530DF /* FileSystem.h */,
    1979019805                                BC073BA90C399B1F000F5979 /* FloatConversion.h */,
    19791                                 BAB771501444CBB400EC4C4C /* FractionalLayoutUnit.h */,
     19806                                144FCE5114EC79BC000D17A3 /* FractionalLayoutUnit.h */,
    1979219807                                A8748BDF12CBF2DC001FBA41 /* HashTools.h */,
    1979319808                                D6FDAEF2149C06190037B1E1 /* HistogramSupport.cpp */,
     
    2118521200                                9B417064125662B3006B28FC /* ApplyBlockElementCommand.h in Headers */,
    2118621201                                93309DD9099E64920056E581 /* ApplyStyleCommand.h in Headers */,
    21187                                 BAB22AD414B7A02D00D8ABA6 /* FractionalLayoutUnit.h in Headers */,
    2118821202                                512DD8F60D91E6AF000F89EE /* Archive.h in Headers */,
    2118921203                                512DD8FD0D91E6AF000F89EE /* ArchiveFactory.h in Headers */,
     
    2426424278                                C598905714E9C28000E8D18B /* PasteboardStrategy.h in Headers */,
    2426524279                                C598905814E9C29900E8D18B /* PlatformPasteboard.h in Headers */,
     24280                                144FCE5214EC79BC000D17A3 /* FractionalLayoutUnit.h in Headers */,
     24281                                144FCE5914EC79E7000D17A3 /* FractionalLayoutPoint.h in Headers */,
     24282                                144FCE5B14EC79E7000D17A3 /* FractionalLayoutRect.h in Headers */,
     24283                                144FCE5D14EC79E7000D17A3 /* FractionalLayoutSize.h in Headers */,
    2426624284                        );
    2426724285                        runOnlyForDeploymentPostprocessing = 0;
     
    2720727225                                97CC3AE214E8E4A200894988 /* NavigatorSupplement.cpp in Sources */,
    2720827226                                C598902E14E9B0F800E8D18B /* PlatformPasteboardMac.mm in Sources */,
     27227                                144FCE5A14EC79E7000D17A3 /* FractionalLayoutRect.cpp in Sources */,
     27228                                144FCE5C14EC79E7000D17A3 /* FractionalLayoutSize.cpp in Sources */,
    2720927229                        );
    2721027230                        runOnlyForDeploymentPostprocessing = 0;
  • trunk/Source/WebCore/platform/FractionalLayoutUnit.h

    r107453 r107887  
    116116    inline bool isInBounds(unsigned value)
    117117    {
    118         return value < std::numeric_limits<int>::max() / kFixedPointDenominator;
     118        return value < static_cast<unsigned>(std::numeric_limits<int>::max()) / kFixedPointDenominator;
    119119    }
    120120    inline bool isInBounds(double value)
     
    263263inline bool operator==(const FractionalLayoutUnit& a, int b)
    264264{
    265     return a == FractionLayoutUnit(b);
     265    return a == FractionalLayoutUnit(b);
    266266}
    267267
    268268inline bool operator==(const int a, const FractionalLayoutUnit& b)
    269269{
    270     return FractionLayoutUnit(a) == b;
     270    return FractionalLayoutUnit(a) == b;
    271271}
    272272
     
    298298    FractionalLayoutUnit returnVal;
    299299    long long rawVal = static_cast<long long>(a.rawValue()) * b.rawValue() / kFixedPointDenominator;
    300     returnVal.setRawValue((a.rawValue() / kFixedPointDenominator) * b.rawValue());
     300    returnVal.setRawValue(rawVal);
    301301    return returnVal;
    302302}   
  • trunk/Source/WebCore/platform/graphics/FloatPoint.cpp

    r84273 r107887  
    2929
    3030#include "AffineTransform.h"
    31 #include "TransformationMatrix.h"
     31#include "FractionalLayoutPoint.h"
    3232#include "FloatConversion.h"
    3333#include "IntPoint.h"
     34#include "TransformationMatrix.h"
    3435#include <limits>
    3536#include <math.h>
     
    3839
    3940FloatPoint::FloatPoint(const IntPoint& p) : m_x(p.x()), m_y(p.y())
     41{
     42}
     43
     44FloatPoint::FloatPoint(const FractionalLayoutPoint& p) : m_x(p.x()), m_y(p.y())
    4045{
    4146}
     
    5459{
    5560    return sqrtf(lengthSquared());
     61}
     62
     63void FloatPoint::move(const FractionalLayoutSize& size)
     64{
     65    m_x += size.width();
     66    m_y += size.height();
     67}
     68
     69void FloatPoint::moveBy(const FractionalLayoutPoint& point)
     70{
     71    m_x += point.x();
     72    m_y += point.y();
    5673}
    5774
  • trunk/Source/WebCore/platform/graphics/FloatPoint.h

    r95922 r107887  
    6161class IntPoint;
    6262class IntSize;
     63class FractionalLayoutPoint;
     64class FractionalLayoutSize;
    6365
    6466class FloatPoint {
     
    6769    FloatPoint(float x, float y) : m_x(x), m_y(y) { }
    6870    FloatPoint(const IntPoint&);
    69 
     71    FloatPoint(const FractionalLayoutPoint&);
    7072
    7173    static FloatPoint zero() { return FloatPoint(); }
     
    9395        m_y += a.height();
    9496    }
     97    void move(const FractionalLayoutSize&);
    9598    void move(const FloatSize& a)
    9699    {
     
    103106        m_y += a.y();
    104107    }
     108    void moveBy(const FractionalLayoutPoint&);
    105109    void moveBy(const FloatPoint& a)
    106110    {
     
    130134    {
    131135        return FloatPoint(std::max(m_x, other.m_x), std::max(m_y, other.m_y));
     136    }
     137
     138    FloatPoint shrunkTo(const FloatPoint& other) const
     139    {
     140        return FloatPoint(m_x < other.m_x ? m_x : other.m_x,
     141            m_y < other.m_y ? m_y : other.m_y);
     142    }
     143
     144    void clampNegativeToZero()
     145    {
     146        *this = expandedTo(zero());
    132147    }
    133148
     
    240255}
    241256
     257inline FloatPoint toPoint(const FloatSize& size)
     258{
     259    return FloatPoint(size.width(), size.height());
     260}
     261
    242262float findSlope(const FloatPoint& p1, const FloatPoint& p2, float& c);
    243263
  • trunk/Source/WebCore/platform/graphics/FloatRect.cpp

    r106383 r107887  
    2929
    3030#include "FloatConversion.h"
     31#include "FractionalLayoutRect.h"
    3132#include "IntRect.h"
    3233#include <algorithm>
     
    4041
    4142FloatRect::FloatRect(const IntRect& r) : m_location(r.location()), m_size(r.size())
     43{
     44}
     45
     46FloatRect::FloatRect(const FractionalLayoutRect& r) : m_location(r.location()), m_size(r.size())
    4247{
    4348}
  • trunk/Source/WebCore/platform/graphics/FloatRect.h

    r106383 r107887  
    6767#endif
    6868
     69class FractionalLayoutRect;
    6970class IntRect;
    7071class IntPoint;
     
    8384        : m_location(FloatPoint(x, y)), m_size(FloatSize(width, height)) { }
    8485    FloatRect(const IntRect&);
     86    FloatRect(const FractionalLayoutRect&);
    8587
    8688    static FloatRect narrowPrecision(double x, double y, double width, double height);
  • trunk/Source/WebCore/platform/graphics/FloatSize.cpp

    r94457 r107887  
    2828#include "FloatSize.h"
    2929
     30#include "FractionalLayoutSize.h"
    3031#include "FloatConversion.h"
    3132#include "IntSize.h"
     
    3839
    3940FloatSize::FloatSize(const IntSize& size) : m_width(size.width()), m_height(size.height())
     41{
     42}
     43
     44FloatSize::FloatSize(const FractionalLayoutSize& size) : m_width(size.width()), m_height(size.height())
    4045{
    4146}
  • trunk/Source/WebCore/platform/graphics/FloatSize.h

    r94457 r107887  
    4747
    4848class IntSize;
     49class FractionalLayoutSize;
    4950
    5051class FloatSize {
     
    5354    FloatSize(float width, float height) : m_width(width), m_height(height) { }
    5455    FloatSize(const IntSize&);
     56    FloatSize(const FractionalLayoutSize&);
    5557
    5658    static FloatSize narrowPrecision(double width, double height);
  • trunk/Source/WebCore/platform/graphics/IntRect.cpp

    r83075 r107887  
    2727#include "IntRect.h"
    2828
     29#include "FractionalLayoutRect.h"
    2930#include "FloatRect.h"
    3031#include <algorithm>
     
    3839    : m_location(IntPoint(static_cast<int>(r.x()), static_cast<int>(r.y())))
    3940    , m_size(IntSize(static_cast<int>(r.width()), static_cast<int>(r.height())))
     41{
     42}
     43
     44IntRect::IntRect(const FractionalLayoutRect& r)
     45    : m_location(flooredIntPoint(r.location()))
     46    , m_size(flooredIntSize(r.size()))
    4047{
    4148}
  • trunk/Source/WebCore/platform/graphics/IntRect.h

    r95922 r107887  
    7272
    7373class FloatRect;
     74class FractionalLayoutRect;
    7475
    7576class IntRect {
     
    8182        : m_location(IntPoint(x, y)), m_size(IntSize(width, height)) { }
    8283
    83     explicit IntRect(const FloatRect& rect); // don't do this implicitly since it's lossy
     84    explicit IntRect(const FloatRect&); // don't do this implicitly since it's lossy
     85    explicit IntRect(const FractionalLayoutRect&); // don't do this implicitly since it's lossy
    8486       
    8587    IntPoint location() const { return m_location; }
Note: See TracChangeset for help on using the changeset viewer.