Skip to content

Commit

Permalink
fix blank when pitch animates to 0, close #732 and close #762
Browse files Browse the repository at this point in the history
  • Loading branch information
fuzhenn committed Sep 2, 2018
1 parent a7cc053 commit 7a78df7
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 18 deletions.
5 changes: 5 additions & 0 deletions src/map/Map.Anim.js
Expand Up @@ -198,6 +198,11 @@ Map.include(/** @lends Map.prototype */{
if (evtType) {
this._fireEvent(evtType);
}
if (!isNil(props['pitch']) && !this.getPitch()) {
//https://github.com/maptalks/maptalks.js/issues/732
//fix blank map when pitch changes to 0
this.getRenderer().setToRedraw();
}
},

_startAnim(props, zoomOrigin) {
Expand Down
40 changes: 22 additions & 18 deletions src/renderer/map/MapCanvasRenderer.js
Expand Up @@ -56,7 +56,7 @@ class MapCanvasRenderer extends MapRenderer {
delete this._spatialRefChanged;
this._fireLayerLoadEvents();
this.executeFrameCallbacks();
this._needRedraw = false;
this._canvasUpdated = false;
return true;
}

Expand Down Expand Up @@ -106,7 +106,7 @@ class MapCanvasRenderer extends MapRenderer {
if (!needsRedraw) {
updatedIds.push(layer.getId());
}
this.setToRedraw();
this.setLayerCanvasUpdated();
}
delete renderer.__shouldZoomTransform;
if (!needsRedraw) {
Expand Down Expand Up @@ -143,7 +143,7 @@ class MapCanvasRenderer extends MapRenderer {

if (isCanvas) {
updatedIds.push(layer.getId());
this.setToRedraw();
this.setLayerCanvasUpdated();
}
}
// compare:
Expand All @@ -154,10 +154,10 @@ class MapCanvasRenderer extends MapRenderer {
const preUpdatedIds = this._updatedIds || [];
this._canvasIds = canvasIds;
this._updatedIds = updatedIds;
if (!this._needToRedraw()) {
if (!this.isLayerCanvasUpdated()) {
const sep = '---';
if (preCanvasIds.join(sep) !== canvasIds.join(sep) || preUpdatedIds.join(sep) !== updatedIds.join(sep)) {
this.setToRedraw();
this.setLayerCanvasUpdated();
}
}
}
Expand Down Expand Up @@ -261,12 +261,12 @@ class MapCanvasRenderer extends MapRenderer {

}

_needToRedraw() {
return this._needRedraw;
isLayerCanvasUpdated() {
return this._canvasUpdated;
}

setToRedraw() {
this._needRedraw = true;
setLayerCanvasUpdated() {
this._canvasUpdated = true;
}

/**
Expand All @@ -277,7 +277,7 @@ class MapCanvasRenderer extends MapRenderer {
if (!map) {
return;
}
if (!this._needToRedraw() && !this.isViewChanged()) {
if (!this.isLayerCanvasUpdated() && !this.isViewChanged()) {
return;
}
if (!this.canvas) {
Expand Down Expand Up @@ -350,6 +350,17 @@ class MapCanvasRenderer extends MapRenderer {
});
}

setToRedraw() {
const layers = this._getAllLayerToRender();
for (let i = 0, l = layers.length; i < l; i++) {
const renderer = layers[i].getRenderer();
if (renderer && renderer.canvas && renderer.setToRedraw) {
//to fix lost webgl context
renderer.setToRedraw();
}
}
}

updateMapSize(size) {
if (!size || this._containerIsCanvas) {
return;
Expand Down Expand Up @@ -792,14 +803,7 @@ class MapCanvasRenderer extends MapRenderer {
if (document.visibilityState !== 'visible') {
return;
}
const layers = this._getAllLayerToRender();
for (let i = 0, l = layers.length; i < l; i++) {
const renderer = layers[i].getRenderer();
if (renderer && renderer.canvas && renderer.setToRedraw) {
//to fix lost webgl context
renderer.setToRedraw();
}
}
this.setToRedraw();
}
}

Expand Down

0 comments on commit 7a78df7

Please sign in to comment.