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

Side by Side Diff: sky/sdk/lib/example/widgets/spinning_mixed.dart

Issue 1209413004: Instead of applying a transform for every RenderObject, pass down an Offset for where to paint. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: 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:sky' as sky; 5 import 'dart:sky' as sky;
6 6
7 import 'package:sky/base/scheduler.dart'; 7 import 'package:sky/base/scheduler.dart';
8 import 'package:sky/rendering/box.dart'; 8 import 'package:sky/rendering/box.dart';
9 import 'package:sky/rendering/flex.dart'; 9 import 'package:sky/rendering/flex.dart';
10 import 'package:sky/rendering/sky_binding.dart'; 10 import 'package:sky/rendering/sky_binding.dart';
11 import 'package:sky/widgets/basic.dart'; 11 import 'package:sky/widgets/basic.dart';
12 import 'package:sky/widgets/raised_button.dart'; 12 import 'package:sky/widgets/raised_button.dart';
13 import 'package:sky/widgets/widget.dart'; 13 import 'package:sky/widgets/widget.dart';
14 import 'package:vector_math/vector_math.dart'; 14 import 'package:vector_math/vector_math.dart';
15 15
16 import '../lib/solid_color_box.dart'; 16 import '../lib/solid_color_box.dart';
17 import '../../tests/resources/display_list.dart';
18 17
19 // Solid colour, RenderObject version 18 // Solid colour, RenderObject version
20 void addFlexChildSolidColor(RenderFlex parent, sky.Color backgroundColor, { int flex: 0 }) { 19 void addFlexChildSolidColor(RenderFlex parent, sky.Color backgroundColor, { int flex: 0 }) {
21 RenderSolidColorBox child = new RenderSolidColorBox(backgroundColor); 20 RenderSolidColorBox child = new RenderSolidColorBox(backgroundColor);
22 parent.add(child); 21 parent.add(child);
23 child.parentData.flex = flex; 22 child.parentData.flex = flex;
24 } 23 }
25 24
26 // Solid colour, Widget version 25 // Solid colour, Widget version
27 class Rectangle extends Component { 26 class Rectangle extends Component {
(...skipping 26 matching lines...) Expand all
54 new Rectangle(const Color(0xFFFFFF00)), 53 new Rectangle(const Color(0xFFFFFF00)),
55 ], 54 ],
56 direction: FlexDirection.vertical, 55 direction: FlexDirection.vertical,
57 justifyContent: FlexJustifyContent.spaceBetween 56 justifyContent: FlexJustifyContent.spaceBetween
58 ); 57 );
59 } 58 }
60 59
61 double timeBase; 60 double timeBase;
62 RenderTransform transformBox; 61 RenderTransform transformBox;
63 62
64 final TestRenderView tester = new TestRenderView();
65
66 void rotate(double timeStamp) { 63 void rotate(double timeStamp) {
67 if (timeBase == null) 64 if (timeBase == null)
68 timeBase = timeStamp; 65 timeBase = timeStamp;
69 double delta = (timeStamp - timeBase) / 1000; // radians 66 double delta = (timeStamp - timeBase) / 1000; // radians
70 67
71 transformBox.setIdentity(); 68 transformBox.setIdentity();
72 transformBox.translate(transformBox.size.width / 2.0, transformBox.size.height / 2.0); 69 transformBox.translate(transformBox.size.width / 2.0, transformBox.size.height / 2.0);
73 transformBox.rotateZ(delta); 70 transformBox.rotateZ(delta);
74 transformBox.translate(-transformBox.size.width / 2.0, -transformBox.size.heig ht / 2.0); 71 transformBox.translate(-transformBox.size.width / 2.0, -transformBox.size.heig ht / 2.0);
75 } 72 }
(...skipping 10 matching lines...) Expand all
86 RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.vertical); 83 RenderFlex flexRoot = new RenderFlex(direction: FlexDirection.vertical);
87 84
88 RenderProxyBox proxy = new RenderProxyBox(); 85 RenderProxyBox proxy = new RenderProxyBox();
89 new RenderBoxToWidgetAdapter(proxy, builder); // adds itself to proxy 86 new RenderBoxToWidgetAdapter(proxy, builder); // adds itself to proxy
90 87
91 addFlexChildSolidColor(flexRoot, const sky.Color(0xFFFF00FF), flex: 1); 88 addFlexChildSolidColor(flexRoot, const sky.Color(0xFFFF00FF), flex: 1);
92 flexRoot.add(proxy); 89 flexRoot.add(proxy);
93 addFlexChildSolidColor(flexRoot, const sky.Color(0xFF0000FF), flex: 1); 90 addFlexChildSolidColor(flexRoot, const sky.Color(0xFF0000FF), flex: 1);
94 91
95 transformBox = new RenderTransform(child: flexRoot, transform: new Matrix4.ide ntity()); 92 transformBox = new RenderTransform(child: flexRoot, transform: new Matrix4.ide ntity());
96 RenderPadding root = new RenderPadding(padding: new EdgeDims.all(20.0), child: transformBox); 93 RenderPadding root = new RenderPadding(padding: new EdgeDims.all(80.0), child: transformBox);
97 94
98 SkyBinding.instance.root = root; 95 SkyBinding.instance.root = root;
99 addPersistentFrameCallback(rotate); 96 addPersistentFrameCallback(rotate);
100 } 97 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698