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