Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(111)

Side by Side Diff: sky/examples/raw/spinning_image.dart

Issue 1204783003: Adds basic sprite sheet support to sprites (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Adds basic sprite sheet support to sprites (fixed issues) Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 import 'dart:math' as math; 5 import 'dart:math' as math;
6 import 'dart:sky'; 6 import 'dart:sky';
7 import 'package:sky/mojo/net/image_cache.dart' as image_cache; 7 import 'package:sky/mojo/net/image_cache.dart' as image_cache;
8 8
9 double timeBase = null; 9 double timeBase = null;
10 10
11 Image image = null; 11 Image image = null;
12 String url1 = "https://www.dartlang.org/logos/dart-logo.png"; 12 String url1 = "https://www.dartlang.org/logos/dart-logo.png";
13 String url2 = "http://i2.kym-cdn.com/photos/images/facebook/000/581/296/c09.jpg" ; 13 String url2 = "http://i2.kym-cdn.com/photos/images/facebook/000/581/296/c09.jpg" ;
14 14
15 void beginFrame(double timeStamp) { 15 void beginFrame(double timeStamp) {
16 if (timeBase == null) timeBase = timeStamp; 16 if (timeBase == null) timeBase = timeStamp;
17 double delta = timeStamp - timeBase; 17 double delta = timeStamp - timeBase;
18 PictureRecorder canvas = new PictureRecorder(view.width, view.height); 18 PictureRecorder canvas = new PictureRecorder(view.width, view.height);
19 canvas.translate(view.width / 2.0, view.height / 2.0); 19 canvas.translate(view.width / 2.0, view.height / 2.0);
20 canvas.rotate(math.PI * delta / 1800); 20 canvas.rotate(math.PI * delta / 1800);
21 canvas.scale(0.2, 0.2); 21 canvas.scale(0.2, 0.2);
22 Paint paint = new Paint()..color = const Color.fromARGB(255, 0, 255, 0); 22 Paint paint = new Paint()..color = const Color.fromARGB(255, 0, 255, 0);
23
24 // Draw image
23 if (image != null) 25 if (image != null)
24 canvas.drawImage(image, -image.width / 2.0, -image.height / 2.0, paint); 26 canvas.drawImage(image, -image.width / 2.0, -image.height / 2.0, paint);
27
28 // Draw cut out of image
29 canvas.rotate(math.PI * delta / 1800);
30 if (image != null) {
31 var w = image.width.toDouble();
32 var h = image.width.toDouble();
33 canvas.drawImageRect(image,
34 new Rect.fromLTRB(w * 0.25, h * 0.25, w * 0.75, h * 0.75),
35 new Rect.fromLTRB(-w / 4.0, -h / 4.0, w / 4.0, h / 4.0),
36 paint);
37 }
38
25 view.picture = canvas.endRecording(); 39 view.picture = canvas.endRecording();
26 view.scheduleFrame(); 40 view.scheduleFrame();
27 } 41 }
28 42
29 void handleImageLoad(result) { 43 void handleImageLoad(result) {
30 if (result != image) { 44 if (result != image) {
31 print("${result.width}x${result.width} image loaded!"); 45 print("${result.width}x${result.width} image loaded!");
32 image = result; 46 image = result;
33 view.scheduleFrame(); 47 view.scheduleFrame();
34 } else { 48 } else {
(...skipping 13 matching lines...) Expand all
48 62
49 return false; 63 return false;
50 } 64 }
51 65
52 void main() { 66 void main() {
53 image_cache.load(url1, handleImageLoad); 67 image_cache.load(url1, handleImageLoad);
54 image_cache.load(url1, handleImageLoad); 68 image_cache.load(url1, handleImageLoad);
55 view.setEventCallback(handleEvent); 69 view.setEventCallback(handleEvent);
56 view.setBeginFrameCallback(beginFrame); 70 view.setBeginFrameCallback(beginFrame);
57 } 71 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698