class RenderLoop { constructor() { this.renderQue = new Queue(); this.rendering = null; // loop処理呼び出し済み判定用 } // 描画用callback関数登録要求 // 引数のcallbackを1回呼び出します // callback: function callback(time) requestRenderFunc(callback) { console.log('Request render function = ' + (callback ? callback.name : 'null')); if (null != callback){ this.renderQue.enqueue(callback); // 描画loop (function renderloop(time) { if (0 < this.renderQue.size()) { this.renderQue.dequeue()(time); console.log('render func size=' + this.renderQue.size()); requestAnimationFrame(renderloop.bind(this)); } }.call(this,window.performance.now())); } } }