|
|
|
@ -1271,6 +1271,10 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
@@ -1271,6 +1271,10 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
|
|
|
|
|
this.graphicsReady = false; |
|
|
|
|
this.cancelled = false; |
|
|
|
|
this.capability = createPromiseCapability(); |
|
|
|
|
// caching this-bound methods
|
|
|
|
|
this._continueBound = this._continue.bind(this); |
|
|
|
|
this._scheduleNextBound = this._scheduleNext.bind(this); |
|
|
|
|
this._nextBound = this._next.bind(this); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
InternalRenderTask.prototype = { |
|
|
|
@ -1309,7 +1313,7 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
@@ -1309,7 +1313,7 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
|
|
|
|
|
operatorListChanged: function InternalRenderTask_operatorListChanged() { |
|
|
|
|
if (!this.graphicsReady) { |
|
|
|
|
if (!this.graphicsReadyCallback) { |
|
|
|
|
this.graphicsReadyCallback = this._continue.bind(this); |
|
|
|
|
this.graphicsReadyCallback = this._continueBound; |
|
|
|
|
} |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
@ -1330,19 +1334,23 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
@@ -1330,19 +1334,23 @@ var InternalRenderTask = (function InternalRenderTaskClosure() {
|
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
if (this.params.continueCallback) { |
|
|
|
|
this.params.continueCallback(this._next.bind(this)); |
|
|
|
|
this.params.continueCallback(this._scheduleNextBound); |
|
|
|
|
} else { |
|
|
|
|
this._next(); |
|
|
|
|
this._scheduleNext(); |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_scheduleNext: function InternalRenderTask__scheduleNext() { |
|
|
|
|
window.requestAnimationFrame(this._nextBound); |
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
_next: function InternalRenderTask__next() { |
|
|
|
|
if (this.cancelled) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, |
|
|
|
|
this.operatorListIdx, |
|
|
|
|
this._continue.bind(this), |
|
|
|
|
this._continueBound, |
|
|
|
|
this.stepper); |
|
|
|
|
if (this.operatorListIdx === this.operatorList.argsArray.length) { |
|
|
|
|
this.running = false; |
|
|
|
|