From ed38815dbdb415666e8689cf58d7fa19dc541a72 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Thu, 21 May 2015 12:14:10 -0700 Subject: [PATCH] Port spinning_square to SkyView universe This demo shows how to create a spinning square using the lowest-level APIs. We should probably create more spinning square demos at the other layers of the system. R=eseidel@chromium.org Review URL: https://codereview.chromium.org/1147393002 --- examples/raw/spinning_square.dart | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 examples/raw/spinning_square.dart diff --git a/examples/raw/spinning_square.dart b/examples/raw/spinning_square.dart new file mode 100644 index 00000000000..155f5ccc685 --- /dev/null +++ b/examples/raw/spinning_square.dart @@ -0,0 +1,25 @@ +// Copyright 2015 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. + +import 'dart:sky'; + +double timeBase = null; + +void beginFrame(double timeStamp) { + if (timeBase == null) + timeBase = timeStamp; + double delta = timeStamp - timeBase; + PictureRecorder canvas = new PictureRecorder(view.width, view.height); + canvas.translate(view.width / 2.0, view.height / 2.0); + canvas.rotateDegrees(delta / 10); + canvas.drawRect(new Rect()..setLTRB(-100.0, -100.0, 100.0, 100.0), + new Paint()..setARGB(255, 0, 255, 0)); + view.picture = canvas.endRecording(); + view.scheduleFrame(); +} + +void main() { + view.setBeginFrameCallback(beginFrame); + view.scheduleFrame(); +}