Try multiple context ids to get a WebGL context

This commit is contained in:
Tom Payne
2012-10-17 17:36:07 +02:00
parent 5011123228
commit a82e523f6b

View File

@@ -2,6 +2,19 @@ goog.provide('ol.webgl');
goog.provide('ol.webgl.WebGLContextEventType');
/**
* @const
* @private
* @type {Array.<string>}
*/
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;
};