Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(157)

Side by Side Diff: sky/sdk/lib/rendering/object.dart

Issue 1190123003: Decouple Canvas from DisplayList and map Picture and PictureRecorder more directly to their Skia co… (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Rebased version of previous patch Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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:math' as math; 5 import 'dart:math' as math;
6 import 'dart:sky' as sky; 6 import 'dart:sky' as sky;
7 import 'dart:sky' show Point, Size, Rect, Color, Paint, Path; 7 import 'dart:sky' show Point, Size, Rect, Color, Paint, Path;
8 8
9 import '../base/hit_test.dart'; 9 import '../base/hit_test.dart';
10 import '../base/node.dart'; 10 import '../base/node.dart';
11 import '../base/scheduler.dart' as scheduler; 11 import '../base/scheduler.dart' as scheduler;
12 12
13 export 'dart:sky' show Point, Size, Rect, Color, Paint, Path; 13 export 'dart:sky' show Point, Size, Rect, Color, Paint, Path;
14 export '../base/hit_test.dart' show HitTestTarget, HitTestEntry, HitTestResult; 14 export '../base/hit_test.dart' show HitTestTarget, HitTestEntry, HitTestResult;
15 15
16 16
17 class ParentData { 17 class ParentData {
18 void detach() { 18 void detach() {
19 detachSiblings(); 19 detachSiblings();
20 } 20 }
21 void detachSiblings() { } // workaround for lack of inter-class mixins in Dart 21 void detachSiblings() { } // workaround for lack of inter-class mixins in Dart
22 void merge(ParentData other) { 22 void merge(ParentData other) {
23 // override this in subclasses to merge in data from other into this 23 // override this in subclasses to merge in data from other into this
24 assert(other.runtimeType == this.runtimeType); 24 assert(other.runtimeType == this.runtimeType);
25 } 25 }
26 String toString() => '<none>'; 26 String toString() => '<none>';
27 } 27 }
28 28
29 const kLayoutDirections = 4; 29 class RenderCanvas extends sky.Canvas {
30 RenderCanvas(sky.PictureRecorder recorder, double width, double height) : supe r(recorder, width, height);
30 31
31 class RenderObjectDisplayList extends sky.PictureRecorder {
32 RenderObjectDisplayList(double width, double height) : super(width, height);
33 void paintChild(RenderObject child, Point position) { 32 void paintChild(RenderObject child, Point position) {
34 translate(position.x, position.y); 33 translate(position.x, position.y);
35 child.paint(this); 34 child.paint(this);
36 translate(-position.x, -position.y); 35 translate(-position.x, -position.y);
37 } 36 }
38 } 37 }
39 38
40 abstract class Constraints { 39 abstract class Constraints {
41 const Constraints(); 40 const Constraints();
42 bool get isTight; 41 bool get isTight;
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 }) { } 211 }) { }
213 212
214 213
215 // PAINTING 214 // PAINTING
216 215
217 static bool debugDoingPaint = false; 216 static bool debugDoingPaint = false;
218 void markNeedsPaint() { 217 void markNeedsPaint() {
219 assert(!debugDoingPaint); 218 assert(!debugDoingPaint);
220 scheduler.ensureVisualUpdate(); 219 scheduler.ensureVisualUpdate();
221 } 220 }
222 void paint(RenderObjectDisplayList canvas) { } 221 void paint(RenderCanvas canvas) { }
223 222
224 223
225 // EVENTS 224 // EVENTS
226 225
227 void handleEvent(sky.Event event, HitTestEntry entry) { 226 void handleEvent(sky.Event event, HitTestEntry entry) {
228 // override this if you have a client, to hand it to the client 227 // override this if you have a client, to hand it to the client
229 // override this if you want to do anything with the event 228 // override this if you want to do anything with the event
230 } 229 }
231 230
232 231
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 int count = 1; 489 int count = 1;
491 ChildType child = _firstChild; 490 ChildType child = _firstChild;
492 while (child != null) { 491 while (child != null) {
493 result += '${prefix}child ${count}: ${child.toString(prefix)}'; 492 result += '${prefix}child ${count}: ${child.toString(prefix)}';
494 count += 1; 493 count += 1;
495 child = child.parentData.nextSibling; 494 child = child.parentData.nextSibling;
496 } 495 }
497 return result; 496 return result;
498 } 497 }
499 } 498 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698