From a82e523f6bfdf7cab2a3e6605b50f18cd134341b Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Wed, 17 Oct 2012 17:36:07 +0200 Subject: [PATCH] Try multiple context ids to get a WebGL context --- src/ol/webgl/webgl.js | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/src/ol/webgl/webgl.js b/src/ol/webgl/webgl.js index 204c6ecb29..a3fae01859 100644 --- a/src/ol/webgl/webgl.js +++ b/src/ol/webgl/webgl.js @@ -2,6 +2,19 @@ goog.provide('ol.webgl'); goog.provide('ol.webgl.WebGLContextEventType'); +/** + * @const + * @private + * @type {Array.} + */ +ol.webgl.CONTEXT_IDS_ = [ + 'webgl', + 'webgl-experimental', + 'webkit-3d', + 'moz-webgl' +]; + + /** * @enum {string} */ @@ -17,7 +30,17 @@ ol.webgl.WebGLContextEventType = { * @return {WebGLRenderingContext} WebGL rendering context. */ ol.webgl.getContext = function(canvas, opt_attributes) { - return canvas.getContext('experimental-webgl', opt_attributes); + var context, i, ii = ol.webgl.CONTEXT_IDS_.length; + for (i = 0; i < ii; ++i) { + try { + context = canvas.getContext(ol.webgl.CONTEXT_IDS_[i], opt_attributes); + if (!goog.isNull(context)) { + return context; + } + } catch (e) { + } + } + return null; };