Merge remote-tracking branch 'openlayers/master' into vector-api

This commit is contained in:
Tom Payne
2013-12-13 20:22:06 +01:00
39 changed files with 555 additions and 420 deletions

View File

@@ -1,5 +1,6 @@
goog.provide('ol.renderer.canvas.ImageLayer');
goog.require('goog.asserts');
goog.require('goog.events');
goog.require('goog.events.EventType');
goog.require('goog.vec.Mat4');
@@ -9,6 +10,7 @@ goog.require('ol.ViewHint');
goog.require('ol.layer.Image');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.source.Image');
goog.require('ol.vec.Mat4');
@@ -48,15 +50,6 @@ ol.renderer.canvas.ImageLayer.prototype.getImage = function() {
};
/**
* @protected
* @return {ol.layer.Image} Single image layer.
*/
ol.renderer.canvas.ImageLayer.prototype.getImageLayer = function() {
return /** @type {ol.layer.Image} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -77,8 +70,10 @@ ol.renderer.canvas.ImageLayer.prototype.prepareFrame =
var viewRotation = view2DState.rotation;
var image;
var imageLayer = this.getImageLayer();
var imageSource = imageLayer.getImageSource();
var imageLayer = this.getLayer();
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
var imageSource = imageLayer.getSource();
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
var hints = frameState.viewHints;

View File

@@ -137,10 +137,11 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) {
var layerStates = frameState.layerStates;
var layersArray = frameState.layersArray;
var viewResolution = frameState.view2DState.resolution;
var canvasLayerRenderer, i, ii, layer, layerState;
var i, ii, layer, layerRenderer, layerState;
for (i = 0, ii = layersArray.length; i < ii; ++i) {
layer = layersArray[i];
canvasLayerRenderer = this.getCanvasLayerRenderer(layer);
layerRenderer = this.getLayerRenderer(layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.canvas.Layer);
layerState = layerStates[goog.getUid(layer)];
if (!layerState.visible ||
layerState.sourceState != ol.source.State.READY ||
@@ -148,8 +149,8 @@ ol.renderer.canvas.Map.prototype.renderFrame = function(frameState) {
viewResolution < layerState.minResolution) {
continue;
}
canvasLayerRenderer.prepareFrame(frameState, layerState);
canvasLayerRenderer.composeFrame(frameState, layerState, context);
layerRenderer.prepareFrame(frameState, layerState);
layerRenderer.composeFrame(frameState, layerState, context);
}
this.dispatchComposeEvent_(ol.render.EventType.POSTCOMPOSE, frameState);

View File

@@ -18,6 +18,7 @@ goog.require('ol.extent');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.canvas.Layer');
goog.require('ol.source.Tile');
goog.require('ol.vec.Mat4');
@@ -86,15 +87,6 @@ ol.renderer.canvas.TileLayer.prototype.getImage = function() {
};
/**
* @protected
* @return {ol.layer.Tile} Tile layer.
*/
ol.renderer.canvas.TileLayer.prototype.getTileLayer = function() {
return /** @type {ol.layer.Tile} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -175,8 +167,10 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame =
var view2DState = frameState.view2DState;
var projection = view2DState.projection;
var tileLayer = this.getTileLayer();
var tileSource = tileLayer.getTileSource();
var tileLayer = this.getLayer();
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
var tileSource = tileLayer.getSource();
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
var tileGrid = tileSource.getTileGrid();
if (goog.isNull(tileGrid)) {
tileGrid = ol.tilegrid.getForProjection(projection);

View File

@@ -1,5 +1,6 @@
goog.provide('ol.renderer.dom.ImageLayer');
goog.require('goog.asserts');
goog.require('goog.dom');
goog.require('goog.dom.TagName');
goog.require('goog.events');
@@ -11,6 +12,7 @@ goog.require('ol.ViewHint');
goog.require('ol.dom');
goog.require('ol.layer.Image');
goog.require('ol.renderer.dom.Layer');
goog.require('ol.source.Image');
goog.require('ol.vec.Mat4');
@@ -36,7 +38,7 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) {
/**
* @private
* @type {goog.vec.Mat4.AnyType}
* @type {goog.vec.Mat4.Number}
*/
this.transform_ = goog.vec.Mat4.createNumberIdentity();
@@ -44,15 +46,6 @@ ol.renderer.dom.ImageLayer = function(mapRenderer, imageLayer) {
goog.inherits(ol.renderer.dom.ImageLayer, ol.renderer.dom.Layer);
/**
* @protected
* @return {ol.layer.Image} Image layer.
*/
ol.renderer.dom.ImageLayer.prototype.getImageLayer = function() {
return /** @type {ol.layer.Image} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -65,8 +58,10 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame =
var viewRotation = view2DState.rotation;
var image = this.image_;
var imageLayer = this.getImageLayer();
var imageSource = imageLayer.getImageSource();
var imageLayer = this.getLayer();
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
var imageSource = imageLayer.getSource();
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
var hints = frameState.viewHints;
@@ -115,7 +110,7 @@ ol.renderer.dom.ImageLayer.prototype.prepareFrame =
/**
* @param {goog.vec.Mat4.AnyType} transform Transform.
* @param {goog.vec.Mat4.Number} transform Transform.
* @private
*/
ol.renderer.dom.ImageLayer.prototype.setTransform_ = function(transform) {

View File

@@ -9,6 +9,7 @@ goog.require('ol.layer.Image');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.Map');
goog.require('ol.renderer.dom.ImageLayer');
goog.require('ol.renderer.dom.Layer');
goog.require('ol.renderer.dom.TileLayer');
goog.require('ol.source.State');
@@ -93,8 +94,8 @@ ol.renderer.dom.Map.prototype.renderFrame = function(frameState) {
var layerKey;
for (layerKey in this.getLayerRenderers()) {
if (!(layerKey in layerStates)) {
layerRenderer = /** @type {ol.renderer.dom.Layer} */
(this.getLayerRendererByKey(layerKey));
layerRenderer = this.getLayerRendererByKey(layerKey);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.dom.Layer);
goog.dom.removeNode(layerRenderer.getTarget());
}
}

View File

@@ -20,6 +20,7 @@ goog.require('ol.dom');
goog.require('ol.extent');
goog.require('ol.layer.Tile');
goog.require('ol.renderer.dom.Layer');
goog.require('ol.source.Tile');
goog.require('ol.tilegrid.TileGrid');
goog.require('ol.vec.Mat4');
@@ -66,15 +67,6 @@ ol.renderer.dom.TileLayer = function(mapRenderer, tileLayer) {
goog.inherits(ol.renderer.dom.TileLayer, ol.renderer.dom.Layer);
/**
* @protected
* @return {ol.layer.Tile} Tile layer.
*/
ol.renderer.dom.TileLayer.prototype.getTileLayer = function() {
return /** @type {ol.layer.Tile} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -92,8 +84,10 @@ ol.renderer.dom.TileLayer.prototype.prepareFrame =
var view2DState = frameState.view2DState;
var projection = view2DState.projection;
var tileLayer = this.getTileLayer();
var tileSource = tileLayer.getTileSource();
var tileLayer = this.getLayer();
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
var tileSource = tileLayer.getSource();
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
var tileGrid = tileSource.getTileGrid();
if (goog.isNull(tileGrid)) {
tileGrid = ol.tilegrid.getForProjection(projection);
@@ -309,7 +303,7 @@ ol.renderer.dom.TileLayerZ_ = function(tileGrid, tileCoordOrigin) {
/**
* @private
* @type {goog.vec.Mat4.AnyType}
* @type {goog.vec.Mat4.Number}
*/
this.transform_ = goog.vec.Mat4.createNumberIdentity();
@@ -418,7 +412,7 @@ ol.renderer.dom.TileLayerZ_.prototype.removeTilesOutsideExtent =
/**
* @param {goog.vec.Mat4.AnyType} transform Transform.
* @param {goog.vec.Mat4.Number} transform Transform.
*/
ol.renderer.dom.TileLayerZ_.prototype.setTransform = function(transform) {
if (!ol.vec.Mat4.equals2D(transform, this.transform_)) {

View File

@@ -20,6 +20,8 @@ goog.require('ol.source.Tile');
* @extends {goog.Disposable}
* @param {ol.renderer.Map} mapRenderer Map renderer.
* @param {ol.layer.Layer} layer Layer.
* @suppress {checkStructDictInheritance}
* @struct
*/
ol.renderer.Layer = function(mapRenderer, layer) {

View File

@@ -17,6 +17,8 @@ goog.require('ol.vec.Mat4');
* @extends {goog.Disposable}
* @param {Element} container Container.
* @param {ol.Map} map Map.
* @suppress {checkStructDictInheritance}
* @struct
*/
ol.renderer.Map = function(container, map) {

View File

@@ -12,6 +12,7 @@ goog.require('ol.ImageState');
goog.require('ol.ViewHint');
goog.require('ol.layer.Image');
goog.require('ol.renderer.webgl.Layer');
goog.require('ol.source.Image');
@@ -71,15 +72,6 @@ ol.renderer.webgl.ImageLayer.prototype.createTexture_ = function(image) {
};
/**
* @protected
* @return {ol.layer.Image} Tile layer.
*/
ol.renderer.webgl.ImageLayer.prototype.getImageLayer = function() {
return /** @type {ol.layer.Image} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -95,8 +87,10 @@ ol.renderer.webgl.ImageLayer.prototype.prepareFrame =
var image = this.image_;
var texture = this.texture;
var imageLayer = this.getImageLayer();
var imageSource = imageLayer.getImageSource();
var imageLayer = this.getLayer();
goog.asserts.assertInstanceof(imageLayer, ol.layer.Image);
var imageSource = imageLayer.getSource();
goog.asserts.assertInstanceof(imageSource, ol.source.Image);
var hints = frameState.viewHints;

View File

@@ -363,17 +363,6 @@ ol.renderer.webgl.Map.prototype.getTileTextureQueue = function() {
};
/**
* @param {ol.layer.Layer} layer Layer.
* @return {ol.renderer.webgl.Layer} WebGL layer renderer.
*/
ol.renderer.webgl.Map.prototype.getWebGLLayerRenderer = function(layer) {
var layerRenderer = this.getLayerRenderer(layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
return /** @type {ol.renderer.webgl.Layer} */ (layerRenderer);
};
/**
* @param {goog.events.Event} event Event.
* @protected
@@ -482,7 +471,8 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
for (i = 0, ii = layersToDraw.length; i < ii; ++i) {
layer = layersToDraw[i];
layerRenderer = this.getWebGLLayerRenderer(layer);
layerRenderer = this.getLayerRenderer(layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
layerState = frameState.layerStates[goog.getUid(layer)];
layerRenderer.prepareFrame(frameState, layerState);
}
@@ -505,7 +495,8 @@ ol.renderer.webgl.Map.prototype.renderFrame = function(frameState) {
for (i = 0, ii = layersToDraw.length; i < ii; ++i) {
layer = layersToDraw[i];
layerState = frameState.layerStates[goog.getUid(layer)];
layerRenderer = this.getWebGLLayerRenderer(layer);
layerRenderer = this.getLayerRenderer(layer);
goog.asserts.assertInstanceof(layerRenderer, ol.renderer.webgl.Layer);
layerRenderer.composeFrame(frameState, layerState, context);
}

View File

@@ -4,6 +4,7 @@
goog.provide('ol.renderer.webgl.TileLayer');
goog.require('goog.array');
goog.require('goog.asserts');
goog.require('goog.object');
goog.require('goog.vec.Vec4');
goog.require('goog.webgl');
@@ -15,6 +16,7 @@ goog.require('ol.layer.Tile');
goog.require('ol.math');
goog.require('ol.renderer.webgl.Layer');
goog.require('ol.renderer.webgl.tilelayer.shader');
goog.require('ol.source.Tile');
goog.require('ol.structs.Buffer');
goog.require('ol.vec.Mat4');
@@ -93,15 +95,6 @@ ol.renderer.webgl.TileLayer.prototype.disposeInternal = function() {
};
/**
* @protected
* @return {ol.layer.Tile} Tile layer.
*/
ol.renderer.webgl.TileLayer.prototype.getTileLayer = function() {
return /** @type {ol.layer.Tile} */ (this.getLayer());
};
/**
* @inheritDoc
*/
@@ -124,8 +117,10 @@ ol.renderer.webgl.TileLayer.prototype.prepareFrame =
var view2DState = frameState.view2DState;
var projection = view2DState.projection;
var tileLayer = this.getTileLayer();
var tileSource = tileLayer.getTileSource();
var tileLayer = this.getLayer();
goog.asserts.assertInstanceof(tileLayer, ol.layer.Tile);
var tileSource = tileLayer.getSource();
goog.asserts.assertInstanceof(tileSource, ol.source.Tile);
var tileGrid = tileSource.getTileGrid();
if (goog.isNull(tileGrid)) {
tileGrid = ol.tilegrid.getForProjection(projection);