Merge pull request #1828 from twpayne/frame-state-extern

Prevent renaming of frameState properties
This commit is contained in:
Tom Payne
2014-03-11 14:21:54 +01:00
18 changed files with 148 additions and 103 deletions

View File

@@ -36,6 +36,85 @@ oli.DrawEvent;
oli.DrawEvent.prototype.feature;
/** @interface */
oli.FrameState;
/** @type {boolean} */
oli.FrameState.prototype.animate;
/** @type {Object.<string, ol.Attribution>} */
oli.FrameState.prototype.attributions;
/** @type {goog.vec.Mat4.Number} */
oli.FrameState.prototype.coordinateToPixelMatrix;
/** @type {(null|ol.Extent)} */
oli.FrameState.prototype.extent;
/** @type {ol.Coordinate} */
oli.FrameState.prototype.focus;
/** @type {number} */
oli.FrameState.prototype.index;
/** @type {Array.<ol.layer.Layer>} */
oli.FrameState.prototype.layersArray;
/** @type {Object.<number, ol.layer.LayerState>} */
oli.FrameState.prototype.layerStates;
/** @type {Object.<string, string>} */
oli.FrameState.prototype.logos;
/** @type {number} */
oli.FrameState.prototype.pixelRatio;
/** @type {goog.vec.Mat4.Number} */
oli.FrameState.prototype.pixelToCoordinateMatrix;
/** @type {Array.<ol.PostRenderFunction>} */
oli.FrameState.prototype.postRenderFunctions;
/** @type {ol.Size} */
oli.FrameState.prototype.size;
/** @type {ol.TileQueue} */
oli.FrameState.prototype.tileQueue;
/** @type {number} */
oli.FrameState.prototype.time;
/** @type {Object.<string, Object.<string, ol.TileRange>>} */
oli.FrameState.prototype.usedTiles;
/** @type {oli.View2DState} */
oli.FrameState.prototype.view2DState;
/** @type {Array.<number>} */
oli.FrameState.prototype.viewHints;
/** @type {Object.<string, Object.<string, boolean>>} */
oli.FrameState.prototype.wantedTiles;
/** @interface */
oli.ObjectEvent;
@@ -63,6 +142,27 @@ oli.MapBrowserEvent.prototype.pixel;
/** @interface */
oli.View2DState;
/** @type {ol.Coordinate} */
oli.View2DState.prototype.center;
/** @type {ol.proj.Projection} */
oli.View2DState.prototype.projection;
/** @type {number} */
oli.View2DState.prototype.resolution;
/** @type {number} */
oli.View2DState.prototype.rotation;
/**
* @interface
*/
@@ -98,7 +198,7 @@ oli.render.Event = function() {};
oli.render.Event.prototype.context;
/** @type {ol.FrameState|undefined} */
/** @type {oli.FrameState|undefined} */
oli.render.Event.prototype.frameState;

View File

