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

Side by Side Diff: sky/examples/rendering/touch_demo.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'; 5 import 'dart:math';
6 import 'dart:sky'; 6 import 'dart:sky';
7 7
8 import 'package:sky/rendering/box.dart'; 8 import 'package:sky/rendering/box.dart';
9 import 'package:sky/rendering/object.dart'; 9 import 'package:sky/rendering/object.dart';
10 import 'package:sky/rendering/paragraph.dart'; 10 import 'package:sky/rendering/paragraph.dart';
(...skipping 18 matching lines...) Expand all
29 double radius = 0.0; 29 double radius = 0.0;
30 30
31 Dot({ Color color }) : _paint = new Paint()..color = color; 31 Dot({ Color color }) : _paint = new Paint()..color = color;
32 32
33 void update(PointerEvent event) { 33 void update(PointerEvent event) {
34 x = event.x; 34 x = event.x;
35 y = event.y; 35 y = event.y;
36 radius = 5 + (95 * event.pressure); 36 radius = 5 + (95 * event.pressure);
37 } 37 }
38 38
39 void paint(RenderObjectDisplayList canvas) { 39 void paint(RenderCanvas canvas) {
40 canvas.drawCircle(x, y, radius, _paint); 40 canvas.drawCircle(x, y, radius, _paint);
41 } 41 }
42 } 42 }
43 43
44 class RenderTouchDemo extends RenderBox { 44 class RenderTouchDemo extends RenderBox {
45 Map<int, Dot> dots = new Map(); 45 Map<int, Dot> dots = new Map();
46 46
47 RenderTouchDemo(); 47 RenderTouchDemo();
48 48
49 void handleEvent(Event event, BoxHitTestEntry entry) { 49 void handleEvent(Event event, BoxHitTestEntry entry) {
(...skipping 12 matching lines...) Expand all
62 dots[event.pointer].update(event); 62 dots[event.pointer].update(event);
63 break; 63 break;
64 } 64 }
65 markNeedsPaint(); 65 markNeedsPaint();
66 } 66 }
67 67
68 void performLayout() { 68 void performLayout() {
69 size = constraints.constrain(Size.infinite); 69 size = constraints.constrain(Size.infinite);
70 } 70 }
71 71
72 void paint(RenderObjectDisplayList canvas) { 72 void paint(RenderCanvas canvas) {
73 Paint white = new Paint()..color = const Color(0xFFFFFFFF); 73 Paint white = new Paint()..color = const Color(0xFFFFFFFF);
74 canvas.drawRect(new Rect.fromSize(size), white); 74 canvas.drawRect(new Rect.fromSize(size), white);
75 for (Dot dot in dots.values) 75 for (Dot dot in dots.values)
76 dot.paint(canvas); 76 dot.paint(canvas);
77 } 77 }
78 } 78 }
79 79
80 void main() { 80 void main() {
81 var paragraph = new RenderParagraph(new InlineText("Touch me!")); 81 var paragraph = new RenderParagraph(new InlineText("Touch me!"));
82 var stack = new RenderStack(children: [ 82 var stack = new RenderStack(children: [
83 new RenderTouchDemo(), 83 new RenderTouchDemo(),
84 paragraph, 84 paragraph,
85 ]); 85 ]);
86 // Prevent the RenderParagraph from filling the whole screen so 86 // Prevent the RenderParagraph from filling the whole screen so
87 // that it doesn't eat events. 87 // that it doesn't eat events.
88 paragraph.parentData..top = 40.0 88 paragraph.parentData..top = 40.0
89 ..left = 20.0; 89 ..left = 20.0;
90 new SkyBinding(root: stack); 90 new SkyBinding(root: stack);
91 } 91 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698