| import 'package:sky/rendering.dart'; |
| |
| const Size _kTestViewSize = const Size(800.0, 600.0); |
| |
| class TestRenderView extends RenderView { |
| TestRenderView({ RenderBox child }) : super(child: child) { |
| attach(); |
| rootConstraints = new ViewConstraints(size: _kTestViewSize); |
| scheduleInitialLayout(); |
| scheduleInitialPaint(new TransformLayer(transform: new Matrix4.identity())); |
| } |
| } |
| |
| enum EnginePhase { |
| layout, |
| paint, |
| composite |
| } |
| |
| class RenderingTester { |
| RenderingTester({ RenderBox root }) { |
| renderView = new TestRenderView(child: root); |
| } |
| |
| RenderView renderView; |
| |
| void pumpFrame({ EnginePhase phase: EnginePhase.composite }) { |
| RenderObject.flushLayout(); |
| if (phase == EnginePhase.layout) |
| return; |
| renderView.updateCompositingBits(); |
| RenderObject.flushPaint(); |
| if (phase == EnginePhase.paint) |
| return; |
| renderView.compositeFrame(); |
| } |
| } |
| |
| RenderingTester layout(RenderBox box, { BoxConstraints constraints }) { |
| if (constraints != null) { |
| box = new RenderPositionedBox( |
| child: new RenderConstrainedBox( |
| additionalConstraints: constraints, |
| child: box |
| ) |
| ); |
| } |
| |
| RenderingTester tester = new RenderingTester(root: box); |
| tester.pumpFrame(phase: EnginePhase.layout); |
| return tester; |
| } |