@@ -21,7 +21,7 @@ ol.animation.bounce = function(options) {
return (
/**
* @param {ol.Map} map Map.
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
*/
function(map, frameState) {
if (frameState.time < start) {
@@ -58,7 +58,7 @@ ol.animation.pan = function(options) {
return (
/**
* @param {ol.Map} map Map.
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
*/
function(map, frameState) {
if (frameState.time < start) {
@@ -96,7 +96,7 @@ ol.animation.rotate = function(options) {
return (
/**
* @param {ol.Map} map Map.
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
*/
function(map, frameState) {
if (frameState.time < start) {
@@ -132,7 +132,7 @@ ol.animation.zoom = function(options) {
return (
/**
* @param {ol.Map} map Map.
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
*/
function(map, frameState) {
if (frameState.time < start) {

View File

@@ -8,7 +8,6 @@ goog.require('goog.dom.TagName');
goog.require('goog.object');
goog.require('goog.style');
goog.require('ol.Attribution');
goog.require('ol.FrameState');
goog.require('ol.control.Control');
goog.require('ol.css');
@@ -68,7 +67,7 @@ goog.inherits(ol.control.Attribution, ol.control.Control);
/**
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
* @return {Array.<Object.<string, ol.Attribution>>} Attributions.
*/
ol.control.Attribution.prototype.getSourceAttributions =
@@ -120,7 +119,7 @@ ol.control.Attribution.prototype.handleMapPostrender = function(mapEvent) {
/**
* @private
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
*/
ol.control.Attribution.prototype.updateElement_ = function(frameState) {

View File

@@ -4,7 +4,6 @@ goog.require('goog.dom');
goog.require('goog.dom.TagName');
goog.require('goog.object');
goog.require('goog.style');
goog.require('ol.FrameState');
goog.require('ol.control.Control');
goog.require('ol.css');
@@ -66,7 +65,7 @@ ol.control.Logo.prototype.handleMapPostrender = function(mapEvent) {
/**
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
* @private
*/
ol.control.Logo.prototype.updateElement_ = function(frameState) {

View File

@@ -11,7 +11,6 @@ goog.require('goog.math');
goog.require('goog.style');
goog.require('ol.Object');
goog.require('ol.TransformFunction');
goog.require('ol.View2DState');
goog.require('ol.control.Control');
goog.require('ol.css');
goog.require('ol.proj');
@@ -79,7 +78,7 @@ ol.control.ScaleLine = function(opt_options) {
/**
* @private
* @type {?ol.View2DState}
* @type {?oli.View2DState}
*/
this.view2DState_ = null;

View File

@@ -1,52 +1,17 @@
// FIXME add view3DState
// FIXME factor out common code between usedTiles and wantedTiles
goog.provide('ol.FrameState');
goog.provide('ol.PostRenderFunction');
goog.provide('ol.PreRenderFunction');
goog.require('goog.vec.Mat4');
goog.require('ol.Attribution');
goog.require('ol.Extent');
goog.require('ol.Size');
goog.require('ol.TileQueue');
goog.require('ol.TileRange');
goog.require('ol.View2DState');
goog.require('ol.layer.Layer');
goog.require('ol.layer.LayerState');
/**
* @typedef {{animate: boolean,
* attributions: Object.<string, ol.Attribution>,
* coordinateToPixelMatrix: goog.vec.Mat4.Number,
* extent: (null|ol.Extent),
* focus: ol.Coordinate,
* index: number,
* layersArray: Array.<ol.layer.Layer>,
* layerStates: Object.<number, ol.layer.LayerState>,
* logos: Object.<string, string>,
* pixelRatio: number,
* pixelToCoordinateMatrix: goog.vec.Mat4.Number,
* postRenderFunctions: Array.<ol.PostRenderFunction>,
* size: ol.Size,
* tileQueue: ol.TileQueue,
* time: number,
* usedTiles: Object.<string, Object.<string, ol.TileRange>>,
* view2DState: ol.View2DState,
* viewHints: Array.<number>,
* wantedTiles: Object.<string, Object.<string, boolean>>}}
*/
ol.FrameState;
/**
* @typedef {function(ol.Map, ?ol.FrameState): boolean}
* @typedef {function(ol.Map, ?oli.FrameState): boolean}
*/
ol.PostRenderFunction;
/**
* @typedef {function(ol.Map, ?ol.FrameState): boolean}
* @typedef {function(ol.Map, ?oli.FrameState): boolean}
*/
ol.PreRenderFunction;

View File

@@ -1,18 +1,8 @@
goog.provide('ol.IView2D');
goog.provide('ol.View2DState');
goog.require('ol.Coordinate');
/**
* @typedef {{center: ol.Coordinate,
* projection: ol.proj.Projection,
* resolution: number,
* rotation: number}}
*/
ol.View2DState;
/**
* Interface for views.
@@ -55,7 +45,7 @@ ol.IView2D.prototype.getRotation = function() {
/**
* @return {ol.View2DState} View2D state.
* @return {oli.View2DState} View2D state.
*/
ol.IView2D.prototype.getView2DState = function() {
};

View File

@@ -31,7 +31,6 @@ goog.require('goog.vec.Mat4');
goog.require('ol.BrowserFeature');
goog.require('ol.Collection');
goog.require('ol.CollectionEventType');
goog.require('ol.FrameState');
goog.require('ol.IView');
goog.require('ol.MapBrowserEvent');
goog.require('ol.MapBrowserEvent.EventType');
@@ -212,7 +211,7 @@ ol.Map = function(options) {
/**
* @private
* @type {?ol.FrameState}
* @type {?oli.FrameState}
*/
this.frameState_ = null;
@@ -1152,7 +1151,7 @@ ol.Map.prototype.renderFrame_ = function(time) {
var size = this.getSize();
var view = this.getView();
var view2D = goog.isDef(view) ? this.getView().getView2D() : undefined;
/** @type {?ol.FrameState} */
/** @type {?oli.FrameState} */
var frameState = null;
if (goog.isDef(size) && hasArea(size) &&
goog.isDef(view2D) && view2D.isDef()) {
@@ -1167,7 +1166,7 @@ ol.Map.prototype.renderFrame_ = function(time) {
layerStates[goog.getUid(layer)] = layerStatesArray[i];
}
view2DState = view2D.getView2DState();
frameState = {
frameState = /** @type {oli.FrameState} */ ({
animate: false,
attributions: {},
coordinateToPixelMatrix: this.coordinateToPixelMatrix_,
@@ -1187,7 +1186,7 @@ ol.Map.prototype.renderFrame_ = function(time) {
view2DState: view2DState,
viewHints: viewHints,
wantedTiles: {}
};
});
if (this.ol3Logo_) {
frameState.logos[ol.OL3_LOGO_URL] = ol.OL3_URL;
}

View File

@@ -10,7 +10,6 @@ goog.require('goog.events.EventTarget');
goog.require('goog.events.EventType');
goog.require('goog.object');
goog.require('ol.Coordinate');
goog.require('ol.FrameState');
goog.require('ol.MapEvent');
goog.require('ol.Pixel');
@@ -23,7 +22,7 @@ goog.require('ol.Pixel');
* @param {string} type Event type.
* @param {ol.Map} map Map.
* @param {goog.events.BrowserEvent} browserEvent Browser event.
* @param {?ol.FrameState=} opt_frameState Frame state.
* @param {?oli.FrameState=} opt_frameState Frame state.
* @todo stability experimental
*/
ol.MapBrowserEvent = function(type, map, browserEvent, opt_frameState) {

View File

@@ -2,7 +2,6 @@ goog.provide('ol.MapEvent');
goog.provide('ol.MapEventType');
goog.require('goog.events.Event');
goog.require('ol.FrameState');
/**
@@ -20,7 +19,7 @@ ol.MapEventType = {
* @extends {goog.events.Event}
* @param {string} type Event type.
* @param {ol.Map} map Map.
* @param {?ol.FrameState=} opt_frameState Frame state.
* @param {?oli.FrameState=} opt_frameState Frame state.
*/
ol.MapEvent = function(type, map, opt_frameState) {
@@ -32,7 +31,7 @@ ol.MapEvent = function(type, map, opt_frameState) {
this.map = map;
/**
* @type {?ol.FrameState}
* @type {?oli.FrameState}
*/
this.frameState = goog.isDef(opt_frameState) ? opt_frameState : null;

View File

@@ -23,7 +23,7 @@ ol.render.EventType = {
* @param {ol.render.EventType} type Type.
* @param {Object=} opt_target Target.
* @param {ol.render.IVectorContext=} opt_vectorContext Vector context.
* @param {ol.FrameState=} opt_frameState Frame state.
* @param {oli.FrameState=} opt_frameState Frame state.
* @param {?CanvasRenderingContext2D=} opt_context Context.
* @param {?ol.webgl.Context=} opt_glContext WebGL Context.
*/
@@ -39,7 +39,7 @@ ol.render.Event = function(
this.vectorContext = opt_vectorContext;
/**
* @type {ol.FrameState|undefined}
* @type {oli.FrameState|undefined}
*/
this.frameState = opt_frameState;

View File

@@ -31,7 +31,7 @@ goog.inherits(ol.renderer.canvas.Layer, ol.renderer.Layer);
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {ol.layer.LayerState} layerState Layer state.
* @param {CanvasRenderingContext2D} context Context.
*/
@@ -75,7 +75,7 @@ ol.renderer.canvas.Layer.prototype.composeFrame =
/**
* @param {ol.render.EventType} type Event type.
* @param {CanvasRenderingContext2D} context Context.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {goog.vec.Mat4.Number=} opt_transform Transform.
* @private
*/
@@ -98,7 +98,7 @@ ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ =
/**
* @param {CanvasRenderingContext2D} context Context.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {goog.vec.Mat4.Number=} opt_transform Transform.
* @protected
*/
@@ -111,7 +111,7 @@ ol.renderer.canvas.Layer.prototype.dispatchPostComposeEvent =
/**
* @param {CanvasRenderingContext2D} context Context.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {goog.vec.Mat4.Number=} opt_transform Transform.
* @protected
*/
@@ -124,7 +124,7 @@ ol.renderer.canvas.Layer.prototype.dispatchPreComposeEvent =
/**
* @param {CanvasRenderingContext2D} context Context.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {goog.vec.Mat4.Number=} opt_transform Transform.
* @protected
*/
@@ -148,7 +148,7 @@ ol.renderer.canvas.Layer.prototype.getImageTransform = goog.abstractMethod;
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @protected
* @return {!goog.vec.Mat4.Number} Transform.
*/

View File

@@ -87,7 +87,7 @@ ol.renderer.canvas.Map.prototype.createLayerRenderer = function(layer) {
/**
* @param {ol.render.EventType} type Event type.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @private
*/
ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ =

View File

@@ -1,7 +1,6 @@
goog.provide('ol.renderer.Layer');
goog.require('goog.Disposable');
goog.require('ol.FrameState');
goog.require('ol.Image');
goog.require('ol.ImageState');
goog.require('ol.Tile');
@@ -46,7 +45,7 @@ goog.inherits(ol.renderer.Layer, goog.Disposable);
/**
* @param {ol.Coordinate} coordinate Coordinate.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature
* callback.
* @param {S} thisArg Value to use as `this` when executing `callback`.
@@ -97,7 +96,7 @@ ol.renderer.Layer.prototype.handleImageChange = function(event) {
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {ol.layer.LayerState} layerState Layer state.
*/
ol.renderer.Layer.prototype.prepareFrame = goog.abstractMethod;
@@ -115,7 +114,7 @@ ol.renderer.Layer.prototype.renderIfReadyAndVisible = function() {
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {ol.source.Tile} tileSource Tile source.
* @protected
*/
@@ -127,7 +126,7 @@ ol.renderer.Layer.prototype.scheduleExpireCache =
/**
* @param {ol.source.Tile} tileSource Tile source.
* @param {ol.Map} map Map.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
*/
function(tileSource, map, frameState) {
var tileSourceKey = goog.getUid(tileSource).toString();
@@ -156,7 +155,7 @@ ol.renderer.Layer.prototype.updateAttributions =
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {ol.source.Source} source Source.
* @protected
*/
@@ -242,7 +241,7 @@ ol.renderer.Layer.prototype.snapCenterToPixel =
* - registers idle tiles in frameState.wantedTiles so that they are not
* discarded by the tile queue
* - enqueues missing tiles
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {ol.source.Tile} tileSource Tile source.
* @param {ol.tilegrid.TileGrid} tileGrid Tile grid.
* @param {number} pixelRatio Pixel ratio.

View File

@@ -5,7 +5,6 @@ goog.require('goog.asserts');
goog.require('goog.dispose');
goog.require('goog.object');
goog.require('goog.vec.Mat4');
goog.require('ol.FrameState');
goog.require('ol.layer.Layer');
goog.require('ol.renderer.Layer');
goog.require('ol.style.IconImageCache');
@@ -42,7 +41,7 @@ goog.inherits(ol.renderer.Map, goog.Disposable);
/**
* @param {ol.FrameState} frameState FrameState.
* @param {oli.FrameState} frameState FrameState.
* @protected
*/
ol.renderer.Map.prototype.calculateMatrices2D = function(frameState) {
@@ -83,7 +82,7 @@ ol.renderer.Map.prototype.disposeInternal = function() {
/**
* @param {ol.Coordinate} coordinate Coordinate.
* @param {ol.FrameState} frameState FrameState.
* @param {oli.FrameState} frameState FrameState.
* @param {function(this: S, ol.Feature, ol.layer.Layer): T} callback Feature
* callback.
* @param {S} thisArg Value to use as `this` when executing `callback`.
@@ -175,14 +174,14 @@ ol.renderer.Map.prototype.removeLayerRendererByKey_ = function(layerKey) {
/**
* Render.
* @param {?ol.FrameState} frameState Frame state.
* @param {?oli.FrameState} frameState Frame state.
*/
ol.renderer.Map.prototype.renderFrame = goog.nullFunction;
/**
* @param {ol.Map} map Map.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @private
*/
ol.renderer.Map.prototype.removeUnusedLayerRenderers_ =
@@ -197,14 +196,14 @@ ol.renderer.Map.prototype.removeUnusedLayerRenderers_ =
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @protected
*/
ol.renderer.Map.prototype.scheduleExpireIconCache = function(frameState) {
frameState.postRenderFunctions.push(
/**
* @param {ol.Map} map Map.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
*/
function(map, frameState) {
ol.style.IconImageCache.getInstance().expire();
@@ -213,7 +212,7 @@ ol.renderer.Map.prototype.scheduleExpireIconCache = function(frameState) {
/**
* @param {!ol.FrameState} frameState Frame state.
* @param {!oli.FrameState} frameState Frame state.
* @protected
*/
ol.renderer.Map.prototype.scheduleRemoveUnusedLayerRenderers =

View File

@@ -2,7 +2,6 @@ goog.provide('ol.renderer.webgl.Layer');
goog.require('goog.vec.Mat4');
goog.require('goog.webgl');
goog.require('ol.FrameState');
goog.require('ol.color.Matrix');
goog.require('ol.layer.Layer');
goog.require('ol.render.Event');
@@ -89,7 +88,7 @@ goog.inherits(ol.renderer.webgl.Layer, ol.renderer.Layer);
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {number} framebufferDimension Framebuffer dimension.
* @protected
*/
@@ -143,7 +142,7 @@ ol.renderer.webgl.Layer.prototype.bindFramebuffer =
/**
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @param {ol.layer.LayerState} layerState Layer state.
* @param {ol.webgl.Context} context Context.
*/
@@ -231,7 +230,7 @@ ol.renderer.webgl.Layer.prototype.composeFrame =
/**
* @param {ol.render.EventType} type Event type.
* @param {ol.webgl.Context} context WebGL context.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @private
*/
ol.renderer.webgl.Layer.prototype.dispatchComposeEvent_ =

View File

@@ -13,7 +13,6 @@ goog.require('goog.log.Logger');
goog.require('goog.object');
goog.require('goog.style');
goog.require('goog.webgl');
goog.require('ol.FrameState');
goog.require('ol.Tile');
goog.require('ol.css');
goog.require('ol.layer.Image');
@@ -271,7 +270,7 @@ ol.renderer.webgl.Map.prototype.createLayerRenderer = function(layer) {
/**
* @param {ol.render.EventType} type Event type.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @private
*/
ol.renderer.webgl.Map.prototype.dispatchComposeEvent_ =
@@ -311,7 +310,7 @@ ol.renderer.webgl.Map.prototype.disposeInternal = function() {
/**
* @param {ol.Map} map Map.
* @param {ol.FrameState} frameState Frame state.
* @param {oli.FrameState} frameState Frame state.
* @private
*/
ol.renderer.webgl.Map.prototype.expireCache_ = function(map, frameState) {

View File

@@ -368,12 +368,12 @@ ol.View2D.prototype.getView2DState = function() {
var projection = this.getProjection();
var resolution = /** @type {number} */ (this.getResolution());
var rotation = this.getRotation();
return {
return /** @type {oli.View2DState} */ ({
center: center.slice(),
projection: goog.isDef(projection) ? projection : null,
resolution: resolution,
rotation: goog.isDef(rotation) ? rotation : 0
};
});
};