// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // This example shows the draw operations to warm up the GPU shaders by default. import 'dart:ui' as ui; import 'package:flutter/material.dart'; import 'package:flutter/painting.dart' show DefaultShaderWarmUp; Future beginFrame(Duration timeStamp) async { // PAINT final ui.PictureRecorder recorder = ui.PictureRecorder(); const ui.Rect paintBounds = ui.Rect.fromLTRB(0, 0, 1000, 1000); final ui.Canvas canvas = ui.Canvas(recorder, paintBounds); final ui.Paint backgroundPaint = ui.Paint()..color = Colors.white; canvas.drawRect(paintBounds, backgroundPaint); await const DefaultShaderWarmUp( drawCallSpacing: 80.0, canvasSize: ui.Size(1024, 1024)) .warmUpOnCanvas(canvas); final ui.Picture picture = recorder.endRecording(); // COMPOSITE final ui.SceneBuilder sceneBuilder = ui.SceneBuilder() ..pushClipRect(paintBounds) ..addPicture(ui.Offset.zero, picture) ..pop(); ui.window.render(sceneBuilder.build()); } Future main() async { ui.window.onBeginFrame = beginFrame; ui.window.scheduleFrame(); }