ol 7.0.0-dev.1658443472213 → 7.0.0-dev.1658733468997
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Overlay.d.ts +3 -25
- package/Overlay.d.ts.map +1 -1
- package/Overlay.js +3 -25
- package/Overlay.js.map +1 -1
- package/package.json +2 -1
- package/render/webgl/BatchRenderer.d.ts +92 -0
- package/render/webgl/BatchRenderer.d.ts.map +1 -0
- package/render/webgl/BatchRenderer.js +165 -0
- package/render/webgl/BatchRenderer.js.map +1 -0
- package/render/webgl/LineStringBatchRenderer.d.ts +27 -0
- package/render/webgl/LineStringBatchRenderer.d.ts.map +1 -0
- package/render/webgl/LineStringBatchRenderer.js +114 -0
- package/render/webgl/LineStringBatchRenderer.js.map +1 -0
- package/render/webgl/MixedGeometryBatch.d.ts +306 -0
- package/render/webgl/MixedGeometryBatch.d.ts.map +1 -0
- package/render/webgl/MixedGeometryBatch.js +342 -0
- package/render/webgl/MixedGeometryBatch.js.map +1 -0
- package/render/webgl/PointBatchRenderer.d.ts +26 -0
- package/render/webgl/PointBatchRenderer.d.ts.map +1 -0
- package/render/webgl/PointBatchRenderer.js +102 -0
- package/render/webgl/PointBatchRenderer.js.map +1 -0
- package/render/webgl/PolygonBatchRenderer.d.ts +25 -0
- package/render/webgl/PolygonBatchRenderer.d.ts.map +1 -0
- package/render/webgl/PolygonBatchRenderer.js +110 -0
- package/render/webgl/PolygonBatchRenderer.js.map +1 -0
- package/render/webgl/constants.d.ts +43 -0
- package/render/webgl/constants.d.ts.map +1 -0
- package/render/webgl/constants.js +26 -0
- package/render/webgl/constants.js.map +1 -0
- package/render/webgl/utils.d.ts +76 -0
- package/render/webgl/utils.d.ts.map +1 -0
- package/render/webgl/utils.js +257 -0
- package/render/webgl/utils.js.map +1 -0
- package/renderer/webgl/Layer.d.ts +0 -98
- package/renderer/webgl/Layer.d.ts.map +1 -1
- package/renderer/webgl/Layer.js +0 -134
- package/renderer/webgl/Layer.js.map +1 -1
- package/renderer/webgl/PointsLayer.d.ts +4 -1
- package/renderer/webgl/PointsLayer.d.ts.map +1 -1
- package/renderer/webgl/PointsLayer.js +15 -8
- package/renderer/webgl/PointsLayer.js.map +1 -1
- package/renderer/webgl/TileLayer.js +1 -1
- package/renderer/webgl/TileLayer.js.map +1 -1
- package/renderer/webgl/VectorLayer.d.ts +142 -0
- package/renderer/webgl/VectorLayer.d.ts.map +1 -0
- package/renderer/webgl/VectorLayer.js +304 -0
- package/renderer/webgl/VectorLayer.js.map +1 -0
- package/renderer/webgl/shaders.d.ts +43 -0
- package/renderer/webgl/shaders.d.ts.map +1 -0
- package/renderer/webgl/shaders.js +53 -0
- package/renderer/webgl/shaders.js.map +1 -0
- package/src/Overlay.js +3 -25
- package/src/render/webgl/BatchRenderer.js +201 -0
- package/src/render/webgl/LineStringBatchRenderer.js +116 -0
- package/src/render/webgl/MixedGeometryBatch.js +364 -0
- package/src/render/webgl/PointBatchRenderer.js +97 -0
- package/src/render/webgl/PolygonBatchRenderer.js +117 -0
- package/src/render/webgl/constants.js +27 -0
- package/src/render/webgl/utils.js +351 -0
- package/src/renderer/webgl/Layer.js +0 -160
- package/src/renderer/webgl/PointsLayer.js +16 -12
- package/src/renderer/webgl/TileLayer.js +1 -1
- package/src/renderer/webgl/VectorLayer.js +409 -0
- package/src/renderer/webgl/shaders.js +198 -0
- package/src/webgl/Helper.js +30 -45
- package/src/worker/webgl.js +1 -1
- package/util.js +1 -1
- package/webgl/Helper.d.ts +17 -25
- package/webgl/Helper.d.ts.map +1 -1
- package/webgl/Helper.js +29 -43
- package/webgl/Helper.js.map +1 -1
- package/worker/webgl.js +1 -1
- package/worker/webgl.js.map +1 -1
package/Overlay.d.ts
CHANGED
|
@@ -54,31 +54,9 @@ export type Options = {
|
|
|
54
54
|
insertFirst?: boolean | undefined;
|
|
55
55
|
/**
|
|
56
56
|
* Pan the map when calling
|
|
57
|
-
* `setPosition`, so that the overlay is entirely visible in the current viewport
|
|
58
|
-
* If `true` (deprecated), then `autoPanAnimation` and `autoPanMargin` will be
|
|
59
|
-
* used to determine the panning parameters; if an object is supplied then other
|
|
60
|
-
* parameters are ignored.
|
|
57
|
+
* `setPosition`, so that the overlay is entirely visible in the current viewport.
|
|
61
58
|
*/
|
|
62
59
|
autoPan?: boolean | PanIntoViewOptions | undefined;
|
|
63
|
-
/**
|
|
64
|
-
* The animation options used to pan
|
|
65
|
-
* the overlay into view. This animation is only used when `autoPan` is enabled.
|
|
66
|
-
* A `duration` and `easing` may be provided to customize the animation.
|
|
67
|
-
* Deprecated and ignored if `autoPan` is supplied as an object.
|
|
68
|
-
*/
|
|
69
|
-
autoPanAnimation?: PanOptions | undefined;
|
|
70
|
-
/**
|
|
71
|
-
* The margin (in pixels) between the
|
|
72
|
-
* overlay and the borders of the map when autopanning. Deprecated and ignored
|
|
73
|
-
* if `autoPan` is supplied as an object.
|
|
74
|
-
*/
|
|
75
|
-
autoPanMargin?: number | undefined;
|
|
76
|
-
/**
|
|
77
|
-
* The options to use for the
|
|
78
|
-
* autoPan. This is only used when `autoPan` is enabled and has preference over
|
|
79
|
-
* the individual `autoPanMargin` and `autoPanOptions`.
|
|
80
|
-
*/
|
|
81
|
-
autoPanOptions?: PanIntoViewOptions | undefined;
|
|
82
60
|
/**
|
|
83
61
|
* CSS class
|
|
84
62
|
* name.
|
|
@@ -188,9 +166,9 @@ declare class Overlay extends BaseObject {
|
|
|
188
166
|
protected element: HTMLElement;
|
|
189
167
|
/**
|
|
190
168
|
* @protected
|
|
191
|
-
* @type {PanIntoViewOptions|
|
|
169
|
+
* @type {PanIntoViewOptions|undefined}
|
|
192
170
|
*/
|
|
193
|
-
protected autoPan: PanIntoViewOptions |
|
|
171
|
+
protected autoPan: PanIntoViewOptions | undefined;
|
|
194
172
|
/**
|
|
195
173
|
* @protected
|
|
196
174
|
* @type {{transform_: string,
|
package/Overlay.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["src/Overlay.js"],"names":[],"mappings":";;;;;;0BAWa,aAAa,GAAG,eAAe,GAAG,cAAc,GAAG,aAAa,GAAG,eAAe,GAAG,cAAc,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW
|
|
1
|
+
{"version":3,"file":"Overlay.d.ts","sourceRoot":"","sources":["src/Overlay.js"],"names":[],"mappings":"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"}
|
package/Overlay.js
CHANGED
|
@@ -56,20 +56,7 @@ import { outerHeight, outerWidth, removeChildren, removeNode } from './dom.js';
|
|
|
56
56
|
* probably set `insertFirst` to `true` so the overlay is displayed below the
|
|
57
57
|
* controls.
|
|
58
58
|
* @property {PanIntoViewOptions|boolean} [autoPan=false] Pan the map when calling
|
|
59
|
-
* `setPosition`, so that the overlay is entirely visible in the current viewport
|
|
60
|
-
* If `true` (deprecated), then `autoPanAnimation` and `autoPanMargin` will be
|
|
61
|
-
* used to determine the panning parameters; if an object is supplied then other
|
|
62
|
-
* parameters are ignored.
|
|
63
|
-
* @property {PanOptions} [autoPanAnimation] The animation options used to pan
|
|
64
|
-
* the overlay into view. This animation is only used when `autoPan` is enabled.
|
|
65
|
-
* A `duration` and `easing` may be provided to customize the animation.
|
|
66
|
-
* Deprecated and ignored if `autoPan` is supplied as an object.
|
|
67
|
-
* @property {number} [autoPanMargin=20] The margin (in pixels) between the
|
|
68
|
-
* overlay and the borders of the map when autopanning. Deprecated and ignored
|
|
69
|
-
* if `autoPan` is supplied as an object.
|
|
70
|
-
* @property {PanIntoViewOptions} [autoPanOptions] The options to use for the
|
|
71
|
-
* autoPan. This is only used when `autoPan` is enabled and has preference over
|
|
72
|
-
* the individual `autoPanMargin` and `autoPanOptions`.
|
|
59
|
+
* `setPosition`, so that the overlay is entirely visible in the current viewport.
|
|
73
60
|
* @property {string} [className='ol-overlay-container ol-selectable'] CSS class
|
|
74
61
|
* name.
|
|
75
62
|
*/
|
|
@@ -179,18 +166,11 @@ var Overlay = /** @class */ (function (_super) {
|
|
|
179
166
|
: 'ol-overlay-container ' + CLASS_SELECTABLE;
|
|
180
167
|
_this.element.style.position = 'absolute';
|
|
181
168
|
_this.element.style.pointerEvents = 'auto';
|
|
182
|
-
var autoPan = options.autoPan;
|
|
183
|
-
if (autoPan && 'object' !== typeof autoPan) {
|
|
184
|
-
autoPan = {
|
|
185
|
-
animation: options.autoPanAnimation,
|
|
186
|
-
margin: options.autoPanMargin,
|
|
187
|
-
};
|
|
188
|
-
}
|
|
189
169
|
/**
|
|
190
170
|
* @protected
|
|
191
|
-
* @type {PanIntoViewOptions|
|
|
171
|
+
* @type {PanIntoViewOptions|undefined}
|
|
192
172
|
*/
|
|
193
|
-
_this.autoPan =
|
|
173
|
+
_this.autoPan = options.autoPan === true ? {} : options.autoPan || undefined;
|
|
194
174
|
/**
|
|
195
175
|
* @protected
|
|
196
176
|
* @type {{transform_: string,
|
|
@@ -530,8 +510,6 @@ var Overlay = /** @class */ (function (_super) {
|
|
|
530
510
|
if (this.rendered.transform_ != transform) {
|
|
531
511
|
this.rendered.transform_ = transform;
|
|
532
512
|
style.transform = transform;
|
|
533
|
-
// @ts-ignore IE9
|
|
534
|
-
style.msTransform = transform;
|
|
535
513
|
}
|
|
536
514
|
};
|
|
537
515
|
/**
|
package/Overlay.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Overlay.js","sourceRoot":"","sources":["src/Overlay.js"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA;;GAEG;AACH,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,YAAY,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAC,MAAM,EAAE,aAAa,EAAC,MAAM,aAAa,CAAC;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAE7E;;;;;GAKG;AAEH
|
|
1
|
+
{"version":3,"file":"Overlay.js","sourceRoot":"","sources":["src/Overlay.js"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ol",
|
|
3
|
-
"version": "7.0.0-dev.
|
|
3
|
+
"version": "7.0.0-dev.1658733468997",
|
|
4
4
|
"description": "OpenLayers mapping library",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"map",
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
"url": "https://opencollective.com/openlayers"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
+
"earcut": "^2.2.3",
|
|
25
26
|
"geotiff": "2.0.4",
|
|
26
27
|
"ol-mapbox-style": "^8.0.5",
|
|
27
28
|
"pbf": "3.2.1",
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
export default AbstractBatchRenderer;
|
|
2
|
+
/**
|
|
3
|
+
* A description of a custom attribute to be passed on to the GPU, with a value different
|
|
4
|
+
* for each feature.
|
|
5
|
+
*/
|
|
6
|
+
export type CustomAttribute = {
|
|
7
|
+
/**
|
|
8
|
+
* Attribute name.
|
|
9
|
+
*/
|
|
10
|
+
name: string;
|
|
11
|
+
/**
|
|
12
|
+
* This callback computes the numerical value of the
|
|
13
|
+
* attribute for a given feature.
|
|
14
|
+
*/
|
|
15
|
+
callback: (arg0: import("../../Feature").default) => number;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @classdesc Abstract class for batch renderers.
|
|
19
|
+
* Batch renderers are meant to render the geometries contained in a {@link module:ol/render/webgl/GeometryBatch}
|
|
20
|
+
* instance. They are responsible for generating render instructions and transforming them into WebGL buffers.
|
|
21
|
+
*/
|
|
22
|
+
declare class AbstractBatchRenderer {
|
|
23
|
+
/**
|
|
24
|
+
* @param {import("../../webgl/Helper.js").default} helper WebGL helper instance
|
|
25
|
+
* @param {Worker} worker WebGL worker instance
|
|
26
|
+
* @param {string} vertexShader Vertex shader
|
|
27
|
+
* @param {string} fragmentShader Fragment shader
|
|
28
|
+
* @param {Array<CustomAttribute>} customAttributes List of custom attributes
|
|
29
|
+
*/
|
|
30
|
+
constructor(helper: import("../../webgl/Helper.js").default, worker: Worker, vertexShader: string, fragmentShader: string, customAttributes: Array<CustomAttribute>);
|
|
31
|
+
/**
|
|
32
|
+
* @type {import("../../webgl/Helper.js").default}
|
|
33
|
+
* @private
|
|
34
|
+
*/
|
|
35
|
+
private helper_;
|
|
36
|
+
/**
|
|
37
|
+
* @type {Worker}
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
private worker_;
|
|
41
|
+
/**
|
|
42
|
+
* @type {WebGLProgram}
|
|
43
|
+
* @private
|
|
44
|
+
*/
|
|
45
|
+
private program_;
|
|
46
|
+
/**
|
|
47
|
+
* A list of attributes used by the renderer.
|
|
48
|
+
* @type {Array<import('../../webgl/Helper.js').AttributeDescription>}
|
|
49
|
+
* @protected
|
|
50
|
+
*/
|
|
51
|
+
protected attributes: Array<import('../../webgl/Helper.js').AttributeDescription>;
|
|
52
|
+
/**
|
|
53
|
+
* @type {Array<CustomAttribute>}
|
|
54
|
+
* @protected
|
|
55
|
+
*/
|
|
56
|
+
protected customAttributes: Array<CustomAttribute>;
|
|
57
|
+
/**
|
|
58
|
+
* Rebuild rendering instructions and webgl buffers based on the provided frame state
|
|
59
|
+
* Note: this is a costly operation.
|
|
60
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
61
|
+
* @param {import("../../PluggableMap").FrameState} frameState Frame state.
|
|
62
|
+
* @param {import("../../geom/Geometry.js").Type} geometryType Geometry type
|
|
63
|
+
* @param {function(): void} callback Function called once the render buffers are updated
|
|
64
|
+
*/
|
|
65
|
+
rebuild(batch: import("./MixedGeometryBatch.js").GeometryBatch, frameState: import("../../PluggableMap").FrameState, geometryType: import("../../geom/Geometry.js").Type, callback: () => void): void;
|
|
66
|
+
/**
|
|
67
|
+
* Render the geometries in the batch. This will also update the current transform used for rendering according to
|
|
68
|
+
* the invert transform of the webgl buffers
|
|
69
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
70
|
+
* @param {import("../../transform.js").Transform} currentTransform Transform
|
|
71
|
+
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
|
|
72
|
+
* @param {number} offsetX X offset
|
|
73
|
+
*/
|
|
74
|
+
render(batch: import("./MixedGeometryBatch.js").GeometryBatch, currentTransform: import("../../transform.js").Transform, frameState: import("../../PluggableMap.js").FrameState, offsetX: number): void;
|
|
75
|
+
/**
|
|
76
|
+
* Rebuild rendering instructions based on the provided frame state
|
|
77
|
+
* This is specific to the geometry type and has to be implemented by subclasses.
|
|
78
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
79
|
+
* @protected
|
|
80
|
+
*/
|
|
81
|
+
protected generateRenderInstructions(batch: import("./MixedGeometryBatch.js").GeometryBatch): void;
|
|
82
|
+
/**
|
|
83
|
+
* Rebuild internal webgl buffers for rendering based on the current rendering instructions;
|
|
84
|
+
* This is asynchronous: webgl buffers wil _not_ be updated right away
|
|
85
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
86
|
+
* @param {import("../../geom/Geometry.js").Type} geometryType Geometry type
|
|
87
|
+
* @param {function(): void} callback Function called once the render buffers are updated
|
|
88
|
+
* @private
|
|
89
|
+
*/
|
|
90
|
+
private generateBuffers_;
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=BatchRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BatchRenderer.d.ts","sourceRoot":"","sources":["../../src/render/webgl/BatchRenderer.js"],"names":[],"mappings":";;;;;;;;;UAec,MAAM;;;;;qBACG,OAAO,eAAe,EAAE,OAAO,KAAE,MAAM;;AAM9D;;;;GAIG;AACH;IACE;;;;;;OAMG;IACH,oBANW,OAAO,uBAAuB,EAAE,OAAO,UACvC,MAAM,gBACN,MAAM,kBACN,MAAM,oBACN,MAAM,eAAe,CAAC,EAiChC;IA9BC;;;OAGG;IACH,gBAAqB;IAErB;;;OAGG;IACH,gBAAqB;IAErB;;;OAGG;IACH,iBAAqE;IAErE;;;;OAIG;IACH,sBAHU,MAAM,OAAO,uBAAuB,EAAE,oBAAoB,CAAC,CAGjD;IAEpB;;;OAGG;IACH,4BAHU,MAAM,eAAe,CAAC,CAGQ;IAG1C;;;;;;;OAOG;IACH,eALW,OAAO,yBAAyB,EAAE,aAAa,cAC/C,OAAO,oBAAoB,EAAE,UAAU,gBACvC,OAAO,wBAAwB,EAAE,IAAI,kBACzB,IAAI,QAU1B;IAED;;;;;;;OAOG;IACH,cALW,OAAO,yBAAyB,EAAE,aAAa,oBAC/C,OAAO,oBAAoB,EAAE,SAAS,cACtC,OAAO,uBAAuB,EAAE,UAAU,WAC1C,MAAM,QAgBhB;IAED;;;;;OAKG;IACH,4CAHW,OAAO,yBAAyB,EAAE,aAAa,QAKzD;IAED;;;;;;;OAOG;IACH,yBAqEC;CACF"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module ol/render/webgl/BatchRenderer
|
|
3
|
+
*/
|
|
4
|
+
import { WebGLWorkerMessageType } from './constants.js';
|
|
5
|
+
import { abstract } from '../../util.js';
|
|
6
|
+
import { create as createTransform, makeInverse as makeInverseTransform, multiply as multiplyTransform, translate as translateTransform, } from '../../transform.js';
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {Object} CustomAttribute A description of a custom attribute to be passed on to the GPU, with a value different
|
|
9
|
+
* for each feature.
|
|
10
|
+
* @property {string} name Attribute name.
|
|
11
|
+
* @property {function(import("../../Feature").default):number} callback This callback computes the numerical value of the
|
|
12
|
+
* attribute for a given feature.
|
|
13
|
+
*/
|
|
14
|
+
var workerMessageCounter = 0;
|
|
15
|
+
/**
|
|
16
|
+
* @classdesc Abstract class for batch renderers.
|
|
17
|
+
* Batch renderers are meant to render the geometries contained in a {@link module:ol/render/webgl/GeometryBatch}
|
|
18
|
+
* instance. They are responsible for generating render instructions and transforming them into WebGL buffers.
|
|
19
|
+
*/
|
|
20
|
+
var AbstractBatchRenderer = /** @class */ (function () {
|
|
21
|
+
/**
|
|
22
|
+
* @param {import("../../webgl/Helper.js").default} helper WebGL helper instance
|
|
23
|
+
* @param {Worker} worker WebGL worker instance
|
|
24
|
+
* @param {string} vertexShader Vertex shader
|
|
25
|
+
* @param {string} fragmentShader Fragment shader
|
|
26
|
+
* @param {Array<CustomAttribute>} customAttributes List of custom attributes
|
|
27
|
+
*/
|
|
28
|
+
function AbstractBatchRenderer(helper, worker, vertexShader, fragmentShader, customAttributes) {
|
|
29
|
+
/**
|
|
30
|
+
* @type {import("../../webgl/Helper.js").default}
|
|
31
|
+
* @private
|
|
32
|
+
*/
|
|
33
|
+
this.helper_ = helper;
|
|
34
|
+
/**
|
|
35
|
+
* @type {Worker}
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
this.worker_ = worker;
|
|
39
|
+
/**
|
|
40
|
+
* @type {WebGLProgram}
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
this.program_ = this.helper_.getProgram(fragmentShader, vertexShader);
|
|
44
|
+
/**
|
|
45
|
+
* A list of attributes used by the renderer.
|
|
46
|
+
* @type {Array<import('../../webgl/Helper.js').AttributeDescription>}
|
|
47
|
+
* @protected
|
|
48
|
+
*/
|
|
49
|
+
this.attributes = [];
|
|
50
|
+
/**
|
|
51
|
+
* @type {Array<CustomAttribute>}
|
|
52
|
+
* @protected
|
|
53
|
+
*/
|
|
54
|
+
this.customAttributes = customAttributes;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Rebuild rendering instructions and webgl buffers based on the provided frame state
|
|
58
|
+
* Note: this is a costly operation.
|
|
59
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
60
|
+
* @param {import("../../PluggableMap").FrameState} frameState Frame state.
|
|
61
|
+
* @param {import("../../geom/Geometry.js").Type} geometryType Geometry type
|
|
62
|
+
* @param {function(): void} callback Function called once the render buffers are updated
|
|
63
|
+
*/
|
|
64
|
+
AbstractBatchRenderer.prototype.rebuild = function (batch, frameState, geometryType, callback) {
|
|
65
|
+
// store transform for rendering instructions
|
|
66
|
+
batch.renderInstructionsTransform = this.helper_.makeProjectionTransform(frameState, createTransform());
|
|
67
|
+
this.generateRenderInstructions(batch);
|
|
68
|
+
this.generateBuffers_(batch, geometryType, callback);
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Render the geometries in the batch. This will also update the current transform used for rendering according to
|
|
72
|
+
* the invert transform of the webgl buffers
|
|
73
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
74
|
+
* @param {import("../../transform.js").Transform} currentTransform Transform
|
|
75
|
+
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
|
|
76
|
+
* @param {number} offsetX X offset
|
|
77
|
+
*/
|
|
78
|
+
AbstractBatchRenderer.prototype.render = function (batch, currentTransform, frameState, offsetX) {
|
|
79
|
+
// multiply the current projection transform with the invert of the one used to fill buffers
|
|
80
|
+
this.helper_.makeProjectionTransform(frameState, currentTransform);
|
|
81
|
+
translateTransform(currentTransform, offsetX, 0);
|
|
82
|
+
multiplyTransform(currentTransform, batch.invertVerticesBufferTransform);
|
|
83
|
+
// enable program, buffers and attributes
|
|
84
|
+
this.helper_.useProgram(this.program_, frameState);
|
|
85
|
+
this.helper_.bindBuffer(batch.verticesBuffer);
|
|
86
|
+
this.helper_.bindBuffer(batch.indicesBuffer);
|
|
87
|
+
this.helper_.enableAttributes(this.attributes);
|
|
88
|
+
var renderCount = batch.indicesBuffer.getSize();
|
|
89
|
+
this.helper_.drawElements(0, renderCount);
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Rebuild rendering instructions based on the provided frame state
|
|
93
|
+
* This is specific to the geometry type and has to be implemented by subclasses.
|
|
94
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
95
|
+
* @protected
|
|
96
|
+
*/
|
|
97
|
+
AbstractBatchRenderer.prototype.generateRenderInstructions = function (batch) {
|
|
98
|
+
abstract();
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Rebuild internal webgl buffers for rendering based on the current rendering instructions;
|
|
102
|
+
* This is asynchronous: webgl buffers wil _not_ be updated right away
|
|
103
|
+
* @param {import("./MixedGeometryBatch.js").GeometryBatch} batch Geometry batch
|
|
104
|
+
* @param {import("../../geom/Geometry.js").Type} geometryType Geometry type
|
|
105
|
+
* @param {function(): void} callback Function called once the render buffers are updated
|
|
106
|
+
* @private
|
|
107
|
+
*/
|
|
108
|
+
AbstractBatchRenderer.prototype.generateBuffers_ = function (batch, geometryType, callback) {
|
|
109
|
+
var messageId = workerMessageCounter++;
|
|
110
|
+
var messageType;
|
|
111
|
+
switch (geometryType) {
|
|
112
|
+
case 'Polygon':
|
|
113
|
+
messageType = WebGLWorkerMessageType.GENERATE_POLYGON_BUFFERS;
|
|
114
|
+
break;
|
|
115
|
+
case 'Point':
|
|
116
|
+
messageType = WebGLWorkerMessageType.GENERATE_POINT_BUFFERS;
|
|
117
|
+
break;
|
|
118
|
+
case 'LineString':
|
|
119
|
+
messageType = WebGLWorkerMessageType.GENERATE_LINE_STRING_BUFFERS;
|
|
120
|
+
break;
|
|
121
|
+
default:
|
|
122
|
+
// pass
|
|
123
|
+
}
|
|
124
|
+
/** @type {import('./constants.js').WebGLWorkerGenerateBuffersMessage} */
|
|
125
|
+
var message = {
|
|
126
|
+
id: messageId,
|
|
127
|
+
type: messageType,
|
|
128
|
+
renderInstructions: batch.renderInstructions.buffer,
|
|
129
|
+
renderInstructionsTransform: batch.renderInstructionsTransform,
|
|
130
|
+
customAttributesCount: this.customAttributes.length,
|
|
131
|
+
};
|
|
132
|
+
this.worker_.postMessage(message, [batch.renderInstructions.buffer]);
|
|
133
|
+
// leave ownership of render instructions
|
|
134
|
+
batch.renderInstructions = null;
|
|
135
|
+
var handleMessage =
|
|
136
|
+
/**
|
|
137
|
+
* @param {*} event Event.
|
|
138
|
+
* @this {AbstractBatchRenderer}
|
|
139
|
+
*/
|
|
140
|
+
function (event) {
|
|
141
|
+
var received = event.data;
|
|
142
|
+
// this is not the response to our request: skip
|
|
143
|
+
if (received.id !== messageId) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
// we've received our response: stop listening
|
|
147
|
+
this.worker_.removeEventListener('message', handleMessage);
|
|
148
|
+
// store transform & invert transform for webgl buffers
|
|
149
|
+
batch.verticesBufferTransform = received.renderInstructionsTransform;
|
|
150
|
+
makeInverseTransform(batch.invertVerticesBufferTransform, batch.verticesBufferTransform);
|
|
151
|
+
// copy & flush received buffers to GPU
|
|
152
|
+
batch.verticesBuffer.fromArrayBuffer(received.vertexBuffer);
|
|
153
|
+
this.helper_.flushBufferData(batch.verticesBuffer);
|
|
154
|
+
batch.indicesBuffer.fromArrayBuffer(received.indexBuffer);
|
|
155
|
+
this.helper_.flushBufferData(batch.indicesBuffer);
|
|
156
|
+
// take back ownership of the render instructions for further use
|
|
157
|
+
batch.renderInstructions = new Float32Array(received.renderInstructions);
|
|
158
|
+
callback();
|
|
159
|
+
}.bind(this);
|
|
160
|
+
this.worker_.addEventListener('message', handleMessage);
|
|
161
|
+
};
|
|
162
|
+
return AbstractBatchRenderer;
|
|
163
|
+
}());
|
|
164
|
+
export default AbstractBatchRenderer;
|
|
165
|
+
//# sourceMappingURL=BatchRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BatchRenderer.js","sourceRoot":"","sources":["../../src/render/webgl/BatchRenderer.js"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Names of attributes made available to the vertex shader.
|
|
3
|
+
* Please note: changing these *will* break custom shaders!
|
|
4
|
+
*/
|
|
5
|
+
export type Attributes = string;
|
|
6
|
+
export namespace Attributes {
|
|
7
|
+
const SEGMENT_START: string;
|
|
8
|
+
const SEGMENT_END: string;
|
|
9
|
+
const PARAMETERS: string;
|
|
10
|
+
}
|
|
11
|
+
export default LineStringBatchRenderer;
|
|
12
|
+
declare class LineStringBatchRenderer extends AbstractBatchRenderer {
|
|
13
|
+
attributes: {
|
|
14
|
+
name: string;
|
|
15
|
+
size: number;
|
|
16
|
+
type: number;
|
|
17
|
+
}[];
|
|
18
|
+
/**
|
|
19
|
+
* Render instructions for lines are structured like so:
|
|
20
|
+
* [ customAttr0, ... , customAttrN, numberOfVertices0, x0, y0, ... , xN, yN, numberOfVertices1, ... ]
|
|
21
|
+
* @param {import("./MixedGeometryBatch.js").LineStringGeometryBatch} batch Linestring geometry batch
|
|
22
|
+
* @override
|
|
23
|
+
*/
|
|
24
|
+
override generateRenderInstructions(batch: import("./MixedGeometryBatch.js").LineStringGeometryBatch): void;
|
|
25
|
+
}
|
|
26
|
+
import AbstractBatchRenderer from "./BatchRenderer.js";
|
|
27
|
+
//# sourceMappingURL=LineStringBatchRenderer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineStringBatchRenderer.d.ts","sourceRoot":"","sources":["../../src/render/webgl/LineStringBatchRenderer.js"],"names":[],"mappings":";;;;yBAUU,MAAM;;;;;;;AAQhB;IAYI;;;;QAwBC;IAGH;;;;;OAKG;IACH,2CAHW,OAAO,yBAAyB,EAAE,uBAAuB,QAoDnE;CACF"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
var __extends = (this && this.__extends) || (function () {
|
|
2
|
+
var extendStatics = function (d, b) {
|
|
3
|
+
extendStatics = Object.setPrototypeOf ||
|
|
4
|
+
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
+
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
|
|
6
|
+
return extendStatics(d, b);
|
|
7
|
+
};
|
|
8
|
+
return function (d, b) {
|
|
9
|
+
if (typeof b !== "function" && b !== null)
|
|
10
|
+
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
|
|
11
|
+
extendStatics(d, b);
|
|
12
|
+
function __() { this.constructor = d; }
|
|
13
|
+
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
14
|
+
};
|
|
15
|
+
})();
|
|
16
|
+
/**
|
|
17
|
+
* @module ol/render/webgl/LineStringBatchRenderer
|
|
18
|
+
*/
|
|
19
|
+
import AbstractBatchRenderer from './BatchRenderer.js';
|
|
20
|
+
import { AttributeType } from '../../webgl/Helper.js';
|
|
21
|
+
import { transform2D } from '../../geom/flat/transform.js';
|
|
22
|
+
/**
|
|
23
|
+
* Names of attributes made available to the vertex shader.
|
|
24
|
+
* Please note: changing these *will* break custom shaders!
|
|
25
|
+
* @enum {string}
|
|
26
|
+
*/
|
|
27
|
+
export var Attributes = {
|
|
28
|
+
SEGMENT_START: 'a_segmentStart',
|
|
29
|
+
SEGMENT_END: 'a_segmentEnd',
|
|
30
|
+
PARAMETERS: 'a_parameters',
|
|
31
|
+
};
|
|
32
|
+
var LineStringBatchRenderer = /** @class */ (function (_super) {
|
|
33
|
+
__extends(LineStringBatchRenderer, _super);
|
|
34
|
+
/**
|
|
35
|
+
* @param {import("../../webgl/Helper.js").default} helper WebGL helper instance
|
|
36
|
+
* @param {Worker} worker WebGL worker instance
|
|
37
|
+
* @param {string} vertexShader Vertex shader
|
|
38
|
+
* @param {string} fragmentShader Fragment shader
|
|
39
|
+
* @param {Array<import('./BatchRenderer.js').CustomAttribute>} customAttributes List of custom attributes
|
|
40
|
+
*/
|
|
41
|
+
function LineStringBatchRenderer(helper, worker, vertexShader, fragmentShader, customAttributes) {
|
|
42
|
+
var _this = _super.call(this, helper, worker, vertexShader, fragmentShader, customAttributes) || this;
|
|
43
|
+
// vertices for lines must hold both a position (x,y) and an offset (dx,dy)
|
|
44
|
+
_this.attributes = [
|
|
45
|
+
{
|
|
46
|
+
name: Attributes.SEGMENT_START,
|
|
47
|
+
size: 2,
|
|
48
|
+
type: AttributeType.FLOAT,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
name: Attributes.SEGMENT_END,
|
|
52
|
+
size: 2,
|
|
53
|
+
type: AttributeType.FLOAT,
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: Attributes.PARAMETERS,
|
|
57
|
+
size: 1,
|
|
58
|
+
type: AttributeType.FLOAT,
|
|
59
|
+
},
|
|
60
|
+
].concat(customAttributes.map(function (attribute) {
|
|
61
|
+
return {
|
|
62
|
+
name: 'a_' + attribute.name,
|
|
63
|
+
size: 1,
|
|
64
|
+
type: AttributeType.FLOAT,
|
|
65
|
+
};
|
|
66
|
+
}));
|
|
67
|
+
return _this;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Render instructions for lines are structured like so:
|
|
71
|
+
* [ customAttr0, ... , customAttrN, numberOfVertices0, x0, y0, ... , xN, yN, numberOfVertices1, ... ]
|
|
72
|
+
* @param {import("./MixedGeometryBatch.js").LineStringGeometryBatch} batch Linestring geometry batch
|
|
73
|
+
* @override
|
|
74
|
+
*/
|
|
75
|
+
LineStringBatchRenderer.prototype.generateRenderInstructions = function (batch) {
|
|
76
|
+
// here we anticipate the amount of render instructions for lines:
|
|
77
|
+
// 2 instructions per vertex for position (x and y)
|
|
78
|
+
// + 1 instruction per line per custom attributes
|
|
79
|
+
// + 1 instruction per line (for vertices count)
|
|
80
|
+
var totalInstructionsCount = 2 * batch.verticesCount +
|
|
81
|
+
(1 + this.customAttributes.length) * batch.geometriesCount;
|
|
82
|
+
if (!batch.renderInstructions ||
|
|
83
|
+
batch.renderInstructions.length !== totalInstructionsCount) {
|
|
84
|
+
batch.renderInstructions = new Float32Array(totalInstructionsCount);
|
|
85
|
+
}
|
|
86
|
+
// loop on features to fill the render instructions
|
|
87
|
+
var batchEntry;
|
|
88
|
+
var flatCoords = [];
|
|
89
|
+
var renderIndex = 0;
|
|
90
|
+
var value;
|
|
91
|
+
for (var featureUid in batch.entries) {
|
|
92
|
+
batchEntry = batch.entries[featureUid];
|
|
93
|
+
for (var i = 0, ii = batchEntry.flatCoordss.length; i < ii; i++) {
|
|
94
|
+
flatCoords.length = batchEntry.flatCoordss[i].length;
|
|
95
|
+
transform2D(batchEntry.flatCoordss[i], 0, flatCoords.length, 2, batch.renderInstructionsTransform, flatCoords);
|
|
96
|
+
// custom attributes
|
|
97
|
+
for (var k = 0, kk = this.customAttributes.length; k < kk; k++) {
|
|
98
|
+
value = this.customAttributes[k].callback(batchEntry.feature);
|
|
99
|
+
batch.renderInstructions[renderIndex++] = value;
|
|
100
|
+
}
|
|
101
|
+
// vertices count
|
|
102
|
+
batch.renderInstructions[renderIndex++] = flatCoords.length / 2;
|
|
103
|
+
// looping on points for positions
|
|
104
|
+
for (var j = 0, jj = flatCoords.length; j < jj; j += 2) {
|
|
105
|
+
batch.renderInstructions[renderIndex++] = flatCoords[j];
|
|
106
|
+
batch.renderInstructions[renderIndex++] = flatCoords[j + 1];
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return LineStringBatchRenderer;
|
|
112
|
+
}(AbstractBatchRenderer));
|
|
113
|
+
export default LineStringBatchRenderer;
|
|
114
|
+
//# sourceMappingURL=LineStringBatchRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineStringBatchRenderer.js","sourceRoot":"","sources":["../../src/render/webgl/LineStringBatchRenderer.js"],"names":[],"mappings":"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"}
|