Changeset 199048 in webkit
- Timestamp:
- Apr 4, 2016, 11:15:43 PM (11 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 2 added
- 4 edited
-
ChangeLog (modified) (1 diff)
-
PlatformGTK.cmake (modified) (1 diff)
-
Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp (added)
-
Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.h (added)
-
Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp (modified) (2 diffs)
-
Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r199043 r199048 1 2016-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 1 33 2016-04-04 Brady Eidson <beidson@apple.com> 2 34 -
trunk/Source/WebKit2/PlatformGTK.cmake
r199006 r199048 848 848 Shared/CoordinatedGraphics/SimpleViewportController.cpp 849 849 850 Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp 850 851 Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp 851 852 Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp -
trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.cpp
r198525 r199048 25 25 26 26 #include "config.h" 27 #include "ThreadedCompositor.h" 27 28 28 29 #if USE(COORDINATED_GRAPHICS_THREADED) 29 #include "ThreadedCompositor.h" 30 30 31 #include "CompositingRunLoop.h" 31 32 #include <WebCore/TransformationMatrix.h> 32 #include <wtf/CurrentTime.h>33 33 #include <wtf/RunLoop.h> 34 34 #include <wtf/StdLibExtras.h> … … 43 43 44 44 namespace 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 };111 45 112 46 Ref<ThreadedCompositor> ThreadedCompositor::create(Client* client) -
trunk/Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h
r198525 r199048 45 45 46 46 namespace WebKit { 47 48 class CompositingRunLoop; 47 49 class CoordinatedGraphicsScene; 48 50 class CoordinatedGraphicsSceneClient; 49 50 class CompositingRunLoop;51 51 52 52 class ThreadedCompositor : public SimpleViewportController::Client, public CoordinatedGraphicsSceneClient, public ThreadSafeRefCounted<ThreadedCompositor> {
Note:
See TracChangeset
for help on using the changeset viewer.