mirror of
https://github.com/wahyd4/shape-shifter.git
synced 2026-08-09 04:46:32 +10:00
55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
|
|
S.Drawing = (function () {
|
|
var canvas,
|
|
context,
|
|
renderFn,
|
|
requestFrame = window.requestAnimationFrame ||
|
|
window.webkitRequestAnimationFrame ||
|
|
window.mozRequestAnimationFrame ||
|
|
window.oRequestAnimationFrame ||
|
|
window.msRequestAnimationFrame ||
|
|
function (callback) {
|
|
window.setTimeout(callback, 1000 / 60);
|
|
};
|
|
|
|
return {
|
|
init: function (el) {
|
|
canvas = document.querySelector(el);
|
|
context = canvas.getContext('2d');
|
|
this.adjustCanvas();
|
|
|
|
window.addEventListener('resize', function () {
|
|
S.Drawing.adjustCanvas();
|
|
});
|
|
},
|
|
|
|
loop: function (fn) {
|
|
renderFn = !renderFn ? fn : renderFn;
|
|
this.clearFrame();
|
|
renderFn();
|
|
requestFrame.call(window, this.loop.bind(this));
|
|
},
|
|
|
|
adjustCanvas: function () {
|
|
canvas.width = window.innerWidth;
|
|
canvas.height = window.innerHeight;
|
|
},
|
|
|
|
clearFrame: function () {
|
|
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
},
|
|
|
|
getArea: function () {
|
|
return { w: canvas.width, h: canvas.height };
|
|
},
|
|
|
|
drawCircle: function (p, c) {
|
|
context.fillStyle = c.render();
|
|
context.beginPath();
|
|
context.arc(p.x, p.y, p.z, 0, 2 * Math.PI, true);
|
|
context.closePath();
|
|
context.fill();
|
|
}
|
|
};
|
|
}());
|