Chromium Code Reviews| Index: sky/tests/resources/display_list.dart |
| diff --git a/sky/tests/resources/display_list.dart b/sky/tests/resources/display_list.dart |
| index 71f5202ac714957e7ba06467b92df1179b055a6a..bed194045a08786c63edcf25b20f6c1c37e7cbea 100644 |
| --- a/sky/tests/resources/display_list.dart |
| +++ b/sky/tests/resources/display_list.dart |
| @@ -1,22 +1,41 @@ |
| import 'dart:sky' as sky; |
| +import 'dart:typed_data'; |
| import 'package:sky/framework/rendering/box.dart'; |
| import 'package:sky/framework/rendering/object.dart'; |
| typedef void Logger (String s); |
| -class TestDisplayList extends RenderObjectDisplayList { |
| - TestDisplayList(double width, double height, this.logger, { this.indent: '' }) : |
| - this.width = width, |
| - this.height = height, |
| - super(width, height) { |
| - log("TestDisplayList() constructor: $width x $height"); |
| +class TestPictureRecorder extends sky.PictureRecorder { |
| + TestPictureRecorder(this.logger, { this.indent: '' }) { |
| + log("TestPictureRecorder() constructor"); |
| + } |
| + final String indent; |
| + Logger logger; |
| + |
| + void log(String s) { |
| + logger("${indent} ${s}"); |
| + } |
| + |
| + sky.Canvas beginRecording(double width, double height) { |
| + log("beginRecording($width, $height)"); |
| + |
| + var canvas = super.beginRecording(width, height); |
| + |
| + return new TestCanvas(canvas, width, height, this.logger, indent: this.indent); |
| + } |
| +} |
| + |
| +class TestCanvas implements sky.Canvas { |
| + TestCanvas(this.canvas, this.width, this.height, this.logger, { this.indent: '' }) { |
| + log("TestCanvas() constructor: $width x $height"); |
| } |
| final String indent; |
| final double width; |
| final double height; |
| + sky.Canvas canvas; |
|
abarth-chromium
2015/06/18 00:03:52
I don't think you need to pass |canvas| to this ob
iansf
2015/06/20 00:02:40
Done. (This file is still in flux, though, so don
|
| Logger logger; |
| void log(String s) { |
| @@ -56,8 +75,8 @@ class TestDisplayList extends RenderObjectDisplayList { |
| log("skew($sx, $sy)"); |
| } |
| - void concat(List<double> matrix9) { |
| - log("concat($matrix9)"); |
| + void concat(Float32List matrix4) { |
| + log("concat($matrix4)"); |
| } |
| void clipRect(Rect rect) { |
| @@ -107,11 +126,6 @@ class TestDisplayList extends RenderObjectDisplayList { |
| void drawImage(sky.Image image, double x, double y, Paint paint) { |
| log("drawImage($image, $x, $y, ${explainPaint(paint)})"); |
| } |
| - |
| - void paintChild(RenderObject child, Point position) { |
| - log("paintChild ${child.runtimeType} at $position"); |
| - child.paint(new TestDisplayList(width, height, logger, indent: "$indent |")); |
| - } |
| } |
| class TestRenderView extends RenderView { |
| @@ -136,8 +150,10 @@ class TestRenderView extends RenderView { |
| frame += 1; |
| lastPaint = ''; |
| log("PAINT FOR FRAME #${frame} ----------------------------------------------"); |
| - var canvas = new TestDisplayList(rootConstraints.width, rootConstraints.height, log, indent: "${frame} |"); |
| + var recorder = new TestPictureRecorder(log, indent: "${frame} |"); |
| + var canvas = recorder.beginRecording(rootConstraints.width, rootConstraints.height); |
| paint(canvas); |
| + recorder.endRecording(); |
| log("------------------------------------------------------------------------"); |
| RenderObject.debugDoingPaint = false; |
| } |