⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 199048 in webkit


Ignore:
Timestamp:
Apr 4, 2016, 11:15:43 PM (11 years ago)
Author:
zandobersek@gmail.com
Message:

[ThreadedCompositor] Move CompositingRunLoop class into a separate file
​https://bugs.webkit.org/show_bug.cgi?id=156170

Reviewed by Michael Catanzaro.

Move the CompositingRunLoop class from the ThreadedCompositor.cpp file
into its own implementation file, with the class declaration placed
into the accompanying header file. This follows the general rule of
keeping different class implementations in separate files.

No change in behavior, just refactoring.

  • PlatformGTK.cmake:
  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: Added.

(WebKit::CompositingRunLoop::CompositingRunLoop):
(WebKit::CompositingRunLoop::callOnCompositingRunLoop):
(WebKit::CompositingRunLoop::setUpdateTimer):
(WebKit::CompositingRunLoop::stopUpdateTimer):
(WebKit::CompositingRunLoop::updateTimerFired):

  • Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h: Added.

(WebKit::CompositingRunLoop::runLoop):

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:

(WebKit::CompositingRunLoop::CompositingRunLoop): Deleted.
(WebKit::CompositingRunLoop::callOnCompositingRunLoop): Deleted.
(WebKit::CompositingRunLoop::setUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::stopUpdateTimer): Deleted.
(WebKit::CompositingRunLoop::runLoop): Deleted.
(WebKit::CompositingRunLoop::updateTimerFired): Deleted.

  • Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
Location:
trunk/Source/WebKit2
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r199043 r199048  
     12016-04-04  Zan Dobersek  <zdobersek@igalia.com>
     2
     3        [ThreadedCompositor] Move CompositingRunLoop class into a separate file
     4        https://bugs.webkit.org/show_bug.cgi?id=156170
     5
     6        Reviewed by Michael Catanzaro.
     7
     8        Move the CompositingRunLoop class from the ThreadedCompositor.cpp file
     9        into its own implementation file, with the class declaration placed
     10        into the accompanying header file. This follows the general rule of
     11        keeping different class implementations in separate files.
     12
     13        No change in behavior, just refactoring.
     14
     15        * PlatformGTK.cmake:
     16        * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp: Added.
     17        (WebKit::CompositingRunLoop::CompositingRunLoop):
     18        (WebKit::CompositingRunLoop::callOnCompositingRunLoop):
     19        (WebKit::CompositingRunLoop::setUpdateTimer):
     20        (WebKit::CompositingRunLoop::stopUpdateTimer):
     21        (WebKit::CompositingRunLoop::updateTimerFired):
     22        * Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h: Added.
     23        (WebKit::CompositingRunLoop::runLoop):
     24        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp:
     25        (WebKit::CompositingRunLoop::CompositingRunLoop): Deleted.
     26        (WebKit::CompositingRunLoop::callOnCompositingRunLoop): Deleted.
     27        (WebKit::CompositingRunLoop::setUpdateTimer): Deleted.
     28        (WebKit::CompositingRunLoop::stopUpdateTimer): Deleted.
     29        (WebKit::CompositingRunLoop::runLoop): Deleted.
     30        (WebKit::CompositingRunLoop::updateTimerFired): Deleted.
     31        * Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:
     32
    1332016-04-04  Brady Eidson  <beidson@apple.com>
    234
  • trunk/Source/WebKit2/PlatformGTK.cmake

    r199006 r199048  
    848848        Shared/CoordinatedGraphics/SimpleViewportController.cpp
    849849
     850        Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp
    850851        Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp
    851852        Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
  • trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp

    r198525 r199048  
    2525
    2626#include "config.h"
     27#include "ThreadedCompositor.h"
    2728
    2829#if USE(COORDINATED_GRAPHICS_THREADED)
    29 #include "ThreadedCompositor.h"
    30 
     30
     31#include "CompositingRunLoop.h"
    3132#include <WebCore/TransformationMatrix.h>
    32 #include <wtf/CurrentTime.h>
    3333#include <wtf/RunLoop.h>
    3434#include <wtf/StdLibExtras.h>
    … …  
    4343
    4444namespace WebKit {
    45 
    46 class CompositingRunLoop {
    47     WTF_MAKE_NONCOPYABLE(CompositingRunLoop);
    48     WTF_MAKE_FAST_ALLOCATED;
    49 public:
    50     enum UpdateTiming {
    51         Immediate,
    52         WaitUntilNextFrame,
    53     };
    54 
    55     CompositingRunLoop(std::function<void()>&& updateFunction)
    56         : m_runLoop(RunLoop::current())
    57         , m_updateTimer(m_runLoop, this, &CompositingRunLoop::updateTimerFired)
    58         , m_updateFunction(WTFMove(updateFunction))
    59         , m_lastUpdateTime(0)
    60     {
    61     }
    62 
    63     void callOnCompositingRunLoop(std::function<void()>&& function)
    64     {
    65         if (&m_runLoop == &RunLoop::current()) {
    66             function();
    67             return;
    68         }
    69 
    70         m_runLoop.dispatch(WTFMove(function));
    71     }
    72 
    73     void setUpdateTimer(UpdateTiming timing = Immediate)
    74     {
    75         if (m_updateTimer.isActive())
    76             return;
    77 
    78         const static double targetFPS = 60;
    79         double nextUpdateTime = 0;
    80         if (timing == WaitUntilNextFrame)
    81             nextUpdateTime = std::max((1 / targetFPS) - (monotonicallyIncreasingTime() - m_lastUpdateTime), 0.0);
    82 
    83         m_updateTimer.startOneShot(nextUpdateTime);
    84     }
    85 
    86     void stopUpdateTimer()
    87     {
    88         if (m_updateTimer.isActive())
    89             m_updateTimer.stop();
    90     }
    91 
    92     RunLoop& runLoop()
    93     {
    94         return m_runLoop;
    95     }
    96 
    97 private:
    98 
    99     void updateTimerFired()
    100     {
    101         m_updateFunction();
    102         m_lastUpdateTime = monotonicallyIncreasingTime();
    103     }
    104 
    105     RunLoop& m_runLoop;
    106     RunLoop::Timer<CompositingRunLoop> m_updateTimer;
    107     std::function<void()> m_updateFunction;
    108 
    109     double m_lastUpdateTime;
    110 };
    11145
    11246Ref<ThreadedCompositor> ThreadedCompositor::create(Client* client)
  • trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h

    r198525 r199048  
    4545
    4646namespace WebKit {
     47
     48class CompositingRunLoop;
    4749class CoordinatedGraphicsScene;
    4850class CoordinatedGraphicsSceneClient;
    49 
    50 class CompositingRunLoop;
    5151
    5252class ThreadedCompositor : public SimpleViewportController::Client, public CoordinatedGraphicsSceneClient, public ThreadSafeRefCounted<ThreadedCompositor> {
Note: See TracChangeset for help on using the changeset viewer.