liyuqian 8ad4cbe06e
Add cull opacity perf test to device lab (#25381)
For https://github.com/flutter/flutter/issues/24712

This test verifies that https://github.com/flutter/engine/pull/6923 will speedup the average rasterize time of this test from ~150ms to ~10ms

Please see non-auto-generated files in 37b21d9fb4
2018-12-17 22:01:07 -08:00

41 lines
1.1 KiB
Dart

import 'package:flutter/material.dart';
class CullOpacityPage extends StatefulWidget {
@override
State<StatefulWidget> createState() => _CullOpacityPageState();
}
class _CullOpacityPageState extends State<CullOpacityPage> with SingleTickerProviderStateMixin {
Animation<double> _offsetY;
AnimationController _controller;
@override
void initState() {
super.initState();
_controller = AnimationController(vsync: this, duration: Duration(seconds: 2));
_offsetY = Tween<double>(begin: 0, end: -1000.0).animate(_controller)..addListener((){
setState(() {});
});
_controller.repeat();
}
@override
Widget build(BuildContext context) {
return Stack(children: List<Widget>.generate(50, (int i) => Positioned(
left: 0,
top: (200 * i).toDouble() + _offsetY.value,
child: Opacity(
opacity: 0.5,
child: RepaintBoundary(
child: Container(
// Slightly change width to invalidate raster cache.
width: 1000 - (_offsetY.value / 100),
height: 100, color: Colors.red,
),
),
),
)));
}
}