Index: sky/engine/core/view/View.cpp |
diff --git a/sky/engine/core/view/View.cpp b/sky/engine/core/view/View.cpp |
index b8851397954ab71daa5b369bf4138150d534ffb9..cc1a152f93faefa1ca6c3ad9d55bf132726a78f2 100644 |
--- a/sky/engine/core/view/View.cpp |
+++ b/sky/engine/core/view/View.cpp |
@@ -7,13 +7,13 @@ |
namespace blink { |
-PassRefPtr<View> View::create(const base::Closure& schedulePaintCallback) |
+PassRefPtr<View> View::create(const base::Closure& scheduleFrameCallback) |
{ |
- return adoptRef(new View(schedulePaintCallback)); |
+ return adoptRef(new View(scheduleFrameCallback)); |
} |
-View::View(const base::Closure& schedulePaintCallback) |
- : m_schedulePaintCallback(schedulePaintCallback) |
+View::View(const base::Closure& scheduleFrameCallback) |
+ : m_scheduleFrameCallback(scheduleFrameCallback) |
{ |
} |
@@ -33,14 +33,19 @@ double View::height() const |
return h / m_displayMetrics.device_pixel_ratio; |
} |
-void View::schedulePaint() |
+void View::setEventCallback(PassOwnPtr<EventCallback> callback) |
{ |
- m_schedulePaintCallback.Run(); |
+ m_eventCallback = callback; |
} |
-void View::setEventCallback(PassOwnPtr<EventCallback> callback) |
+void View::setBeginFrameCallback(PassOwnPtr<BeginFrameCallback> callback) |
{ |
- m_eventCallback = callback; |
+ m_beginFrameCallback = callback; |
+} |
+ |
+void View::scheduleFrame() |
+{ |
+ m_scheduleFrameCallback.Run(); |
} |
void View::setDisplayMetrics(const SkyDisplayMetrics& metrics) |
@@ -53,4 +58,12 @@ bool View::handleInputEvent(PassRefPtr<Event> event) |
return m_eventCallback && m_eventCallback->handleEvent(event.get()); |
} |
+void View::beginFrame(base::TimeTicks frameTime) |
+{ |
+ if (!m_beginFrameCallback) |
+ return; |
+ double frameTimeMS = (frameTime - base::TimeTicks()).InMillisecondsF(); |
+ m_beginFrameCallback->handleEvent(frameTimeMS); |
+} |
+ |
} // namespace blink |