diff --git a/externs/olx.js b/externs/olx.js index 81bdc6ccff..8bdc71b0d1 100644 --- a/externs/olx.js +++ b/externs/olx.js @@ -108,7 +108,7 @@ olx.GeolocationOptions.prototype.projection; * layers: (Array.|ol.Collection|undefined), * ol3Logo: (boolean|undefined), * overlays: (ol.Collection|Array.|undefined), - * renderer: (ol.RendererHint|Array.|string|undefined), + * renderer: (ol.RendererType|Array.|string|undefined), * target: (Element|string|undefined), * view: (ol.IView|undefined)}} * @todo api @@ -181,7 +181,7 @@ olx.MapOptions.prototype.overlays; /** * Renderer. - * @type {ol.RendererHint|Array.|string|undefined} + * @type {ol.RendererType|Array.|string|undefined} */ olx.MapOptions.prototype.renderer; diff --git a/src/ol/map.js b/src/ol/map.js index 390f1322a8..29719fd474 100644 --- a/src/ol/map.js +++ b/src/ol/map.js @@ -42,6 +42,7 @@ goog.require('ol.ObjectEventType'); goog.require('ol.Pixel'); goog.require('ol.PostRenderFunction'); goog.require('ol.PreRenderFunction'); +goog.require('ol.RendererType'); goog.require('ol.Size'); goog.require('ol.Tile'); goog.require('ol.TileQueue'); @@ -99,24 +100,12 @@ ol.OL3_LOGO_URL = 'data:image/png;base64,' + /** - * Available renderers: `'canvas'`, `'dom'` or `'webgl'`. - * @enum {string} - * @todo api + * @type {Array.} */ -ol.RendererHint = { - CANVAS: 'canvas', - DOM: 'dom', - WEBGL: 'webgl' -}; - - -/** - * @type {Array.} - */ -ol.DEFAULT_RENDERER_HINTS = [ - ol.RendererHint.CANVAS, - ol.RendererHint.WEBGL, - ol.RendererHint.DOM +ol.DEFAULT_RENDERER_TYPES = [ + ol.RendererType.CANVAS, + ol.RendererType.WEBGL, + ol.RendererType.DOM ]; @@ -726,6 +715,15 @@ ol.Map.prototype.getPixelFromCoordinate = function(coordinate) { }; +/** + * Get the map renderer. + * @return {ol.renderer.Map} Renderer + */ +ol.Map.prototype.getRenderer = function() { + return this.renderer_; +}; + + /** * Get the size of this map. * @return {ol.Size|undefined} The size in pixels of the map in the DOM. @@ -1423,36 +1421,36 @@ ol.Map.createOptionsInternal = function(options) { var rendererConstructor = ol.renderer.Map; /** - * @type {Array.} + * @type {Array.} */ - var rendererHints; + var rendererTypes; if (goog.isDef(options.renderer)) { if (goog.isArray(options.renderer)) { - rendererHints = options.renderer; + rendererTypes = options.renderer; } else if (goog.isString(options.renderer)) { - rendererHints = [options.renderer]; + rendererTypes = [options.renderer]; } else { goog.asserts.fail('Incorrect format for renderer option'); } } else { - rendererHints = ol.DEFAULT_RENDERER_HINTS; + rendererTypes = ol.DEFAULT_RENDERER_TYPES; } var i, ii; - for (i = 0, ii = rendererHints.length; i < ii; ++i) { - /** @type {ol.RendererHint} */ - var rendererHint = rendererHints[i]; - if (ol.ENABLE_CANVAS && rendererHint == ol.RendererHint.CANVAS) { + for (i = 0, ii = rendererTypes.length; i < ii; ++i) { + /** @type {ol.RendererType} */ + var rendererType = rendererTypes[i]; + if (ol.ENABLE_CANVAS && rendererType == ol.RendererType.CANVAS) { if (ol.BrowserFeature.HAS_CANVAS) { rendererConstructor = ol.renderer.canvas.Map; break; } - } else if (ol.ENABLE_DOM && rendererHint == ol.RendererHint.DOM) { + } else if (ol.ENABLE_DOM && rendererType == ol.RendererType.DOM) { if (ol.BrowserFeature.HAS_DOM) { rendererConstructor = ol.renderer.dom.Map; break; } - } else if (ol.ENABLE_WEBGL && rendererHint == ol.RendererHint.WEBGL) { + } else if (ol.ENABLE_WEBGL && rendererType == ol.RendererType.WEBGL) { if (ol.BrowserFeature.HAS_WEBGL) { rendererConstructor = ol.renderer.webgl.Map; break; diff --git a/src/ol/renderer/canvas/canvasmaprenderer.js b/src/ol/renderer/canvas/canvasmaprenderer.js index fcde3dfee3..c262d394e9 100644 --- a/src/ol/renderer/canvas/canvasmaprenderer.js +++ b/src/ol/renderer/canvas/canvasmaprenderer.js @@ -7,6 +7,7 @@ goog.require('goog.dom'); goog.require('goog.style'); goog.require('goog.vec.Mat4'); goog.require('ol'); +goog.require('ol.RendererType'); goog.require('ol.css'); goog.require('ol.dom'); goog.require('ol.layer.Image'); @@ -126,6 +127,14 @@ ol.renderer.canvas.Map.prototype.getCanvasLayerRenderer = function(layer) { }; +/** + * @inheritDoc + */ +ol.renderer.canvas.Map.prototype.getType = function() { + return ol.RendererType.CANVAS; +}; + + /** * @inheritDoc */ diff --git a/src/ol/renderer/dom/dommaprenderer.js b/src/ol/renderer/dom/dommaprenderer.js index c055d038e1..0d2e72b47b 100644 --- a/src/ol/renderer/dom/dommaprenderer.js +++ b/src/ol/renderer/dom/dommaprenderer.js @@ -6,6 +6,7 @@ goog.require('goog.dom.TagName'); goog.require('goog.functions'); goog.require('goog.style'); goog.require('ol'); +goog.require('ol.RendererType'); goog.require('ol.css'); goog.require('ol.layer.Image'); goog.require('ol.layer.Tile'); @@ -75,6 +76,14 @@ ol.renderer.dom.Map.prototype.createLayerRenderer = function(layer) { }; +/** + * @inheritDoc + */ +ol.renderer.dom.Map.prototype.getType = function() { + return ol.RendererType.DOM; +}; + + /** * @inheritDoc */ diff --git a/src/ol/renderer/maprenderer.js b/src/ol/renderer/maprenderer.js index 193ca1ac1c..9308533ff1 100644 --- a/src/ol/renderer/maprenderer.js +++ b/src/ol/renderer/maprenderer.js @@ -1,3 +1,4 @@ +goog.provide('ol.RendererType'); goog.provide('ol.renderer.Map'); goog.require('goog.Disposable'); @@ -11,6 +12,18 @@ goog.require('ol.style.IconImageCache'); goog.require('ol.vec.Mat4'); +/** + * Available renderers: `'canvas'`, `'dom'` or `'webgl'`. + * @enum {string} + * @todo api + */ +ol.RendererType = { + CANVAS: 'canvas', + DOM: 'dom', + WEBGL: 'webgl' +}; + + /** * @constructor @@ -163,6 +176,12 @@ ol.renderer.Map.prototype.getMap = function() { }; +/** + * @return {string} Type + */ +ol.renderer.Map.prototype.getType = goog.abstractMethod; + + /** * @param {string} layerKey Layer key. * @return {ol.renderer.Layer} Layer renderer. diff --git a/src/ol/renderer/webgl/webglmaprenderer.js b/src/ol/renderer/webgl/webglmaprenderer.js index 04f0eff835..2b8074ee29 100644 --- a/src/ol/renderer/webgl/webglmaprenderer.js +++ b/src/ol/renderer/webgl/webglmaprenderer.js @@ -13,6 +13,7 @@ goog.require('goog.object'); goog.require('goog.style'); goog.require('goog.webgl'); goog.require('ol'); +goog.require('ol.RendererType'); goog.require('ol.Tile'); goog.require('ol.css'); goog.require('ol.dom'); @@ -346,6 +347,14 @@ ol.renderer.webgl.Map.prototype.getTileTextureQueue = function() { }; +/** + * @inheritDoc + */ +ol.renderer.webgl.Map.prototype.getType = function() { + return ol.RendererType.WEBGL; +}; + + /** * @param {goog.events.Event} event Event. * @protected