Changeset 80266 in webkit


Ignore:
Timestamp:
Mar 3, 2011 11:33:09 AM (13 years ago)
Author:
cmarrin@apple.com
Message:

2011-03-02 Chris Marrin <cmarrin@apple.com>

Reviewed by Simon Fraser.

REGRESSION: Accelerated transitions are jumpy
https://bugs.webkit.org/show_bug.cgi?id=55022

Got rid of default TimingFunction values from PlatformCAAnimation*. A TimingFunction
is now always passed in. The TimingFunction class now has a static method to get
a default object which has the 'ease' values in it. I now assert in both Mac and
Win implementations if a null TimingFunction pointer is seen.

  • platform/animation/TimingFunction.h: (WebCore::CubicBezierTimingFunction::create): (WebCore::CubicBezierTimingFunction::defaultTimingFunction): (WebCore::CubicBezierTimingFunction::CubicBezierTimingFunction):
  • platform/graphics/ca/GraphicsLayerCA.cpp: (WebCore::GraphicsLayerCA::timingFunctionForAnimationValue):
  • platform/graphics/ca/mac/PlatformCAAnimationMac.mm: (toCAMediaTimingFunction):
  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp: (toCACFTimingFunction):
Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r80265 r80266  
     12011-03-02  Chris Marrin  <cmarrin@apple.com>
     2
     3        Reviewed by Simon Fraser.
     4
     5        REGRESSION: Accelerated transitions are jumpy
     6        https://bugs.webkit.org/show_bug.cgi?id=55022
     7
     8        Got rid of default TimingFunction values from PlatformCAAnimation*. A TimingFunction
     9        is now always passed in. The TimingFunction class now has a static method to get
     10        a default object which has the 'ease' values in it. I now assert in both Mac and
     11        Win implementations if a null TimingFunction pointer is seen.
     12
     13        * platform/animation/TimingFunction.h:
     14        (WebCore::CubicBezierTimingFunction::create):
     15        (WebCore::CubicBezierTimingFunction::defaultTimingFunction):
     16        (WebCore::CubicBezierTimingFunction::CubicBezierTimingFunction):
     17        * platform/graphics/ca/GraphicsLayerCA.cpp:
     18        (WebCore::GraphicsLayerCA::timingFunctionForAnimationValue):
     19        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
     20        (toCAMediaTimingFunction):
     21        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
     22        (toCACFTimingFunction):
     23
    1242011-03-03  Tony Gentilcore  <tonyg@chromium.org>
    225
  • trunk/Source/WebCore/platform/animation/TimingFunction.h

    r67032 r80266  
    7777class CubicBezierTimingFunction : public TimingFunction {
    7878public:
    79     static PassRefPtr<CubicBezierTimingFunction> create(double x1 = 0.25, double y1 = 0.1, double x2 = 0.25, double y2 = 1.0)
     79    static PassRefPtr<CubicBezierTimingFunction> create(double x1, double y1, double x2, double y2)
    8080    {
    8181        return adoptRef(new CubicBezierTimingFunction(x1, y1, x2, y2));
     82    }
     83
     84    static PassRefPtr<CubicBezierTimingFunction> create()
     85    {
     86        return adoptRef(new CubicBezierTimingFunction());
    8287    }
    8388
     
    98103    double y2() const { return m_y2; }
    99104   
     105    static const CubicBezierTimingFunction* defaultTimingFunction()
     106    {
     107        DEFINE_STATIC_LOCAL(const CubicBezierTimingFunction, dtf, ());
     108        return &dtf;
     109    }
     110   
    100111private:
    101     CubicBezierTimingFunction(double x1, double y1, double x2, double y2)
     112    CubicBezierTimingFunction(double x1 = 0.25, double y1 = 0.1, double x2 = 0.25, double y2 = 1.0)
    102113        : TimingFunction(CubicBezierFunction)
    103114        , m_x1(x1)
  • trunk/Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp

    r80260 r80266  
    16821682    if (anim->isTimingFunctionSet())
    16831683        return anim->timingFunction().get();
    1684        
    1685     return 0;
     1684   
     1685    return CubicBezierTimingFunction::defaultTimingFunction();
    16861686}
    16871687
  • trunk/Source/WebCore/platform/graphics/ca/mac/PlatformCAAnimationMac.mm

    r79568 r80266  
    136136static CAMediaTimingFunction* toCAMediaTimingFunction(const TimingFunction* timingFunction)
    137137{
    138     if (!timingFunction)
    139         return [CAMediaTimingFunction functionWithControlPoints:0.25f :0.1f :0.25f :1]; // Default is 'ease' function.
    140            
     138    ASSERT(timingFunction);
    141139    if (timingFunction->isCubicBezierTimingFunction()) {
    142140        const CubicBezierTimingFunction* ctf = static_cast<const CubicBezierTimingFunction*>(timingFunction);
  • trunk/Source/WebCore/platform/graphics/ca/win/PlatformCAAnimationWin.cpp

    r78051 r80266  
    125125static RetainPtr<CACFTimingFunctionRef> toCACFTimingFunction(const TimingFunction* timingFunction)
    126126{
    127     if (!timingFunction)
    128         return RetainPtr<CACFTimingFunctionRef>(AdoptCF, CACFTimingFunctionCreate(0.25f, 0.1f, 0.25f, 0.1f));
    129            
     127    ASSERT(timingFunction);
    130128    if (timingFunction->isCubicBezierTimingFunction()) {
    131129        const CubicBezierTimingFunction* ctf = static_cast<const CubicBezierTimingFunction*>(timingFunction);
Note: See TracChangeset for help on using the changeset viewer.