Merge pull request #854 from abarth/sector_broken
Sector demo is broken because of compositor changes
This commit is contained in:
commit
1a15cb2d27
@ -166,6 +166,14 @@ class RenderSectorWithChildren extends RenderDecoratedSector with ContainerRende
|
|||||||
child = child.parentData.previousSibling;
|
child = child.parentData.previousSibling;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void visitChildren(RenderObjectVisitor visitor) {
|
||||||
|
RenderSector child = lastChild;
|
||||||
|
while (child != null) {
|
||||||
|
visitor(child);
|
||||||
|
child = child.parentData.previousSibling;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class RenderSectorRing extends RenderSectorWithChildren {
|
class RenderSectorRing extends RenderSectorWithChildren {
|
||||||
@ -413,6 +421,10 @@ class RenderBoxToRenderSectorAdapter extends RenderBox {
|
|||||||
child.parentData = new SectorParentData();
|
child.parentData = new SectorParentData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void visitChildren(RenderObjectVisitor visitor) {
|
||||||
|
visitor(_child);
|
||||||
|
}
|
||||||
|
|
||||||
double getMinIntrinsicWidth(BoxConstraints constraints) {
|
double getMinIntrinsicWidth(BoxConstraints constraints) {
|
||||||
if (child == null)
|
if (child == null)
|
||||||
return super.getMinIntrinsicWidth(constraints);
|
return super.getMinIntrinsicWidth(constraints);
|
||||||
|
10
packages/unit/test/examples/sector_layout_test.dart
Normal file
10
packages/unit/test/examples/sector_layout_test.dart
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
import 'package:test/test.dart';
|
||||||
|
import '../rendering/layout_utils.dart';
|
||||||
|
import '../../../../examples/rendering/sector_layout.dart';
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
test('Sector layout can paint', () {
|
||||||
|
RenderingTester tester = new RenderingTester(root: buildSectorExample());
|
||||||
|
tester.pumpFrame();
|
||||||
|
});
|
||||||
|
}
|
@ -7,14 +7,36 @@ class TestRenderView extends RenderView {
|
|||||||
attach();
|
attach();
|
||||||
rootConstraints = new ViewConstraints(size: _kTestViewSize);
|
rootConstraints = new ViewConstraints(size: _kTestViewSize);
|
||||||
scheduleInitialLayout();
|
scheduleInitialLayout();
|
||||||
|
scheduleInitialPaint(new TransformLayer(transform: new Matrix4.identity()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void beginFrame(double timeStamp) {
|
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();
|
RenderObject.flushLayout();
|
||||||
|
if (phase == EnginePhase.layout)
|
||||||
|
return;
|
||||||
|
renderView.updateCompositingBits();
|
||||||
|
RenderObject.flushPaint();
|
||||||
|
if (phase == EnginePhase.paint)
|
||||||
|
return;
|
||||||
|
renderView.compositeFrame();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RenderView layout(RenderBox box, { BoxConstraints constraints }) {
|
RenderingTester layout(RenderBox box, { BoxConstraints constraints }) {
|
||||||
if (constraints != null) {
|
if (constraints != null) {
|
||||||
box = new RenderPositionedBox(
|
box = new RenderPositionedBox(
|
||||||
child: new RenderConstrainedBox(
|
child: new RenderConstrainedBox(
|
||||||
@ -24,7 +46,7 @@ RenderView layout(RenderBox box, { BoxConstraints constraints }) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
TestRenderView renderView = new TestRenderView(child: box);
|
RenderingTester tester = new RenderingTester(root: box);
|
||||||
renderView.beginFrame(0.0);
|
tester.pumpFrame(phase: EnginePhase.layout);
|
||||||
return renderView;
|
return tester;
|
||||||
}
|
}
|
||||||
|
@ -15,16 +15,16 @@ void main() {
|
|||||||
child: size);
|
child: size);
|
||||||
|
|
||||||
RenderViewport viewport = new RenderViewport(child: red, scrollOffset: new Offset(0.0, -10.0));
|
RenderViewport viewport = new RenderViewport(child: red, scrollOffset: new Offset(0.0, -10.0));
|
||||||
RenderView renderView = layout(viewport);
|
RenderingTester tester = layout(viewport);
|
||||||
|
|
||||||
HitTestResult result;
|
HitTestResult result;
|
||||||
|
|
||||||
result = new HitTestResult();
|
result = new HitTestResult();
|
||||||
renderView.hitTest(result, position: new Point(15.0, 0.0));
|
tester.renderView.hitTest(result, position: new Point(15.0, 0.0));
|
||||||
expect(result.path.first.target, equals(viewport));
|
expect(result.path.first.target, equals(viewport));
|
||||||
|
|
||||||
result = new HitTestResult();
|
result = new HitTestResult();
|
||||||
renderView.hitTest(result, position: new Point(15.0, 15.0));
|
tester.renderView.hitTest(result, position: new Point(15.0, 15.0));
|
||||||
expect(result.path.first.target, equals(size));
|
expect(result.path.first.target, equals(size));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user