Add detection of canvas line dash support

This commit is contained in:
Tom Payne
2014-02-11 16:34:45 +01:00
parent e6e8037269
commit 1924e2b9b3

View File

@@ -73,6 +73,14 @@ ol.IS_LEGACY_IE = goog.userAgent.IE &&
ol.BrowserFeature.DEVICE_PIXEL_RATIO = goog.global.devicePixelRatio || 1;
/**
* True if the browser's Canvas implementation implements {get,set}LineDash.
* @type {boolean}
* @todo stability experimental
*/
ol.BrowserFeature.HAS_CANVAS_LINE_DASH = false;
/**
* True if browser supports Canvas.
* @const
@@ -90,7 +98,16 @@ ol.BrowserFeature.HAS_CANVAS = ol.ENABLE_CANVAS && (
try {
var canvas = /** @type {HTMLCanvasElement} */
(goog.dom.createElement(goog.dom.TagName.CANVAS));
return !goog.isNull(canvas.getContext('2d'));
var context = /** @type {CanvasRenderingContext2D} */
(canvas.getContext('2d'));
if (goog.isNull(context)) {
return false;
} else {
if (goog.isDef(context.setLineDash)) {
ol.BrowserFeature.HAS_CANVAS_LINE_DASH = true;
}
return true;
}
} catch (e) {
return false;
}