diff --git a/packages/flutter/lib/rendering/sky_binding.dart b/packages/flutter/lib/rendering/sky_binding.dart index d993d8db25..5eca6e8f34 100644 --- a/packages/flutter/lib/rendering/sky_binding.dart +++ b/packages/flutter/lib/rendering/sky_binding.dart @@ -40,7 +40,7 @@ class SkyBinding { sky.view.setMetricsChangedCallback(_handleMetricsChanged); scheduler.init(); if (renderViewOverride == null) { - _renderView = new RenderView(child: root, devicePixelRatio: sky.view.devicePixelRatio); + _renderView = new RenderView(child: root); _renderView.attach(); _renderView.rootConstraints = _createConstraints(); _renderView.scheduleInitialFrame(); diff --git a/packages/flutter/lib/rendering/view.dart b/packages/flutter/lib/rendering/view.dart index b1ede698ff..e835ce393d 100644 --- a/packages/flutter/lib/rendering/view.dart +++ b/packages/flutter/lib/rendering/view.dart @@ -22,13 +22,11 @@ class ViewConstraints { class RenderView extends RenderObject with RenderObjectWithChildMixin { RenderView({ RenderBox child, - this.devicePixelRatio, this.timeForRotation: const Duration(microseconds: 83333) }) { this.child = child; } - final double devicePixelRatio; Duration timeForRotation; Size _size = Size.zero; @@ -46,10 +44,14 @@ class RenderView extends RenderObject with RenderObjectWithChildMixin markNeedsLayout(); } + Matrix4 get _logicalToDeviceTransform { + double devicePixelRatio = sky.view.devicePixelRatio; + return new Matrix4.diagonal3Values(devicePixelRatio, devicePixelRatio, 1.0); + } + void scheduleInitialFrame() { - Matrix4 logicalToDeviceZoom = new Matrix4.diagonal3Values(devicePixelRatio, devicePixelRatio, 1.0); scheduleInitialLayout(); - scheduleInitialPaint(new TransformLayer(transform: logicalToDeviceZoom)); + scheduleInitialPaint(new TransformLayer(transform: _logicalToDeviceTransform)); scheduler.ensureVisualUpdate(); } @@ -98,6 +100,7 @@ class RenderView extends RenderObject with RenderObjectWithChildMixin void compositeFrame() { sky.tracing.begin('RenderView.compositeFrame'); try { + (layer as TransformLayer).transform = _logicalToDeviceTransform; Rect bounds = Point.origin & (size * sky.view.devicePixelRatio); sky.SceneBuilder builder = new sky.SceneBuilder(bounds); layer.addToScene(builder, Offset.zero);