goog.provide('ol.renderer.MapRenderer');
goog.require('goog.style');
goog.require('goog.math.Size');
/**
* @constructor
* @param {!Element} container
*/
ol.renderer.MapRenderer = function(container) {
/**
* @type !Element
* @protected
*/
this.container_ = container;
/**
* @type {goog.math.Size}
* @private
*/
this.containerSize_ = null;
/**
* @type {ol.Loc}
* @protected
*/
this.renderedCenter_;
/**
* @type {number}
* @protected
*/
this.renderedResolution_;
};
/**
* @return {goog.math.Size}
* @protected
*/
ol.renderer.MapRenderer.prototype.getContainerSize = function() {
// TODO: listen for resize and set this.constainerSize_ null
// https://github.com/openlayers/ol3/issues/2
if (goog.isNull(this.containerSize_)) {
this.containerSize_ = goog.style.getSize(this.container_);
}
return this.containerSize_;
};
/**
* @param {Array.
} layers
* @param {ol.Loc} center
* @param {number} resolution
* @param {boolean} animate
*/
ol.renderer.MapRenderer.prototype.draw = function(layers, center, resolution, animate) {
};
/**
* @return {number} The rendered resolution.
*/
ol.renderer.MapRenderer.prototype.getResolution = function() {
return this.renderedResolution_;
};
/**
* TODO: determine a closure friendly way to register map renderers.
* @type {Array}
* @private
*/
ol.renderer.MapRenderer.registry_ = [];
/**
* @param {Function} Renderer
*/
ol.renderer.MapRenderer.register = function(Renderer) {
ol.renderer.MapRenderer.registry_.push(Renderer);
};
/**
* @param {Array.} preferences List of preferred renderer types.
* @returns {Function} A renderer constructor.
*/
ol.renderer.MapRenderer.pickRendererType = function(preferences) {
// map of candidate renderer types to candidate renderers
var types = {};
function picker(Candidate) {
var supports = Candidate.isSupported();
if (supports) {
types[Candidate.getType()] = Candidate;
}
return supports;
}
var Candidates = goog.array.filter(ol.renderer.MapRenderer.registry_, picker);
// check to see if any preferred renderers are available
var Renderer;
for (var i=0, ii=preferences.length; i