OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "sky/engine/config.h" | 5 #include "sky/engine/config.h" |
6 #include "sky/engine/core/view/View.h" | 6 #include "sky/engine/core/view/View.h" |
7 | 7 |
8 namespace blink { | 8 namespace blink { |
9 | 9 |
10 PassRefPtr<View> View::create(const base::Closure& schedulePaintCallback) | 10 PassRefPtr<View> View::create(const base::Closure& scheduleFrameCallback) |
11 { | 11 { |
12 return adoptRef(new View(schedulePaintCallback)); | 12 return adoptRef(new View(scheduleFrameCallback)); |
13 } | 13 } |
14 | 14 |
15 View::View(const base::Closure& schedulePaintCallback) | 15 View::View(const base::Closure& scheduleFrameCallback) |
16 : m_schedulePaintCallback(schedulePaintCallback) | 16 : m_scheduleFrameCallback(scheduleFrameCallback) |
17 { | 17 { |
18 } | 18 } |
19 | 19 |
20 View::~View() | 20 View::~View() |
21 { | 21 { |
22 } | 22 } |
23 | 23 |
24 double View::width() const | 24 double View::width() const |
25 { | 25 { |
26 double w = m_displayMetrics.physical_size.width; | 26 double w = m_displayMetrics.physical_size.width; |
27 return w / m_displayMetrics.device_pixel_ratio; | 27 return w / m_displayMetrics.device_pixel_ratio; |
28 } | 28 } |
29 | 29 |
30 double View::height() const | 30 double View::height() const |
31 { | 31 { |
32 double h = m_displayMetrics.physical_size.height; | 32 double h = m_displayMetrics.physical_size.height; |
33 return h / m_displayMetrics.device_pixel_ratio; | 33 return h / m_displayMetrics.device_pixel_ratio; |
34 } | 34 } |
35 | 35 |
36 void View::schedulePaint() | |
37 { | |
38 m_schedulePaintCallback.Run(); | |
39 } | |
40 | |
41 void View::setEventCallback(PassOwnPtr<EventCallback> callback) | 36 void View::setEventCallback(PassOwnPtr<EventCallback> callback) |
42 { | 37 { |
43 m_eventCallback = callback; | 38 m_eventCallback = callback; |
44 } | 39 } |
45 | 40 |
| 41 void View::setBeginFrameCallback(PassOwnPtr<BeginFrameCallback> callback) |
| 42 { |
| 43 m_beginFrameCallback = callback; |
| 44 } |
| 45 |
| 46 void View::scheduleFrame() |
| 47 { |
| 48 m_scheduleFrameCallback.Run(); |
| 49 } |
| 50 |
46 void View::setDisplayMetrics(const SkyDisplayMetrics& metrics) | 51 void View::setDisplayMetrics(const SkyDisplayMetrics& metrics) |
47 { | 52 { |
48 m_displayMetrics = metrics; | 53 m_displayMetrics = metrics; |
49 } | 54 } |
50 | 55 |
51 bool View::handleInputEvent(PassRefPtr<Event> event) | 56 bool View::handleInputEvent(PassRefPtr<Event> event) |
52 { | 57 { |
53 return m_eventCallback && m_eventCallback->handleEvent(event.get()); | 58 return m_eventCallback && m_eventCallback->handleEvent(event.get()); |
54 } | 59 } |
55 | 60 |
| 61 void View::beginFrame(base::TimeTicks frameTime) |
| 62 { |
| 63 if (!m_beginFrameCallback) |
| 64 return; |
| 65 double frameTimeMS = (frameTime - base::TimeTicks()).InMillisecondsF(); |
| 66 m_beginFrameCallback->handleEvent(frameTimeMS); |
| 67 } |
| 68 |
56 } // namespace blink | 69 } // namespace blink |
OLD | NEW |