2013-03-21 09:35:36 +00:00
|
|
|
|
|
|
|
(function() {
|
|
|
|
'use strict';
|
|
|
|
|
2013-05-14 14:29:06 +00:00
|
|
|
ElmRuntime.Display = { FULLSCREEN: 0, COMPONENT: 1, NONE: 2 };
|
|
|
|
|
2013-03-21 09:35:36 +00:00
|
|
|
ElmRuntime.counter = 0;
|
|
|
|
ElmRuntime.guid = function() { return ElmRuntime.counter++; }
|
|
|
|
|
|
|
|
ElmRuntime.use = function(M) {
|
|
|
|
if (typeof M === 'function') M = M();
|
|
|
|
return M;
|
|
|
|
};
|
|
|
|
|
|
|
|
function isAlive(input) {
|
|
|
|
if (!('defaultNumberOfKids' in input)) return true;
|
|
|
|
var len = input.kids.length;
|
2013-05-11 20:42:45 +00:00
|
|
|
if (len === 0) return false;
|
2013-03-21 09:35:36 +00:00
|
|
|
if (len > input.defaultNumberOfKids) return true;
|
|
|
|
var alive = false;
|
|
|
|
for (var i = len; i--; ) {
|
2013-05-11 20:42:45 +00:00
|
|
|
alive = alive || isAlive(input.kids[i]);
|
2013-03-21 09:35:36 +00:00
|
|
|
}
|
|
|
|
return alive;
|
|
|
|
}
|
|
|
|
|
|
|
|
ElmRuntime.filterDeadInputs = function(inputs) {
|
|
|
|
var temp = [];
|
|
|
|
for (var i = inputs.length; i--; ) {
|
2013-05-11 20:42:45 +00:00
|
|
|
if (isAlive(inputs[i])) temp.push(inputs[i]);
|
2013-03-21 09:35:36 +00:00
|
|
|
}
|
|
|
|
return temp;
|
|
|
|
};
|
|
|
|
|
2013-04-19 05:25:18 +00:00
|
|
|
// define the draw function
|
|
|
|
var vendors = ['ms', 'moz', 'webkit', 'o'];
|
2013-10-30 15:33:44 +00:00
|
|
|
var window = window || {};
|
2013-04-19 05:25:18 +00:00
|
|
|
for (var i = 0; i < vendors.length && !window.requestAnimationFrame; ++i) {
|
|
|
|
window.requestAnimationFrame = window[vendors[i]+'RequestAnimationFrame'];
|
2013-05-11 20:42:45 +00:00
|
|
|
window.cancelAnimationFrame = window[vendors[i]+'CancelAnimationFrame'] ||
|
|
|
|
window[vendors[i]+'CancelRequestAnimationFrame'];
|
2013-04-19 05:25:18 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
if (window.requestAnimationFrame && window.cancelAnimationFrame) {
|
|
|
|
var previous = 0;
|
|
|
|
ElmRuntime.draw = function(callback) {
|
|
|
|
window.cancelAnimationFrame(previous);
|
|
|
|
previous = window.requestAnimationFrame(callback);
|
|
|
|
};
|
|
|
|
} else {
|
|
|
|
ElmRuntime.draw = function(callback) { callback(); };
|
|
|
|
}
|
|
|
|
|
2013-03-21 09:35:36 +00:00
|
|
|
}());
|