WebGL MapRenderer inicializaiton with a test (it may fail on computers without WebGL).
This commit is contained in:
@@ -19,4 +19,4 @@ goog.require("ol.geom.multipoint");
|
|||||||
goog.require('ol.layer.XYZ');
|
goog.require('ol.layer.XYZ');
|
||||||
goog.require('ol.layer.OSM');
|
goog.require('ol.layer.OSM');
|
||||||
goog.require('ol.renderer.TileLayerRenderer');
|
goog.require('ol.renderer.TileLayerRenderer');
|
||||||
|
goog.require('ol.renderer.WebGL');
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ goog.require('ol.renderer.MapRenderer');
|
|||||||
goog.require('ol.layer.Layer');
|
goog.require('ol.layer.Layer');
|
||||||
goog.require('ol.Loc');
|
goog.require('ol.Loc');
|
||||||
|
|
||||||
|
goog.require('goog.webgl');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialization of the native WebGL renderer (canvas, context, layers)
|
* Initialization of the native WebGL renderer (canvas, context, layers)
|
||||||
@@ -21,13 +22,13 @@ ol.renderer.WebGL = function(target) {
|
|||||||
* @private
|
* @private
|
||||||
* @type {!Element}
|
* @type {!Element}
|
||||||
*/
|
*/
|
||||||
this.canvas_ = goog.dom.createDom('canvas', 'ol-renderer-webgl-canvas'}); // Suppose to have: style: 'width:100%;height:100%;'
|
this.canvas_ = goog.dom.createDom('canvas', 'ol-renderer-webgl-canvas'); // Suppose to have: style: 'width:100%;height:100%;'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {WebGLRenderingContext}
|
* @type {WebGLRenderingContext}
|
||||||
*/
|
*/
|
||||||
this.gl_ = (canvas.getContext('experimental-webgl', {
|
this.gl_ = (this.canvas_.getContext('experimental-webgl', {
|
||||||
'alpha': false,
|
'alpha': false,
|
||||||
'depth': false,
|
'depth': false,
|
||||||
'antialias': true,
|
'antialias': true,
|
||||||
@@ -39,7 +40,7 @@ ol.renderer.WebGL = function(target) {
|
|||||||
|
|
||||||
goog.dom.append(target, this.canvas_);
|
goog.dom.append(target, this.canvas_);
|
||||||
|
|
||||||
var clearColor = opt_bgColor || [0, 0, 0];
|
var clearColor = [0, 0, 0]; // hardcoded background color
|
||||||
gl.clearColor(clearColor[0], clearColor[1], clearColor[2], 1);
|
gl.clearColor(clearColor[0], clearColor[1], clearColor[2], 1);
|
||||||
gl.disable(goog.webgl.DEPTH_TEST);
|
gl.disable(goog.webgl.DEPTH_TEST);
|
||||||
gl.disable(goog.webgl.SCISSOR_TEST);
|
gl.disable(goog.webgl.SCISSOR_TEST);
|
||||||
@@ -62,7 +63,7 @@ goog.inherits(ol.renderer.WebGL, ol.renderer.MapRenderer);
|
|||||||
* @returns {boolean} This renderer is supported.
|
* @returns {boolean} This renderer is supported.
|
||||||
*/
|
*/
|
||||||
ol.renderer.WebGL.isSupported = function() {
|
ol.renderer.WebGL.isSupported = function() {
|
||||||
return true;
|
return !goog.isNull( goog.dom.createDom('canvas').getContext('experimental-webgl') );
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -66,6 +66,8 @@
|
|||||||
<script type="text/javascript" src="spec/ol/layer/TileLayer.test.js"></script>
|
<script type="text/javascript" src="spec/ol/layer/TileLayer.test.js"></script>
|
||||||
<script type="text/javascript" src="spec/ol/layer/XYZ.test.js"></script>
|
<script type="text/javascript" src="spec/ol/layer/XYZ.test.js"></script>
|
||||||
<script type="text/javascript" src="spec/ol/Feature.test.js"></script>
|
<script type="text/javascript" src="spec/ol/Feature.test.js"></script>
|
||||||
|
<script type="text/javascript" src="spec/ol/renderer/WebGL.test.js"></script>
|
||||||
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
9
test/spec/ol/renderer/WebGL.test.js
Normal file
9
test/spec/ol/renderer/WebGL.test.js
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
describe("ol.renderer.WebGL", function() {
|
||||||
|
|
||||||
|
it("is supported in this environment", function() {
|
||||||
|
// this will not always be true, but for now we expect it to be so
|
||||||
|
expect(ol.renderer.WebGL.isSupported()).toBe(true);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
Reference in New Issue
Block a user