Remove CANVAS_LINE_DASH from ol/has
Test if `context.setLineDash` is defined instead.
This commit is contained in:
@@ -40,21 +40,6 @@ export const MAC = ua.indexOf('macintosh') !== -1;
|
|||||||
export const DEVICE_PIXEL_RATIO = window.devicePixelRatio || 1;
|
export const DEVICE_PIXEL_RATIO = window.devicePixelRatio || 1;
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* True if the browser's Canvas implementation implements {get,set}LineDash.
|
|
||||||
* @type {boolean}
|
|
||||||
*/
|
|
||||||
export const CANVAS_LINE_DASH = function() {
|
|
||||||
let has = false;
|
|
||||||
try {
|
|
||||||
has = !!document.createElement('canvas').getContext('2d').setLineDash;
|
|
||||||
} catch (e) {
|
|
||||||
// pass
|
|
||||||
}
|
|
||||||
return has;
|
|
||||||
}();
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Is HTML5 geolocation supported in the current browser?
|
* Is HTML5 geolocation supported in the current browser?
|
||||||
* @const
|
* @const
|
||||||
|
|||||||
@@ -8,7 +8,6 @@ import {createEmpty, createOrUpdate,
|
|||||||
import {lineStringLength} from '../../geom/flat/length.js';
|
import {lineStringLength} from '../../geom/flat/length.js';
|
||||||
import {drawTextOnPath} from '../../geom/flat/textpath.js';
|
import {drawTextOnPath} from '../../geom/flat/textpath.js';
|
||||||
import {transform2D} from '../../geom/flat/transform.js';
|
import {transform2D} from '../../geom/flat/transform.js';
|
||||||
import {CANVAS_LINE_DASH} from '../../has.js';
|
|
||||||
import {isEmpty} from '../../obj.js';
|
import {isEmpty} from '../../obj.js';
|
||||||
import {drawImage, resetTransform, defaultPadding, defaultTextBaseline} from '../canvas.js';
|
import {drawImage, resetTransform, defaultPadding, defaultTextBaseline} from '../canvas.js';
|
||||||
import CanvasInstruction from './Instruction.js';
|
import CanvasInstruction from './Instruction.js';
|
||||||
@@ -199,7 +198,7 @@ class Executor {
|
|||||||
context.lineCap = /** @type {CanvasLineCap} */ (strokeState.lineCap);
|
context.lineCap = /** @type {CanvasLineCap} */ (strokeState.lineCap);
|
||||||
context.lineJoin = /** @type {CanvasLineJoin} */ (strokeState.lineJoin);
|
context.lineJoin = /** @type {CanvasLineJoin} */ (strokeState.lineJoin);
|
||||||
context.miterLimit = strokeState.miterLimit;
|
context.miterLimit = strokeState.miterLimit;
|
||||||
if (CANVAS_LINE_DASH && strokeState.lineDash.length) {
|
if (context.setLineDash && strokeState.lineDash.length) {
|
||||||
context.setLineDash(strokeState.lineDash);
|
context.setLineDash(strokeState.lineDash);
|
||||||
context.lineDashOffset = strokeState.lineDashOffset;
|
context.lineDashOffset = strokeState.lineDashOffset;
|
||||||
}
|
}
|
||||||
@@ -395,7 +394,7 @@ class Executor {
|
|||||||
context.lineCap = /** @type {CanvasLineCap} */ (instruction[3]);
|
context.lineCap = /** @type {CanvasLineCap} */ (instruction[3]);
|
||||||
context.lineJoin = /** @type {CanvasLineJoin} */ (instruction[4]);
|
context.lineJoin = /** @type {CanvasLineJoin} */ (instruction[4]);
|
||||||
context.miterLimit = /** @type {number} */ (instruction[5]);
|
context.miterLimit = /** @type {number} */ (instruction[5]);
|
||||||
if (CANVAS_LINE_DASH) {
|
if (context.setLineDash) {
|
||||||
context.lineDashOffset = /** @type {number} */ (instruction[7]);
|
context.lineDashOffset = /** @type {number} */ (instruction[7]);
|
||||||
context.setLineDash(/** @type {Array<number>} */ (instruction[6]));
|
context.setLineDash(/** @type {Array<number>} */ (instruction[6]));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ import {intersects} from '../../extent.js';
|
|||||||
import GeometryType from '../../geom/GeometryType.js';
|
import GeometryType from '../../geom/GeometryType.js';
|
||||||
import {transformGeom2D} from '../../geom/SimpleGeometry.js';
|
import {transformGeom2D} from '../../geom/SimpleGeometry.js';
|
||||||
import {transform2D} from '../../geom/flat/transform.js';
|
import {transform2D} from '../../geom/flat/transform.js';
|
||||||
import {CANVAS_LINE_DASH} from '../../has.js';
|
|
||||||
import VectorContext from '../VectorContext.js';
|
import VectorContext from '../VectorContext.js';
|
||||||
import {defaultTextAlign, defaultFillStyle, defaultLineCap, defaultLineDash, defaultLineDashOffset, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultStrokeStyle, defaultTextBaseline, defaultFont} from '../canvas.js';
|
import {defaultTextAlign, defaultFillStyle, defaultLineCap, defaultLineDash, defaultLineDashOffset, defaultLineJoin, defaultLineWidth, defaultMiterLimit, defaultStrokeStyle, defaultTextBaseline, defaultFont} from '../canvas.js';
|
||||||
import {create as createTransform, compose as composeTransform} from '../../transform.js';
|
import {create as createTransform, compose as composeTransform} from '../../transform.js';
|
||||||
@@ -694,7 +693,7 @@ class CanvasImmediateRenderer extends VectorContext {
|
|||||||
const contextStrokeState = this.contextStrokeState_;
|
const contextStrokeState = this.contextStrokeState_;
|
||||||
if (!contextStrokeState) {
|
if (!contextStrokeState) {
|
||||||
context.lineCap = /** @type {CanvasLineCap} */ (strokeState.lineCap);
|
context.lineCap = /** @type {CanvasLineCap} */ (strokeState.lineCap);
|
||||||
if (CANVAS_LINE_DASH) {
|
if (context.setLineDash) {
|
||||||
context.setLineDash(strokeState.lineDash);
|
context.setLineDash(strokeState.lineDash);
|
||||||
context.lineDashOffset = strokeState.lineDashOffset;
|
context.lineDashOffset = strokeState.lineDashOffset;
|
||||||
}
|
}
|
||||||
@@ -715,7 +714,7 @@ class CanvasImmediateRenderer extends VectorContext {
|
|||||||
if (contextStrokeState.lineCap != strokeState.lineCap) {
|
if (contextStrokeState.lineCap != strokeState.lineCap) {
|
||||||
contextStrokeState.lineCap = context.lineCap = /** @type {CanvasLineCap} */ (strokeState.lineCap);
|
contextStrokeState.lineCap = context.lineCap = /** @type {CanvasLineCap} */ (strokeState.lineCap);
|
||||||
}
|
}
|
||||||
if (CANVAS_LINE_DASH) {
|
if (context.setLineDash) {
|
||||||
if (!equals(contextStrokeState.lineDash, strokeState.lineDash)) {
|
if (!equals(contextStrokeState.lineDash, strokeState.lineDash)) {
|
||||||
context.setLineDash(contextStrokeState.lineDash = strokeState.lineDash);
|
context.setLineDash(contextStrokeState.lineDash = strokeState.lineDash);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
import {asString} from '../color.js';
|
import {asString} from '../color.js';
|
||||||
import {asColorLike} from '../colorlike.js';
|
import {asColorLike} from '../colorlike.js';
|
||||||
import {createCanvasContext2D} from '../dom.js';
|
import {createCanvasContext2D} from '../dom.js';
|
||||||
import {CANVAS_LINE_DASH} from '../has.js';
|
|
||||||
import ImageState from '../ImageState.js';
|
import ImageState from '../ImageState.js';
|
||||||
import {defaultStrokeStyle, defaultFillStyle, defaultLineCap, defaultLineWidth, defaultLineJoin, defaultMiterLimit} from '../render/canvas.js';
|
import {defaultStrokeStyle, defaultFillStyle, defaultLineCap, defaultLineWidth, defaultLineJoin, defaultMiterLimit} from '../render/canvas.js';
|
||||||
import ImageStyle from './Image.js';
|
import ImageStyle from './Image.js';
|
||||||
@@ -342,10 +341,6 @@ class RegularShape extends ImageStyle {
|
|||||||
}
|
}
|
||||||
lineDash = this.stroke_.getLineDash();
|
lineDash = this.stroke_.getLineDash();
|
||||||
lineDashOffset = this.stroke_.getLineDashOffset();
|
lineDashOffset = this.stroke_.getLineDashOffset();
|
||||||
if (!CANVAS_LINE_DASH) {
|
|
||||||
lineDash = null;
|
|
||||||
lineDashOffset = 0;
|
|
||||||
}
|
|
||||||
lineJoin = this.stroke_.getLineJoin();
|
lineJoin = this.stroke_.getLineJoin();
|
||||||
if (lineJoin === undefined) {
|
if (lineJoin === undefined) {
|
||||||
lineJoin = defaultLineJoin;
|
lineJoin = defaultLineJoin;
|
||||||
@@ -470,7 +465,7 @@ class RegularShape extends ImageStyle {
|
|||||||
if (this.stroke_) {
|
if (this.stroke_) {
|
||||||
context.strokeStyle = renderOptions.strokeStyle;
|
context.strokeStyle = renderOptions.strokeStyle;
|
||||||
context.lineWidth = renderOptions.strokeWidth;
|
context.lineWidth = renderOptions.strokeWidth;
|
||||||
if (renderOptions.lineDash) {
|
if (context.setLineDash && renderOptions.lineDash) {
|
||||||
context.setLineDash(renderOptions.lineDash);
|
context.setLineDash(renderOptions.lineDash);
|
||||||
context.lineDashOffset = renderOptions.lineDashOffset;
|
context.lineDashOffset = renderOptions.lineDashOffset;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user