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

Unified Diff: experimental/SkV8Example/snow.js

Issue 132413002: Just use one version of the scripts in both the browser and in SkV8. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: merge Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « experimental/SkV8Example/gears.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: experimental/SkV8Example/snow.js
diff --git a/experimental/SkV8Example/snow.js b/experimental/SkV8Example/snow.js
new file mode 100644
index 0000000000000000000000000000000000000000..87ce11919856549cc82087a3fa6c16b0a9ad1327
--- /dev/null
+++ b/experimental/SkV8Example/snow.js
@@ -0,0 +1,92 @@
+var IS_SKV8 = typeof document == "undefined";
+
+function circlePath(r) {
+ if (IS_SKV8) {
+ var p = new Path();
+ p.oval(0, 0, r, r);
+ p.closePath();
+ return p;
+ } else {
+ return null;
+ }
+}
+
+var onDraw = function() {
+ var W = 500;
+ var H = 500;
+ var NumParticles = 100;
+
+ var angle = 0;
+ var ticks = 0;
+ var particles =[];
+
+ for (var i = 0; i < NumParticles; i++) {
+ particles[i] = {
+ x: Math.floor(Math.random()*W),
+ y: Math.floor(Math.random()*H),
+ r: Math.floor(Math.random()*7+1),
+ path: circlePath(Math.random()*7+1),
+ }
+ }
+
+ function draw(ctx) {
+ ctx.fillStyle = "#ADD8E6";
+ ctx.fillRect(0, 0, W-1, H-1);
+ ctx.fillStyle = "#FFFFFF";
+
+ angle += 0.0039;
+ for (var i = 0; i < particles.length; i++) {
+ var p = particles[i];
+ p.x += Math.floor(Math.sin(angle)*5.0);
+ p.y += 0.6*p.r;
+ if (p.x > W) {
+ p.x-=W;
+ }
+ if (p.x < 0) {
+ p.x += W;
+ }
+ if(p.y>(H+1)){
+ p.y = 0;
+ }
+ if (IS_SKV8) {
+ ctx.save();
+ ctx.translate(p.x, p.y);
+ ctx.fill(p.path);
+ ctx.restore();
+ } else {
+ ctx.beginPath();
+ ctx.moveTo(p.x, p.y);
+ ctx.arc(p.x, p.y, p.r, 0, 2*Math.PI, true);
+ ctx.closePath();
+ ctx.fill();
+ }
+ };
+
+ ticks++;
+ if (IS_SKV8) {
+ inval();
+ }
+ }
+
+ function fps() {
+ console.log(ticks);
+ ticks = 0;
+ setTimeout(fps, 1000);
+ }
+
+ setTimeout(fps, 1000);
+
+ return draw;
+}();
+
+if (!IS_SKV8) {
+ window.onload = function(){
+ var canvas = document.getElementById("snow");
+ var ctx = canvas.getContext("2d");
+ function drawCallback() {
+ onDraw(ctx);
+ setTimeout(drawCallback, 1);
+ }
+ setTimeout(drawCallback, 1);
+ }
+}
« no previous file with comments | « experimental/SkV8Example/gears.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698