@openglobus/og 0.20.2 → 0.20.4
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/README.md +1 -1
- package/css/og.css +55 -23
- package/lib/@openglobus/js/Globe.d.ts +3 -0
- package/lib/@openglobus/js/control/Atmosphere.d.ts +27 -3
- package/lib/@openglobus/js/control/AtmosphereConfig.d.ts +59 -0
- package/lib/@openglobus/js/control/index.d.ts +29 -29
- package/lib/@openglobus/js/entity/EntityCollection.d.ts +4 -0
- package/lib/@openglobus/js/entity/GeoObject.d.ts +7 -3
- package/lib/@openglobus/js/entity/GeoObjectHandler.d.ts +5 -8
- package/lib/@openglobus/js/layer/Vector.d.ts +5 -0
- package/lib/@openglobus/js/math/Quat.d.ts +1 -0
- package/lib/@openglobus/js/scene/Planet.d.ts +6 -0
- package/lib/@openglobus/js/shaders/atmos.d.ts +19 -3
- package/lib/@openglobus/js/shaders/drawnode.d.ts +2 -1
- package/lib/@openglobus/js/terrain/GlobusTerrain.d.ts +2 -0
- package/lib/@openglobus/js/webgl/Handler.d.ts +3 -1
- package/lib/@openglobus/og.css +1 -1
- package/lib/@openglobus/og.esm.js +1 -1
- package/lib/@openglobus/og.esm.js.map +1 -1
- package/lib/@openglobus/og.umd.js +1 -1
- package/lib/@openglobus/og.umd.js.map +1 -1
- package/lib/js/Globe.d.ts +3 -0
- package/lib/js/Globe.js +4 -1
- package/lib/js/control/Atmosphere.d.ts +27 -3
- package/lib/js/control/Atmosphere.js +109 -43
- package/lib/js/control/AtmosphereConfig.d.ts +59 -0
- package/lib/js/control/AtmosphereConfig.js +348 -0
- package/lib/js/control/DebugInfo.js +5 -4
- package/lib/js/control/Lighting.js +13 -5
- package/lib/js/control/index.d.ts +29 -29
- package/lib/js/control/index.js +29 -29
- package/lib/js/entity/EntityCollection.d.ts +4 -0
- package/lib/js/entity/EntityCollection.js +7 -0
- package/lib/js/entity/GeoObject.d.ts +7 -3
- package/lib/js/entity/GeoObject.js +31 -16
- package/lib/js/entity/GeoObjectHandler.d.ts +5 -8
- package/lib/js/entity/GeoObjectHandler.js +34 -63
- package/lib/js/layer/Layer.js +2 -2
- package/lib/js/layer/Vector.d.ts +5 -0
- package/lib/js/layer/Vector.js +16 -1
- package/lib/js/math/Quat.d.ts +1 -0
- package/lib/js/math/Quat.js +4 -0
- package/lib/js/renderer/RendererEvents.js +1 -3
- package/lib/js/scene/Planet.d.ts +6 -0
- package/lib/js/scene/Planet.js +25 -11
- package/lib/js/shaders/atmos.d.ts +19 -3
- package/lib/js/shaders/atmos.js +40 -26
- package/lib/js/shaders/drawnode.d.ts +2 -1
- package/lib/js/shaders/drawnode.js +15 -12
- package/lib/js/shaders/geoObject.js +22 -71
- package/lib/js/terrain/GlobusRgbTerrain.js +2 -2
- package/lib/js/terrain/GlobusTerrain.d.ts +2 -0
- package/lib/js/terrain/GlobusTerrain.js +2 -0
- package/lib/js/ui/Slider.js +3 -3
- package/lib/js/webgl/Handler.d.ts +3 -1
- package/lib/js/webgl/Handler.js +38 -28
- package/package.json +1 -1
package/lib/js/webgl/Handler.js
CHANGED
|
@@ -6,6 +6,7 @@ import { ImageCanvas } from "../ImageCanvas";
|
|
|
6
6
|
import { Vec2 } from "../math/Vec2";
|
|
7
7
|
import { ProgramController } from "./ProgramController";
|
|
8
8
|
import { Stack } from "../Stack";
|
|
9
|
+
import { throttle } from "../utils/shared";
|
|
9
10
|
const vendorPrefixes = ["", "WEBKIT_", "MOZ_"];
|
|
10
11
|
const CONTEXT_TYPE = ["webgl2", "webgl"];
|
|
11
12
|
// Maximal mipmap levels
|
|
@@ -25,7 +26,35 @@ class Handler {
|
|
|
25
26
|
constructor(canvasTarget, params = {}) {
|
|
26
27
|
this.framebufferStack = new Stack();
|
|
27
28
|
this._requestAnimationFrameId = 0;
|
|
29
|
+
/**
|
|
30
|
+
* Draw single frame.
|
|
31
|
+
* @public
|
|
32
|
+
*/
|
|
33
|
+
this.drawFrame = () => {
|
|
34
|
+
/** Calculating frame time */
|
|
35
|
+
let now = window.performance.now();
|
|
36
|
+
this.deltaTime = now - this._lastAnimationFrameTime;
|
|
37
|
+
this._lastAnimationFrameTime = now;
|
|
38
|
+
this.defaultClock.tick(this.deltaTime);
|
|
39
|
+
for (let i = 0; i < this._clocks.length; i++) {
|
|
40
|
+
this._clocks[i].tick(this.deltaTime);
|
|
41
|
+
}
|
|
42
|
+
/** Canvas resize checking */
|
|
43
|
+
let canvas = this.canvas;
|
|
44
|
+
if (Math.floor(canvas.clientWidth * this._params.pixelRatio) !== canvas.width || Math.floor(canvas.clientHeight * this._params.pixelRatio) !== canvas.height) {
|
|
45
|
+
if (canvas.clientWidth === 0 || canvas.clientHeight === 0) {
|
|
46
|
+
this.stop();
|
|
47
|
+
}
|
|
48
|
+
else if (!document.hidden) {
|
|
49
|
+
this.start();
|
|
50
|
+
this.setSize(canvas.clientWidth, canvas.clientHeight);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Draw frame */
|
|
54
|
+
this._frameCallback();
|
|
55
|
+
};
|
|
28
56
|
this.events = createEvents(["visibilitychange", "resize"]);
|
|
57
|
+
this._throttledDrawFrame = this.drawFrame;
|
|
29
58
|
this.defaultClock = new Clock();
|
|
30
59
|
this._clocks = [];
|
|
31
60
|
this.deltaTime = 0;
|
|
@@ -69,6 +98,14 @@ class Handler {
|
|
|
69
98
|
this.initialize();
|
|
70
99
|
}
|
|
71
100
|
}
|
|
101
|
+
set frameDelay(delay) {
|
|
102
|
+
if (delay === 0) {
|
|
103
|
+
this._throttledDrawFrame = this.drawFrame;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
this._throttledDrawFrame = throttle(this.drawFrame, delay);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
72
109
|
isInitialized() {
|
|
73
110
|
return this._initialized;
|
|
74
111
|
}
|
|
@@ -786,33 +823,6 @@ class Handler {
|
|
|
786
823
|
let c = this.canvas;
|
|
787
824
|
return c ? new Vec2(Math.round(c.width * 0.5), Math.round(c.height * 0.5)) : new Vec2();
|
|
788
825
|
}
|
|
789
|
-
/**
|
|
790
|
-
* Draw single frame.
|
|
791
|
-
* @public
|
|
792
|
-
*/
|
|
793
|
-
drawFrame() {
|
|
794
|
-
/** Calculating frame time */
|
|
795
|
-
let now = window.performance.now();
|
|
796
|
-
this.deltaTime = now - this._lastAnimationFrameTime;
|
|
797
|
-
this._lastAnimationFrameTime = now;
|
|
798
|
-
this.defaultClock.tick(this.deltaTime);
|
|
799
|
-
for (let i = 0; i < this._clocks.length; i++) {
|
|
800
|
-
this._clocks[i].tick(this.deltaTime);
|
|
801
|
-
}
|
|
802
|
-
/** Canvas resize checking */
|
|
803
|
-
let canvas = this.canvas;
|
|
804
|
-
if (Math.floor(canvas.clientWidth * this._params.pixelRatio) !== canvas.width || Math.floor(canvas.clientHeight * this._params.pixelRatio) !== canvas.height) {
|
|
805
|
-
if (canvas.clientWidth === 0 || canvas.clientHeight === 0) {
|
|
806
|
-
this.stop();
|
|
807
|
-
}
|
|
808
|
-
else if (!document.hidden) {
|
|
809
|
-
this.start();
|
|
810
|
-
this.setSize(canvas.clientWidth, canvas.clientHeight);
|
|
811
|
-
}
|
|
812
|
-
}
|
|
813
|
-
/** Draw frame */
|
|
814
|
-
this._frameCallback();
|
|
815
|
-
}
|
|
816
826
|
/**
|
|
817
827
|
* Clearing gl frame.
|
|
818
828
|
* @public
|
|
@@ -853,7 +863,7 @@ class Handler {
|
|
|
853
863
|
*/
|
|
854
864
|
_animationFrameCallback() {
|
|
855
865
|
this._requestAnimationFrameId = window.requestAnimationFrame(() => {
|
|
856
|
-
this.
|
|
866
|
+
this._throttledDrawFrame();
|
|
857
867
|
this._requestAnimationFrameId && this._animationFrameCallback();
|
|
858
868
|
});
|
|
859
869
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openglobus/og",
|
|
3
|
-
"version": "0.20.
|
|
3
|
+
"version": "0.20.4",
|
|
4
4
|
"description": "[openglobus](https://www.openglobus.org/) is a javascript/typescript library designed to display interactive 3d maps and planets with map tiles, imagery and vector data, markers, and 3D objects. It uses the WebGL technology, open source, and completely free.",
|
|
5
5
|
"directories": {
|
|
6
6
|
"example": "./sandbox"
|