Merge pull request #8916 from tschaub/intermediate-context

Move canvas creation to intermediate canvas renderer constructor
This commit is contained in:
Tim Schaub
2018-11-12 13:07:01 -07:00
committed by GitHub
3 changed files with 11 additions and 17 deletions
+8 -1
View File
@@ -15,11 +15,18 @@ class IntermediateCanvasRenderer extends CanvasLayerRenderer {
/** /**
* @param {import("../../layer/Layer.js").default} layer Layer. * @param {import("../../layer/Layer.js").default} layer Layer.
* @param {boolean=} opt_noContext Skip the context creation.
*/ */
constructor(layer) { constructor(layer, opt_noContext) {
super(layer); super(layer);
/**
* @protected
* @type {CanvasRenderingContext2D}
*/
this.context = opt_noContext ? null : createCanvasContext2D();
/** /**
* @protected * @protected
* @type {import("../../transform.js").Transform} * @type {import("../../transform.js").Transform}
+1 -8
View File
@@ -5,7 +5,6 @@ import {getUid} from '../../util.js';
import TileRange from '../../TileRange.js'; import TileRange from '../../TileRange.js';
import TileState from '../../TileState.js'; import TileState from '../../TileState.js';
import ViewHint from '../../ViewHint.js'; import ViewHint from '../../ViewHint.js';
import {createCanvasContext2D} from '../../dom.js';
import {containsExtent, createEmpty, equals, getIntersection, isEmpty} from '../../extent.js'; import {containsExtent, createEmpty, equals, getIntersection, isEmpty} from '../../extent.js';
import IntermediateCanvasRenderer from './IntermediateCanvas.js'; import IntermediateCanvasRenderer from './IntermediateCanvas.js';
import {create as createTransform, compose as composeTransform} from '../../transform.js'; import {create as createTransform, compose as composeTransform} from '../../transform.js';
@@ -23,13 +22,7 @@ class CanvasTileLayerRenderer extends IntermediateCanvasRenderer {
*/ */
constructor(tileLayer, opt_noContext) { constructor(tileLayer, opt_noContext) {
super(tileLayer); super(tileLayer, opt_noContext);
/**
* @protected
* @type {CanvasRenderingContext2D}
*/
this.context = opt_noContext ? null : createCanvasContext2D();
/** /**
* @private * @private
+2 -8
View File
@@ -4,7 +4,6 @@
import {getUid} from '../../util.js'; import {getUid} from '../../util.js';
import TileState from '../../TileState.js'; import TileState from '../../TileState.js';
import ViewHint from '../../ViewHint.js'; import ViewHint from '../../ViewHint.js';
import {createCanvasContext2D} from '../../dom.js';
import {listen, unlisten} from '../../events.js'; import {listen, unlisten} from '../../events.js';
import EventType from '../../events/EventType.js'; import EventType from '../../events/EventType.js';
import rbush from 'rbush'; import rbush from 'rbush';
@@ -59,7 +58,8 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
*/ */
constructor(layer) { constructor(layer) {
super(layer, true); const renderMode = layer.getRenderMode();
super(layer, renderMode === VectorTileRenderType.VECTOR);
/** /**
* Declutter tree. * Declutter tree.
@@ -85,15 +85,9 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
*/ */
this.tmpTransform_ = createTransform(); this.tmpTransform_ = createTransform();
const renderMode = layer.getRenderMode();
// Use lower resolution for pure vector rendering. Closest resolution otherwise. // Use lower resolution for pure vector rendering. Closest resolution otherwise.
this.zDirection = renderMode === VectorTileRenderType.VECTOR ? 1 : 0; this.zDirection = renderMode === VectorTileRenderType.VECTOR ? 1 : 0;
if (renderMode !== VectorTileRenderType.VECTOR) {
this.context = createCanvasContext2D();
}
listen(labelCache, EventType.CLEAR, this.handleFontsChanged_, this); listen(labelCache, EventType.CLEAR, this.handleFontsChanged_, this);