画面更新要求が発生する DOM elementの操作実行用
- 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()));
- }
- }
- }