From 6f6b60769cb80039acb7b048fdb9f6c88056d5cb Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 23 Mar 2018 12:13:20 +0100 Subject: [PATCH 1/6] Module type for ol.webgl.Fragment --- src/ol/renderer/webgl/TileLayer.js | 2 +- src/ol/webgl/Context.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/webgl/TileLayer.js b/src/ol/renderer/webgl/TileLayer.js index 4c39623ae1..abfb78c34f 100644 --- a/src/ol/renderer/webgl/TileLayer.js +++ b/src/ol/renderer/webgl/TileLayer.js @@ -39,7 +39,7 @@ const WebGLTileLayerRenderer = function(mapRenderer, tileLayer) { /** * @private - * @type {ol.webgl.Fragment} + * @type {module:ol/webgl/Fragment~WebGLFragment} */ this.fragmentShader_ = fragment; diff --git a/src/ol/webgl/Context.js b/src/ol/webgl/Context.js index 7909f24214..2b4c5aa8d8 100644 --- a/src/ol/webgl/Context.js +++ b/src/ol/webgl/Context.js @@ -220,7 +220,7 @@ WebGLContext.prototype.getShader = function(shaderObject) { * Get the program from the cache if it's in the cache. Otherwise create * the WebGL program, attach the shaders to it, and add an entry to the * cache. - * @param {ol.webgl.Fragment} fragmentShaderObject Fragment shader. + * @param {module:ol/webgl/Fragment~WebGLFragment} fragmentShaderObject Fragment shader. * @param {ol.webgl.Vertex} vertexShaderObject Vertex shader. * @return {WebGLProgram} Program. */ From 731c2eddaee498426d1f1527544a53d1a8f8f16e Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 23 Mar 2018 12:13:56 +0100 Subject: [PATCH 2/6] Module type for ol.webgl.Shader --- src/ol/webgl/Context.js | 2 +- src/ol/webgl/Fragment.js | 2 +- src/ol/webgl/Vertex.js | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ol/webgl/Context.js b/src/ol/webgl/Context.js index 2b4c5aa8d8..95e85bbc6a 100644 --- a/src/ol/webgl/Context.js +++ b/src/ol/webgl/Context.js @@ -198,7 +198,7 @@ WebGLContext.prototype.getHitDetectionFramebuffer = function() { /** * Get shader from the cache if it's in the cache. Otherwise, create * the WebGL shader, compile it, and add entry to cache. - * @param {ol.webgl.Shader} shaderObject Shader object. + * @param {module:ol/webgl/Shader~WebGLShader} shaderObject Shader object. * @return {WebGLShader} Shader. */ WebGLContext.prototype.getShader = function(shaderObject) { diff --git a/src/ol/webgl/Fragment.js b/src/ol/webgl/Fragment.js index 1f4f9d9ccc..fdc2483500 100644 --- a/src/ol/webgl/Fragment.js +++ b/src/ol/webgl/Fragment.js @@ -7,7 +7,7 @@ import WebGLShader from '../webgl/Shader.js'; /** * @constructor - * @extends {ol.webgl.Shader} + * @extends {module:ol/webgl/Shader~WebGLShader} * @param {string} source Source. * @struct */ diff --git a/src/ol/webgl/Vertex.js b/src/ol/webgl/Vertex.js index 1259e74e2f..f7ecf8b8ed 100644 --- a/src/ol/webgl/Vertex.js +++ b/src/ol/webgl/Vertex.js @@ -7,7 +7,7 @@ import WebGLShader from '../webgl/Shader.js'; /** * @constructor - * @extends {ol.webgl.Shader} + * @extends {module:ol/webgl/Shader~WebGLShader} * @param {string} source Source. * @struct */ From 353a3b77b6e35879b126e4822d4bcebb7af4a6aa Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 23 Mar 2018 12:16:04 +0100 Subject: [PATCH 3/6] Module type for ol.webgl.Buffer --- src/ol/render/webgl/Replay.js | 4 ++-- src/ol/renderer/webgl/Layer.js | 2 +- src/ol/renderer/webgl/TileLayer.js | 2 +- src/ol/typedefs.js | 2 +- src/ol/webgl/Context.js | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/ol/render/webgl/Replay.js b/src/ol/render/webgl/Replay.js index 5348247a21..d27e617649 100644 --- a/src/ol/render/webgl/Replay.js +++ b/src/ol/render/webgl/Replay.js @@ -81,7 +81,7 @@ const WebGLReplay = function(tolerance, maxExtent) { /** * @protected - * @type {?ol.webgl.Buffer} + * @type {?module:ol/webgl/Buffer~WebGLBuffer} */ this.indicesBuffer = null; @@ -107,7 +107,7 @@ const WebGLReplay = function(tolerance, maxExtent) { /** * @protected - * @type {?ol.webgl.Buffer} + * @type {?module:ol/webgl/Buffer~WebGLBuffer} */ this.verticesBuffer = null; diff --git a/src/ol/renderer/webgl/Layer.js b/src/ol/renderer/webgl/Layer.js index 634355bcf9..fded21b22b 100644 --- a/src/ol/renderer/webgl/Layer.js +++ b/src/ol/renderer/webgl/Layer.js @@ -34,7 +34,7 @@ const WebGLLayerRenderer = function(mapRenderer, layer) { /** * @private - * @type {ol.webgl.Buffer} + * @type {module:ol/webgl/Buffer~WebGLBuffer} */ this.arrayBuffer_ = new WebGLBuffer([ -1, -1, 0, 0, diff --git a/src/ol/renderer/webgl/TileLayer.js b/src/ol/renderer/webgl/TileLayer.js index abfb78c34f..8e0db7bf01 100644 --- a/src/ol/renderer/webgl/TileLayer.js +++ b/src/ol/renderer/webgl/TileLayer.js @@ -57,7 +57,7 @@ const WebGLTileLayerRenderer = function(mapRenderer, tileLayer) { /** * @private - * @type {ol.webgl.Buffer} + * @type {module:ol/webgl/Buffer~WebGLBuffer} */ this.renderArrayBuffer_ = new WebGLBuffer([ 0, 0, 0, 1, diff --git a/src/ol/typedefs.js b/src/ol/typedefs.js index be2010ef2f..9ecced9bd2 100644 --- a/src/ol/typedefs.js +++ b/src/ol/typedefs.js @@ -302,7 +302,7 @@ ol.StyleImageOptions; /** - * @typedef {{buf: ol.webgl.Buffer, + * @typedef {{buf: module:ol/webgl/Buffer~WebGLBuffer, * buffer: WebGLBuffer}} */ ol.WebglBufferCacheEntry; diff --git a/src/ol/webgl/Context.js b/src/ol/webgl/Context.js index 95e85bbc6a..9e79652aee 100644 --- a/src/ol/webgl/Context.js +++ b/src/ol/webgl/Context.js @@ -99,7 +99,7 @@ inherits(WebGLContext, Disposable); * the WebGL buffer, bind it, populate it, and add an entry to * the cache. * @param {number} target Target. - * @param {ol.webgl.Buffer} buf Buffer. + * @param {module:ol/webgl/Buffer~WebGLBuffer} buf Buffer. */ WebGLContext.prototype.bindBuffer = function(target, buf) { const gl = this.getGL(); @@ -128,7 +128,7 @@ WebGLContext.prototype.bindBuffer = function(target, buf) { /** - * @param {ol.webgl.Buffer} buf Buffer. + * @param {module:ol/webgl/Buffer~WebGLBuffer} buf Buffer. */ WebGLContext.prototype.deleteBuffer = function(buf) { const gl = this.getGL(); From 530649073361430f35f367eb6a440a3c4ed3e542 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 23 Mar 2018 12:17:42 +0100 Subject: [PATCH 4/6] Module type for ol.webgl.Context --- src/ol/render/Event.js | 4 ++-- src/ol/render/webgl/CircleReplay.js | 4 ++-- src/ol/render/webgl/Immediate.js | 2 +- src/ol/render/webgl/LineStringReplay.js | 2 +- src/ol/render/webgl/PolygonReplay.js | 2 +- src/ol/render/webgl/Replay.js | 18 +++++++++--------- src/ol/render/webgl/ReplayGroup.js | 12 ++++++------ src/ol/render/webgl/TextureReplay.js | 2 +- src/ol/renderer/webgl/Layer.js | 6 +++--- src/ol/renderer/webgl/Map.js | 4 ++-- 10 files changed, 28 insertions(+), 28 deletions(-) diff --git a/src/ol/render/Event.js b/src/ol/render/Event.js index d02c89fbfd..1ce0bcc3c9 100644 --- a/src/ol/render/Event.js +++ b/src/ol/render/Event.js @@ -12,7 +12,7 @@ import Event from '../events/Event.js'; * @param {ol.render.VectorContext=} opt_vectorContext Vector context. * @param {module:ol/PluggableMap~FrameState=} opt_frameState Frame state. * @param {?CanvasRenderingContext2D=} opt_context Context. - * @param {?ol.webgl.Context=} opt_glContext WebGL Context. + * @param {?module:ol/webgl/Context~WebGLContext=} opt_glContext WebGL Context. */ const RenderEvent = function( type, opt_vectorContext, opt_frameState, opt_context, @@ -45,7 +45,7 @@ const RenderEvent = function( /** * WebGL context. Only available when a WebGL renderer is used, null * otherwise. - * @type {ol.webgl.Context|null|undefined} + * @type {module:ol/webgl/Context~WebGLContext|null|undefined} * @api */ this.glContext = opt_glContext; diff --git a/src/ol/render/webgl/CircleReplay.js b/src/ol/render/webgl/CircleReplay.js index 03a39f2968..d5f5c92dba 100644 --- a/src/ol/render/webgl/CircleReplay.js +++ b/src/ol/render/webgl/CircleReplay.js @@ -181,7 +181,7 @@ WebGLCircleReplay.prototype.finish = function(context) { WebGLCircleReplay.prototype.getDeleteResourcesFunction = function(context) { // We only delete our stuff here. The shaders and the program may // be used by other CircleReplay instances (for other layers). And - // they will be deleted when disposing of the ol.webgl.Context + // they will be deleted when disposing of the module:ol/webgl/Context~WebGLContext // object. const verticesBuffer = this.verticesBuffer; const indicesBuffer = this.indicesBuffer; @@ -311,7 +311,7 @@ WebGLCircleReplay.prototype.drawHitDetectionReplayOneByOne = function(gl, contex /** * @private * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object} skippedFeaturesHash Ids of features to skip. */ WebGLCircleReplay.prototype.drawReplaySkipping_ = function(gl, context, skippedFeaturesHash) { diff --git a/src/ol/render/webgl/Immediate.js b/src/ol/render/webgl/Immediate.js index 27ab73dd39..3cec0bbc9e 100644 --- a/src/ol/render/webgl/Immediate.js +++ b/src/ol/render/webgl/Immediate.js @@ -11,7 +11,7 @@ import WebGLReplayGroup from '../webgl/ReplayGroup.js'; /** * @constructor * @extends {ol.render.VectorContext} - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {module:ol/coordinate~Coordinate} center Center. * @param {number} resolution Resolution. * @param {number} rotation Rotation. diff --git a/src/ol/render/webgl/LineStringReplay.js b/src/ol/render/webgl/LineStringReplay.js index 92cdddb20d..ce18544dbe 100644 --- a/src/ol/render/webgl/LineStringReplay.js +++ b/src/ol/render/webgl/LineStringReplay.js @@ -549,7 +549,7 @@ WebGLLineStringReplay.prototype.drawReplay = function(gl, context, skippedFeatur /** * @private * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object} skippedFeaturesHash Ids of features to skip. */ WebGLLineStringReplay.prototype.drawReplaySkipping_ = function(gl, context, skippedFeaturesHash) { diff --git a/src/ol/render/webgl/PolygonReplay.js b/src/ol/render/webgl/PolygonReplay.js index 30fee93002..8047c4f361 100644 --- a/src/ol/render/webgl/PolygonReplay.js +++ b/src/ol/render/webgl/PolygonReplay.js @@ -986,7 +986,7 @@ WebGLPolygonReplay.prototype.drawHitDetectionReplayOneByOne = function(gl, conte /** * @private * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object} skippedFeaturesHash Ids of features to skip. */ WebGLPolygonReplay.prototype.drawReplaySkipping_ = function(gl, context, skippedFeaturesHash) { diff --git a/src/ol/render/webgl/Replay.js b/src/ol/render/webgl/Replay.js index d27e617649..661f394238 100644 --- a/src/ol/render/webgl/Replay.js +++ b/src/ol/render/webgl/Replay.js @@ -125,7 +125,7 @@ inherits(WebGLReplay, VectorContext); /** * @abstract - * @param {ol.webgl.Context} context WebGL context. + * @param {module:ol/webgl/Context~WebGLContext} context WebGL context. * @return {function()} Delete resources function. */ WebGLReplay.prototype.getDeleteResourcesFunction = function(context) {}; @@ -133,7 +133,7 @@ WebGLReplay.prototype.getDeleteResourcesFunction = function(context) {}; /** * @abstract - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. */ WebGLReplay.prototype.finish = function(context) {}; @@ -142,7 +142,7 @@ WebGLReplay.prototype.finish = function(context) {}; * @abstract * @protected * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {module:ol/size~Size} size Size. * @param {number} pixelRatio Pixel ratio. * @return {ol.render.webgl.circlereplay.defaultshader.Locations| @@ -169,7 +169,7 @@ WebGLReplay.prototype.shutDownProgram = function(gl, locations) {}; * @abstract * @protected * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object.} skippedFeaturesHash Ids of features * to skip. * @param {boolean} hitDetection Hit detection mode. @@ -181,7 +181,7 @@ WebGLReplay.prototype.drawReplay = function(gl, context, skippedFeaturesHash, hi * @abstract * @protected * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object.} skippedFeaturesHash Ids of features * to skip. * @param {function((module:ol/Feature~Feature|ol.render.Feature)): T|undefined} featureCallback Feature callback. @@ -196,7 +196,7 @@ WebGLReplay.prototype.drawHitDetectionReplayOneByOne = function(gl, context, ski /** * @protected * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object.} skippedFeaturesHash Ids of features * to skip. * @param {function((module:ol/Feature~Feature|ol.render.Feature)): T|undefined} featureCallback Feature callback. @@ -223,7 +223,7 @@ WebGLReplay.prototype.drawHitDetectionReplay = function(gl, context, skippedFeat /** * @protected * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object.} skippedFeaturesHash Ids of features * to skip. * @param {function((module:ol/Feature~Feature|ol.render.Feature)): T|undefined} featureCallback Feature callback. @@ -245,7 +245,7 @@ WebGLReplay.prototype.drawHitDetectionReplayAll = function(gl, context, skippedF /** - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {module:ol/coordinate~Coordinate} center Center. * @param {number} resolution Resolution. * @param {number} rotation Rotation. @@ -353,7 +353,7 @@ WebGLReplay.prototype.replay = function(context, /** * @protected * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {number} start Start index. * @param {number} end End index. */ diff --git a/src/ol/render/webgl/ReplayGroup.js b/src/ol/render/webgl/ReplayGroup.js index 5d57702842..cb59c906cb 100644 --- a/src/ol/render/webgl/ReplayGroup.js +++ b/src/ol/render/webgl/ReplayGroup.js @@ -81,7 +81,7 @@ WebGLReplayGroup.prototype.addDeclutter = function(style, group) {}; /** - * @param {ol.webgl.Context} context WebGL context. + * @param {module:ol/webgl/Context~WebGLContext} context WebGL context. * @return {function()} Delete resources function. */ WebGLReplayGroup.prototype.getDeleteResourcesFunction = function(context) { @@ -106,7 +106,7 @@ WebGLReplayGroup.prototype.getDeleteResourcesFunction = function(context) { /** - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. */ WebGLReplayGroup.prototype.finish = function(context) { let zKey; @@ -151,7 +151,7 @@ WebGLReplayGroup.prototype.isEmpty = function() { /** - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {module:ol/coordinate~Coordinate} center Center. * @param {number} resolution Resolution. * @param {number} rotation Rotation. @@ -186,7 +186,7 @@ WebGLReplayGroup.prototype.replay = function(context, /** * @private - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {module:ol/coordinate~Coordinate} center Center. * @param {number} resolution Resolution. * @param {number} rotation Rotation. @@ -232,7 +232,7 @@ WebGLReplayGroup.prototype.replayHitDetection_ = function(context, /** * @param {module:ol/coordinate~Coordinate} coordinate Coordinate. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {module:ol/coordinate~Coordinate} center Center. * @param {number} resolution Resolution. * @param {number} rotation Rotation. @@ -287,7 +287,7 @@ WebGLReplayGroup.prototype.forEachFeatureAtCoordinate = function( /** * @param {module:ol/coordinate~Coordinate} coordinate Coordinate. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {module:ol/coordinate~Coordinate} center Center. * @param {number} resolution Resolution. * @param {number} rotation Rotation. diff --git a/src/ol/render/webgl/TextureReplay.js b/src/ol/render/webgl/TextureReplay.js index a33efa7baf..5c8fb36feb 100644 --- a/src/ol/render/webgl/TextureReplay.js +++ b/src/ol/render/webgl/TextureReplay.js @@ -362,7 +362,7 @@ WebGLTextureReplay.prototype.drawReplay = function(gl, context, skippedFeaturesH * * @protected * @param {WebGLRenderingContext} gl gl. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @param {Object.} skippedFeaturesHash Ids of features * to skip. * @param {Array.} textures Textures. diff --git a/src/ol/renderer/webgl/Layer.js b/src/ol/renderer/webgl/Layer.js index fded21b22b..e8673fbeeb 100644 --- a/src/ol/renderer/webgl/Layer.js +++ b/src/ol/renderer/webgl/Layer.js @@ -139,7 +139,7 @@ WebGLLayerRenderer.prototype.bindFramebuffer = function(frameState, framebufferD /** * @param {module:ol/PluggableMap~FrameState} frameState Frame state. * @param {module:ol/layer/Layer~State} layerState Layer state. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. */ WebGLLayerRenderer.prototype.composeFrame = function(frameState, layerState, context) { @@ -183,7 +183,7 @@ WebGLLayerRenderer.prototype.composeFrame = function(frameState, layerState, con /** * @param {ol.render.EventType} type Event type. - * @param {ol.webgl.Context} context WebGL context. + * @param {module:ol/webgl/Context~WebGLContext} context WebGL context. * @param {module:ol/PluggableMap~FrameState} frameState Frame state. * @private */ @@ -245,7 +245,7 @@ WebGLLayerRenderer.prototype.handleWebGLContextLost = function() { * @abstract * @param {module:ol/PluggableMap~FrameState} frameState Frame state. * @param {module:ol/layer/Layer~State} layerState Layer state. - * @param {ol.webgl.Context} context Context. + * @param {module:ol/webgl/Context~WebGLContext} context Context. * @return {boolean} whether composeFrame should be called. */ WebGLLayerRenderer.prototype.prepareFrame = function(frameState, layerState, context) {}; diff --git a/src/ol/renderer/webgl/Map.js b/src/ol/renderer/webgl/Map.js index b2d9c8a2d0..bf71762e50 100644 --- a/src/ol/renderer/webgl/Map.js +++ b/src/ol/renderer/webgl/Map.js @@ -92,7 +92,7 @@ const WebGLMapRenderer = function(container, map) { /** * @private - * @type {ol.webgl.Context} + * @type {module:ol/webgl/Context~WebGLContext} */ this.context_ = new WebGLContext(this.canvas_, this.gl_); @@ -335,7 +335,7 @@ WebGLMapRenderer.prototype.expireCache_ = function(map, frameState) { /** - * @return {ol.webgl.Context} The context. + * @return {module:ol/webgl/Context~WebGLContext} The context. */ WebGLMapRenderer.prototype.getContext = function() { return this.context_; From 873b01bba547e09fb33f2fc0d1f10989c44a95ee Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 23 Mar 2018 13:22:51 +0100 Subject: [PATCH 5/6] Move WebGL typedefs out of src/ol/typedefs.js --- src/ol/render/webgl/PolygonReplay.js | 70 +++++++++++++++++----------- src/ol/render/webgl/TextReplay.js | 14 ++++-- src/ol/renderer/webgl/Map.js | 16 +++++-- src/ol/typedefs.js | 36 -------------- src/ol/webgl/Context.js | 10 +++- 5 files changed, 75 insertions(+), 71 deletions(-) diff --git a/src/ol/render/webgl/PolygonReplay.js b/src/ol/render/webgl/PolygonReplay.js index 8047c4f361..210325f4ca 100644 --- a/src/ol/render/webgl/PolygonReplay.js +++ b/src/ol/render/webgl/PolygonReplay.js @@ -20,6 +20,22 @@ import RBush from '../../structs/RBush.js'; import {FLOAT} from '../../webgl.js'; import WebGLBuffer from '../../webgl/Buffer.js'; + +/** + * @typedef {Object} PolygonVertex + * @property {number} x + * @property {number} y + * @property {number} i + * @property {boolean} [reflex] + */ + +/** + * @typedef {Object} PolygonSegment + * @property {module:ol/render/webgl/PolygonReplay~PolygonVertex} p0 + * @property {module:ol/render/webgl/PolygonReplay~PolygonVertex} p1 + */ + + /** * @constructor * @extends {ol.render.webgl.Replay} @@ -144,11 +160,11 @@ WebGLPolygonReplay.prototype.processFlatCoordinates_ = function( 0, flatCoordinates.length, stride); let i, ii; let n = this.vertices.length / 2; - /** @type {ol.WebglPolygonVertex} */ + /** @type {module:ol/render/webgl/PolygonReplay~PolygonVertex} */ let start; - /** @type {ol.WebglPolygonVertex} */ + /** @type {module:ol/render/webgl/PolygonReplay~PolygonVertex} */ let p0; - /** @type {ol.WebglPolygonVertex} */ + /** @type {module:ol/render/webgl/PolygonReplay~PolygonVertex} */ let p1; const extents = []; const segments = []; @@ -260,11 +276,11 @@ WebGLPolygonReplay.prototype.bridgeHole_ = function(hole, holeMaxX, } const p1 = seg.p1; - /** @type {ol.WebglPolygonVertex} */ + /** @type {module:ol/render/webgl/PolygonReplay~PolygonVertex} */ const p2 = {x: listMaxX, y: p1.y, i: -1}; let minDist = Infinity; let i, ii, bestPoint; - /** @type {ol.WebglPolygonVertex} */ + /** @type {module:ol/render/webgl/PolygonReplay~PolygonVertex} */ let p5; const intersectingSegments = this.getIntersections_({p0: p1, p1: p2}, rtree, true); @@ -586,13 +602,13 @@ WebGLPolygonReplay.prototype.splitPolygon_ = function(list, rtree) { * @param {number} x X coordinate. * @param {number} y Y coordinate. * @param {number} i Index. - * @return {ol.WebglPolygonVertex} List item. + * @return {module:ol/render/webgl/PolygonReplay~PolygonVertex} List item. */ WebGLPolygonReplay.prototype.createPoint_ = function(x, y, i) { let numVertices = this.vertices.length; this.vertices[numVertices++] = x; this.vertices[numVertices++] = y; - /** @type {ol.WebglPolygonVertex} */ + /** @type {module:ol/render/webgl/PolygonReplay~PolygonVertex} */ const p = { x: x, y: y, @@ -605,11 +621,11 @@ WebGLPolygonReplay.prototype.createPoint_ = function(x, y, i) { /** * @private - * @param {ol.WebglPolygonVertex} p0 First point of segment. - * @param {ol.WebglPolygonVertex} p1 Second point of segment. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p0 First point of segment. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p1 Second point of segment. * @param {ol.structs.LinkedList} list Polygon ring. * @param {ol.structs.RBush=} opt_rtree Insert the segment into the R-Tree. - * @return {ol.WebglPolygonSegment} segment. + * @return {module:ol/render/webgl/PolygonReplay~PolygonSegment} segment. */ WebGLPolygonReplay.prototype.insertItem_ = function(p0, p1, list, opt_rtree) { const seg = { @@ -627,8 +643,8 @@ WebGLPolygonReplay.prototype.insertItem_ = function(p0, p1, list, opt_rtree) { /** * @private - * @param {ol.WebglPolygonSegment} s0 Segment before the remove candidate. - * @param {ol.WebglPolygonSegment} s1 Remove candidate segment. + * @param {module:ol/render/webgl/PolygonReplay~PolygonSegment} s0 Segment before the remove candidate. + * @param {module:ol/render/webgl/PolygonReplay~PolygonSegment} s1 Remove candidate segment. * @param {ol.structs.LinkedList} list Polygon ring. * @param {ol.structs.RBush} rtree R-Tree of the polygon. */ @@ -645,12 +661,12 @@ WebGLPolygonReplay.prototype.removeItem_ = function(s0, s1, list, rtree) { /** * @private - * @param {ol.WebglPolygonVertex} p0 First point. - * @param {ol.WebglPolygonVertex} p1 Second point. - * @param {ol.WebglPolygonVertex} p2 Third point. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p0 First point. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p1 Second point. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p2 Third point. * @param {ol.structs.RBush} rtree R-Tree of the polygon. * @param {boolean=} opt_reflex Only include reflex points. - * @return {Array.} Points in the triangle. + * @return {Array.} Points in the triangle. */ WebGLPolygonReplay.prototype.getPointsInTriangle_ = function(p0, p1, p2, rtree, opt_reflex) { const result = []; @@ -675,10 +691,10 @@ WebGLPolygonReplay.prototype.getPointsInTriangle_ = function(p0, p1, p2, rtree, /** * @private - * @param {ol.WebglPolygonSegment} segment Segment. + * @param {module:ol/render/webgl/PolygonReplay~PolygonSegment} segment Segment. * @param {ol.structs.RBush} rtree R-Tree of the polygon. * @param {boolean=} opt_touch Touching segments should be considered an intersection. - * @return {Array.} Intersecting segments. + * @return {Array.} Intersecting segments. */ WebGLPolygonReplay.prototype.getIntersections_ = function(segment, rtree, opt_touch) { const p0 = segment.p0; @@ -702,10 +718,10 @@ WebGLPolygonReplay.prototype.getIntersections_ = function(segment, rtree, opt_to * @see http://paulbourke.net/geometry/pointlineplane/ * * @private - * @param {ol.WebglPolygonVertex} p0 First point. - * @param {ol.WebglPolygonVertex} p1 Second point. - * @param {ol.WebglPolygonVertex} p2 Third point. - * @param {ol.WebglPolygonVertex} p3 Fourth point. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p0 First point. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p1 Second point. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p2 Third point. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p3 Fourth point. * @param {boolean=} opt_touch Touching segments should be considered an intersection. * @return {Array.|undefined} Intersection coordinates. */ @@ -726,11 +742,11 @@ WebGLPolygonReplay.prototype.calculateIntersection_ = function(p0, p1, p2, p3, o /** * @private - * @param {ol.WebglPolygonVertex} p0 Point before the start of the diagonal. - * @param {ol.WebglPolygonVertex} p1 Start point of the diagonal. - * @param {ol.WebglPolygonVertex} p2 Ear candidate. - * @param {ol.WebglPolygonVertex} p3 End point of the diagonal. - * @param {ol.WebglPolygonVertex} p4 Point after the end of the diagonal. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p0 Point before the start of the diagonal. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p1 Start point of the diagonal. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p2 Ear candidate. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p3 End point of the diagonal. + * @param {module:ol/render/webgl/PolygonReplay~PolygonVertex} p4 Point after the end of the diagonal. * @return {boolean} Diagonal is inside the polygon. */ WebGLPolygonReplay.prototype.diagonalIsInside_ = function(p0, p1, p2, p3, p4) { diff --git a/src/ol/render/webgl/TextReplay.js b/src/ol/render/webgl/TextReplay.js index 57c1275c07..72f939e121 100644 --- a/src/ol/render/webgl/TextReplay.js +++ b/src/ol/render/webgl/TextReplay.js @@ -14,6 +14,14 @@ import WebGLTextureReplay from '../webgl/TextureReplay.js'; import AtlasManager from '../../style/AtlasManager.js'; import WebGLBuffer from '../../webgl/Buffer.js'; +/** + * @typedef {Object} GlyphAtlas + * @property {module:ol/style/AtlasManager~AtlasManager} atlas + * @property {Object.} width + * @property {number} height + */ + + /** * @constructor * @extends {ol.render.webgl.TextureReplay} @@ -100,13 +108,13 @@ const WebGLTextReplay = function(tolerance, maxExtent) { /** * @private - * @type {Object.} + * @type {Object.} */ this.atlases_ = {}; /** * @private - * @type {ol.WebglGlyphAtlas|undefined} + * @type {module:ol/render/webgl/TextReplay~GlyphAtlas|undefined} */ this.currAtlas_ = undefined; @@ -397,7 +405,7 @@ WebGLTextReplay.prototype.setTextStyle = function(textStyle) { /** * @private * @param {Object} state Font attributes. - * @return {ol.WebglGlyphAtlas} Glyph atlas. + * @return {module:ol/render/webgl/TextReplay~GlyphAtlas} Glyph atlas. */ WebGLTextReplay.prototype.getAtlas_ = function(state) { let params = []; diff --git a/src/ol/renderer/webgl/Map.js b/src/ol/renderer/webgl/Map.js index bf71762e50..a413c1cd13 100644 --- a/src/ol/renderer/webgl/Map.js +++ b/src/ol/renderer/webgl/Map.js @@ -25,6 +25,14 @@ import WebGLContext from '../../webgl/Context.js'; import ContextEventType from '../../webgl/ContextEventType.js'; +/** + * @typedef {Object} TextureCacheEntry + * @property {number} magFilter + * @property {number} minFilter + * @property {WebGLTexture} texture + */ + + /** * Texture cache high water mark. * @type {number} @@ -103,7 +111,7 @@ const WebGLMapRenderer = function(container, map) { /** * @private - * @type {ol.structs.LRUCache.} + * @type {ol.structs.LRUCache.} */ this.textureCache_ = new LRUCache(); @@ -295,9 +303,9 @@ WebGLMapRenderer.prototype.disposeInternal = function() { if (!gl.isContextLost()) { this.textureCache_.forEach( /** - * @param {?ol.WebglTextureCacheEntry} textureCacheEntry - * Texture cache entry. - */ + * @param {?module:ol/renderer/webgl/Map~TextureCacheEntry} textureCacheEntry + * Texture cache entry. + */ function(textureCacheEntry) { if (textureCacheEntry) { gl.deleteTexture(textureCacheEntry.texture); diff --git a/src/ol/typedefs.js b/src/ol/typedefs.js index 9ecced9bd2..eb7aa323c0 100644 --- a/src/ol/typedefs.js +++ b/src/ol/typedefs.js @@ -301,42 +301,6 @@ ol.StyleRenderFunction; ol.StyleImageOptions; -/** - * @typedef {{buf: module:ol/webgl/Buffer~WebGLBuffer, - * buffer: WebGLBuffer}} - */ -ol.WebglBufferCacheEntry; - - -/** - * @typedef {{atlas: ol.style.AtlasManager, - * width: Object., - * height: number}} - */ -ol.WebglGlyphAtlas; - - -/** - * @typedef {{p0: ol.WebglPolygonVertex, - * p1: ol.WebglPolygonVertex}} - */ -ol.WebglPolygonSegment; - -/** - * @typedef {{x: number, - * y: number, - * i: number, - * reflex: (boolean|undefined)}} - */ -ol.WebglPolygonVertex; - - -/** - * @typedef {{magFilter: number, minFilter: number, texture: WebGLTexture}} - */ -ol.WebglTextureCacheEntry; - - /** * Number of features; bounds/extent. * @typedef {{numberOfFeatures: number, diff --git a/src/ol/webgl/Context.js b/src/ol/webgl/Context.js index 9e79652aee..67bd829e8f 100644 --- a/src/ol/webgl/Context.js +++ b/src/ol/webgl/Context.js @@ -9,6 +9,14 @@ import {clear} from '../obj.js'; import {ARRAY_BUFFER, ELEMENT_ARRAY_BUFFER, TEXTURE_2D, TEXTURE_WRAP_S, TEXTURE_WRAP_T} from '../webgl.js'; import ContextEventType from '../webgl/ContextEventType.js'; + +/** + * @typedef {Object} BufferCacheEntry + * @property {module:ol/webgl/Buffer~WebGLBuffer} buf + * @property {WebGLBuffer} buffer + */ + + /** * @classdesc * A WebGL context for accessing low-level WebGL capabilities. @@ -34,7 +42,7 @@ const WebGLContext = function(canvas, gl) { /** * @private - * @type {!Object.} + * @type {!Object.} */ this.bufferCache_ = {}; From 2fc9cb691d8a5aa9fce6e39920652dfac5eddad8 Mon Sep 17 00:00:00 2001 From: Frederic Junod Date: Fri, 23 Mar 2018 13:25:47 +0100 Subject: [PATCH 6/6] Module type for ol.webgl.Vertex --- src/ol/renderer/webgl/TileLayer.js | 2 +- src/ol/webgl/Context.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ol/renderer/webgl/TileLayer.js b/src/ol/renderer/webgl/TileLayer.js index 8e0db7bf01..adb71c6368 100644 --- a/src/ol/renderer/webgl/TileLayer.js +++ b/src/ol/renderer/webgl/TileLayer.js @@ -45,7 +45,7 @@ const WebGLTileLayerRenderer = function(mapRenderer, tileLayer) { /** * @private - * @type {ol.webgl.Vertex} + * @type {module:ol/webgl/Vertex~WebGLVertex} */ this.vertexShader_ = vertex; diff --git a/src/ol/webgl/Context.js b/src/ol/webgl/Context.js index 67bd829e8f..920ad89834 100644 --- a/src/ol/webgl/Context.js +++ b/src/ol/webgl/Context.js @@ -229,7 +229,7 @@ WebGLContext.prototype.getShader = function(shaderObject) { * the WebGL program, attach the shaders to it, and add an entry to the * cache. * @param {module:ol/webgl/Fragment~WebGLFragment} fragmentShaderObject Fragment shader. - * @param {ol.webgl.Vertex} vertexShaderObject Vertex shader. + * @param {module:ol/webgl/Vertex~WebGLVertex} vertexShaderObject Vertex shader. * @return {WebGLProgram} Program. */ WebGLContext.prototype.getProgram = function(fragmentShaderObject, vertexShaderObject) {