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 import 'dart:sky' as sky; | 5 import 'dart:sky' as sky; |
6 import 'rendering/box.dart'; | 6 import 'rendering/box.dart'; |
7 import 'rendering/object.dart'; | 7 import 'rendering/object.dart'; |
8 import 'scheduler.dart' as scheduler; | 8 import 'scheduler.dart' as scheduler; |
9 | 9 |
10 class PointerState { | 10 class PointerState { |
(...skipping 15 matching lines...) Expand all Loading... |
26 _renderView.layout(new ViewConstraints(width: sky.view.width, | 26 _renderView.layout(new ViewConstraints(width: sky.view.width, |
27 height: sky.view.height)); | 27 height: sky.view.height)); |
28 | 28 |
29 scheduler.ensureVisualUpdate(); | 29 scheduler.ensureVisualUpdate(); |
30 } | 30 } |
31 | 31 |
32 RenderView _renderView; | 32 RenderView _renderView; |
33 | 33 |
34 Map<int, PointerState> _stateForPointer = new Map<int, PointerState>(); | 34 Map<int, PointerState> _stateForPointer = new Map<int, PointerState>(); |
35 | 35 |
| 36 Function onFrame; |
| 37 |
36 RenderBox get root => _renderView.child; | 38 RenderBox get root => _renderView.child; |
37 void set root(RenderBox value) { | 39 void set root(RenderBox value) { |
38 _renderView.child = value; | 40 _renderView.child = value; |
39 } | 41 } |
40 void _beginFrame(double timeStamp) { | 42 void _beginFrame(double timeStamp) { |
| 43 if (onFrame != null) |
| 44 onFrame(); |
41 RenderObject.flushLayout(); | 45 RenderObject.flushLayout(); |
42 _renderView.paintFrame(); | 46 _renderView.paintFrame(); |
43 } | 47 } |
44 | 48 |
45 void _handleEvent(sky.Event event) { | 49 void _handleEvent(sky.Event event) { |
46 if (event is sky.PointerEvent) { | 50 if (event is sky.PointerEvent) { |
47 _handlePointerEvent(event); | 51 _handlePointerEvent(event); |
48 } else if (event is sky.GestureEvent) { | 52 } else if (event is sky.GestureEvent) { |
49 HitTestResult result = new HitTestResult(); | 53 HitTestResult result = new HitTestResult(); |
50 _renderView.hitTest(result, position: new sky.Point(event.x, event.y)); | 54 _renderView.hitTest(result, position: new sky.Point(event.x, event.y)); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 state.lastPosition = position; | 89 state.lastPosition = position; |
86 | 90 |
87 dispatchEvent(event, state.result); | 91 dispatchEvent(event, state.result); |
88 } | 92 } |
89 | 93 |
90 void dispatchEvent(sky.Event event, HitTestResult result) { | 94 void dispatchEvent(sky.Event event, HitTestResult result) { |
91 assert(result != null); | 95 assert(result != null); |
92 for (RenderObject node in result.path.reversed) | 96 for (RenderObject node in result.path.reversed) |
93 node.handleEvent(event); | 97 node.handleEvent(event); |
94 } | 98 } |
| 99 |
| 100 String toString() => 'Render Tree:\n${_renderView}'; |
| 101 |
| 102 void debugDumpRenderTree() { |
| 103 toString().split('\n').forEach(print); |
| 104 } |
| 105 |
95 } | 106 } |
OLD | NEW |