agora-electron-sdk 4.3.2 → 4.4.0-dev.1

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.
Files changed (100) hide show
  1. package/gulpfile.js +3 -1
  2. package/js/AgoraSdk.js +4 -4
  3. package/js/Private/AgoraBase.js +367 -326
  4. package/js/Private/AgoraMediaBase.js +265 -76
  5. package/js/Private/AgoraMediaPlayerTypes.js +12 -30
  6. package/js/Private/IAgoraH265Transcoder.js +2 -5
  7. package/js/Private/IAgoraLog.js +2 -5
  8. package/js/Private/IAgoraMediaEngine.js +2 -5
  9. package/js/Private/IAgoraMediaPlayer.js +4 -10
  10. package/js/Private/IAgoraMediaRecorder.js +2 -5
  11. package/js/Private/IAgoraMediaStreamingSource.js +2 -5
  12. package/js/Private/IAgoraMusicContentCenter.js +21 -68
  13. package/js/Private/IAgoraRhythmPlayer.js +2 -5
  14. package/js/Private/IAgoraRtcEngine.js +76 -130
  15. package/js/Private/IAgoraRtcEngineEx.js +5 -28
  16. package/js/Private/IAgoraSpatialAudio.js +6 -15
  17. package/js/Private/IAudioDeviceManager.js +2 -5
  18. package/js/Private/impl/AgoraMediaBaseImpl.js +11 -14
  19. package/js/Private/impl/IAgoraH265TranscoderImpl.js +43 -46
  20. package/js/Private/impl/IAgoraMediaEngineImpl.js +155 -172
  21. package/js/Private/impl/IAgoraMediaPlayerImpl.js +534 -546
  22. package/js/Private/impl/IAgoraMediaRecorderImpl.js +26 -29
  23. package/js/Private/impl/IAgoraMusicContentCenterImpl.js +218 -251
  24. package/js/Private/impl/IAgoraRtcEngineExImpl.js +434 -436
  25. package/js/Private/impl/IAgoraRtcEngineImpl.js +2445 -2423
  26. package/js/Private/impl/IAgoraSpatialAudioImpl.js +167 -170
  27. package/js/Private/impl/IAudioDeviceManagerImpl.js +232 -235
  28. package/js/Private/internal/AgoraH265TranscoderInternal.js +33 -57
  29. package/js/Private/internal/AgoraMediaBaseInternal.js +9 -28
  30. package/js/Private/internal/AudioDeviceManagerInternal.js +24 -44
  31. package/js/Private/internal/IrisApiEngine.js +94 -145
  32. package/js/Private/internal/LocalSpatialAudioEngineInternal.js +3 -23
  33. package/js/Private/internal/MediaEngineInternal.js +69 -94
  34. package/js/Private/internal/MediaPlayerInternal.js +105 -125
  35. package/js/Private/internal/MediaRecorderInternal.js +37 -64
  36. package/js/Private/internal/MusicContentCenterInternal.js +92 -129
  37. package/js/Private/internal/RtcEngineExInternal.js +213 -243
  38. package/js/Private/ti/AgoraBase-ti.js +2 -2
  39. package/js/Private/ti/AgoraMediaBase-ti.js +2 -2
  40. package/js/Private/ti/AgoraMediaPlayerTypes-ti.js +1 -1
  41. package/js/Private/ti/IAgoraH265Transcoder-ti.js +2 -2
  42. package/js/Private/ti/IAgoraLog-ti.js +1 -1
  43. package/js/Private/ti/IAgoraMediaEngine-ti.js +1 -1
  44. package/js/Private/ti/IAgoraMediaPlayer-ti.js +2 -2
  45. package/js/Private/ti/IAgoraMediaPlayerSource-ti.js +2 -2
  46. package/js/Private/ti/IAgoraMediaRecorder-ti.js +1 -1
  47. package/js/Private/ti/IAgoraMediaStreamingSource-ti.js +1 -1
  48. package/js/Private/ti/IAgoraMusicContentCenter-ti.js +2 -2
  49. package/js/Private/ti/IAgoraRhythmPlayer-ti.js +1 -1
  50. package/js/Private/ti/IAgoraRtcEngine-ti.js +7 -7
  51. package/js/Private/ti/IAgoraRtcEngineEx-ti.js +1 -1
  52. package/js/Private/ti/IAgoraSpatialAudio-ti.js +1 -1
  53. package/js/Private/ti/IAudioDeviceManager-ti.js +1 -1
  54. package/js/Renderer/AgoraView.js +100 -145
  55. package/js/Renderer/IRenderer.js +43 -53
  56. package/js/Renderer/IRendererManager.js +106 -132
  57. package/js/Renderer/RendererCache.js +63 -96
  58. package/js/Renderer/RendererManager.js +35 -69
  59. package/js/Renderer/WebGLRenderer/index.js +77 -106
  60. package/js/Renderer/YUVCanvasRenderer/index.js +18 -40
  61. package/js/Utils.js +45 -64
  62. package/package.json +9 -7
  63. package/scripts/checkElectron.js +41 -0
  64. package/scripts/downloadPrebuild.js +56 -24
  65. package/scripts/synclib.js +6 -6
  66. package/ts/Private/AgoraBase.ts +269 -4
  67. package/ts/Private/AgoraMediaBase.ts +343 -1
  68. package/ts/Private/IAgoraMediaEngine.ts +3 -3
  69. package/ts/Private/IAgoraRtcEngine.ts +130 -119
  70. package/ts/Private/IAgoraRtcEngineEx.ts +14 -9
  71. package/ts/Private/impl/IAgoraRtcEngineExImpl.ts +30 -0
  72. package/ts/Private/impl/IAgoraRtcEngineImpl.ts +181 -61
  73. package/ts/Private/internal/IrisApiEngine.ts +3 -7
  74. package/ts/Private/internal/MediaEngineInternal.ts +0 -1
  75. package/ts/Private/internal/RtcEngineExInternal.ts +8 -4
  76. package/ts/Private/ti/IAgoraRtcEngine-ti.ts +5 -5
  77. package/ts/Renderer/IRenderer.ts +1 -2
  78. package/ts/Renderer/IRendererManager.ts +21 -12
  79. package/ts/Utils.ts +15 -0
  80. package/types/Private/AgoraBase.d.ts +264 -8
  81. package/types/Private/AgoraBase.d.ts.map +1 -1
  82. package/types/Private/AgoraMediaBase.d.ts +336 -1
  83. package/types/Private/AgoraMediaBase.d.ts.map +1 -1
  84. package/types/Private/IAgoraMediaEngine.d.ts +3 -3
  85. package/types/Private/IAgoraRtcEngine.d.ts +106 -116
  86. package/types/Private/IAgoraRtcEngine.d.ts.map +1 -1
  87. package/types/Private/IAgoraRtcEngineEx.d.ts +10 -10
  88. package/types/Private/IAgoraRtcEngineEx.d.ts.map +1 -1
  89. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts +3 -1
  90. package/types/Private/impl/IAgoraRtcEngineExImpl.d.ts.map +1 -1
  91. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts +13 -5
  92. package/types/Private/impl/IAgoraRtcEngineImpl.d.ts.map +1 -1
  93. package/types/Private/internal/IrisApiEngine.d.ts.map +1 -1
  94. package/types/Private/internal/MediaEngineInternal.d.ts.map +1 -1
  95. package/types/Private/internal/RtcEngineExInternal.d.ts +1 -0
  96. package/types/Private/internal/RtcEngineExInternal.d.ts.map +1 -1
  97. package/types/Renderer/IRenderer.d.ts.map +1 -1
  98. package/types/Renderer/IRendererManager.d.ts.map +1 -1
  99. package/types/Utils.d.ts +4 -0
  100. package/types/Utils.d.ts.map +1 -1
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IRenderer = void 0;
4
- var AgoraBase_1 = require("../Private/AgoraBase");
5
- var AgoraMediaBase_1 = require("../Private/AgoraMediaBase");
6
- var IRenderer = /** @class */ (function () {
7
- function IRenderer() {
4
+ const AgoraBase_1 = require("../Private/AgoraBase");
5
+ const AgoraMediaBase_1 = require("../Private/AgoraMediaBase");
6
+ class IRenderer {
7
+ constructor() {
8
8
  this._context = {};
9
9
  }
10
- IRenderer.prototype.bind = function (element) {
10
+ bind(element) {
11
11
  this.parentElement = element;
12
12
  this.container = document.createElement('div');
13
13
  Object.assign(this.container.style, {
@@ -22,58 +22,50 @@ var IRenderer = /** @class */ (function () {
22
22
  this.canvas = document.createElement('canvas');
23
23
  this.canvas.style.display = 'none';
24
24
  this.container.appendChild(this.canvas);
25
- };
26
- IRenderer.prototype.unbind = function () {
27
- var _a, _b;
28
- if (this.container && ((_a = this.canvas) === null || _a === void 0 ? void 0 : _a.parentNode) === this.container) {
25
+ }
26
+ unbind() {
27
+ if (this.container && this.canvas?.parentNode === this.container) {
29
28
  this.container.removeChild(this.canvas);
30
29
  }
31
30
  if (this.parentElement &&
32
- ((_b = this.container) === null || _b === void 0 ? void 0 : _b.parentNode) === this.parentElement) {
31
+ this.container?.parentNode === this.parentElement) {
33
32
  this.parentElement.removeChild(this.container);
34
33
  }
35
34
  this.canvas = undefined;
36
35
  this.container = undefined;
37
36
  this.parentElement = undefined;
38
- };
39
- IRenderer.prototype.drawFrame = function (_videoFrame) {
37
+ }
38
+ drawFrame(_videoFrame) {
40
39
  if (!this.canvas)
41
40
  return;
42
- //@ts-ignore
43
- if (!this.canvas.checkVisibility()) {
41
+ if (this.canvas.style.display !== '') {
44
42
  this.canvas.style.display = '';
45
43
  }
46
- };
47
- Object.defineProperty(IRenderer.prototype, "context", {
48
- get: function () {
49
- return this._context;
50
- },
51
- set: function (_a) {
52
- var renderMode = _a.renderMode, mirrorMode = _a.mirrorMode;
53
- if (this.context.renderMode !== renderMode) {
54
- this.context.renderMode = renderMode;
55
- this.updateRenderMode();
56
- }
57
- if (this.context.mirrorMode !== mirrorMode) {
58
- this.context.mirrorMode = mirrorMode;
59
- this.updateMirrorMode();
60
- }
61
- },
62
- enumerable: false,
63
- configurable: true
64
- });
65
- IRenderer.prototype.updateRenderMode = function () {
66
- var _a;
44
+ }
45
+ set context({ renderMode, mirrorMode }) {
46
+ if (this.context.renderMode !== renderMode) {
47
+ this.context.renderMode = renderMode;
48
+ this.updateRenderMode();
49
+ }
50
+ if (this.context.mirrorMode !== mirrorMode) {
51
+ this.context.mirrorMode = mirrorMode;
52
+ this.updateMirrorMode();
53
+ }
54
+ }
55
+ get context() {
56
+ return this._context;
57
+ }
58
+ updateRenderMode() {
67
59
  if (!this.canvas || !this.container)
68
60
  return;
69
- var _b = this.container, clientWidth = _b.clientWidth, clientHeight = _b.clientHeight;
70
- var _c = this.canvas, width = _c.width, height = _c.height;
71
- var containerAspectRatio = clientWidth / clientHeight;
72
- var canvasAspectRatio = width / height;
73
- var widthScale = clientWidth / width;
74
- var heightScale = clientHeight / height;
75
- var isHidden = ((_a = this.context) === null || _a === void 0 ? void 0 : _a.renderMode) === AgoraMediaBase_1.RenderModeType.RenderModeHidden;
76
- var scale = 1;
61
+ const { clientWidth, clientHeight } = this.container;
62
+ const { width, height } = this.canvas;
63
+ const containerAspectRatio = clientWidth / clientHeight;
64
+ const canvasAspectRatio = width / height;
65
+ const widthScale = clientWidth / width;
66
+ const heightScale = clientHeight / height;
67
+ const isHidden = this.context?.renderMode === AgoraMediaBase_1.RenderModeType.RenderModeHidden;
68
+ let scale = 1;
77
69
  // If container's aspect ratio is larger than canvas's aspect ratio
78
70
  if (containerAspectRatio > canvasAspectRatio) {
79
71
  // Scale canvas to fit container's width on hidden mode
@@ -85,9 +77,9 @@ var IRenderer = /** @class */ (function () {
85
77
  // Scale canvas to fit container's width on fit mode
86
78
  scale = isHidden ? heightScale : widthScale;
87
79
  }
88
- this.canvas.style.transform = "scale(".concat(scale, ")");
89
- };
90
- IRenderer.prototype.updateMirrorMode = function () {
80
+ this.canvas.style.transform = `scale(${scale})`;
81
+ }
82
+ updateMirrorMode() {
91
83
  if (!this.parentElement)
92
84
  return;
93
85
  Object.assign(this.parentElement.style, {
@@ -95,9 +87,8 @@ var IRenderer = /** @class */ (function () {
95
87
  ? 'rotateY(180deg)'
96
88
  : '',
97
89
  });
98
- };
99
- IRenderer.prototype.rotateCanvas = function (_a) {
100
- var width = _a.width, height = _a.height, rotation = _a.rotation;
90
+ }
91
+ rotateCanvas({ width, height, rotation }) {
101
92
  if (!this.canvas)
102
93
  return;
103
94
  if (rotation === 0 || rotation === 180) {
@@ -109,9 +100,8 @@ var IRenderer = /** @class */ (function () {
109
100
  this.canvas.width = height;
110
101
  }
111
102
  else {
112
- throw new Error("Invalid rotation: ".concat(rotation, ", only 0, 90, 180, 270 are supported"));
103
+ throw new Error(`Invalid rotation: ${rotation}, only 0, 90, 180, 270 are supported`);
113
104
  }
114
- };
115
- return IRenderer;
116
- }());
105
+ }
106
+ }
117
107
  exports.IRenderer = IRenderer;
@@ -1,26 +1,15 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
2
  Object.defineProperty(exports, "__esModule", { value: true });
14
3
  exports.IRendererManager = void 0;
15
- var AgoraBase_1 = require("../Private/AgoraBase");
16
- var AgoraMediaBase_1 = require("../Private/AgoraMediaBase");
17
- var Utils_1 = require("../Utils");
18
- var RendererCache_1 = require("./RendererCache");
4
+ const AgoraBase_1 = require("../Private/AgoraBase");
5
+ const AgoraMediaBase_1 = require("../Private/AgoraMediaBase");
6
+ const Utils_1 = require("../Utils");
7
+ const RendererCache_1 = require("./RendererCache");
19
8
  /**
20
9
  * @ignore
21
10
  */
22
- var IRendererManager = /** @class */ (function () {
23
- function IRendererManager() {
11
+ class IRendererManager {
12
+ constructor() {
24
13
  this._renderingFps = 15;
25
14
  this._currentFrameCount = 0;
26
15
  this._previousFirstFrameTime = 0;
@@ -30,59 +19,42 @@ var IRendererManager = /** @class */ (function () {
30
19
  mirrorMode: AgoraBase_1.VideoMirrorModeType.VideoMirrorModeDisabled,
31
20
  };
32
21
  }
33
- Object.defineProperty(IRendererManager.prototype, "renderingFps", {
34
- get: function () {
35
- return this._renderingFps;
36
- },
37
- set: function (fps) {
38
- if (this._renderingFps !== fps) {
39
- this._renderingFps = fps;
40
- if (this._renderingTimer) {
41
- this.stopRendering();
42
- this.startRendering();
43
- }
22
+ set renderingFps(fps) {
23
+ if (this._renderingFps !== fps) {
24
+ this._renderingFps = fps;
25
+ if (this._renderingTimer) {
26
+ this.stopRendering();
27
+ this.startRendering();
44
28
  }
45
- },
46
- enumerable: false,
47
- configurable: true
48
- });
49
- Object.defineProperty(IRendererManager.prototype, "defaultChannelId", {
50
- get: function () {
51
- var _a;
52
- return (_a = this._context.channelId) !== null && _a !== void 0 ? _a : '';
53
- },
54
- set: function (channelId) {
55
- this._context.channelId = channelId;
56
- },
57
- enumerable: false,
58
- configurable: true
59
- });
60
- Object.defineProperty(IRendererManager.prototype, "defaultRenderMode", {
61
- get: function () {
62
- return this._context.renderMode;
63
- },
64
- enumerable: false,
65
- configurable: true
66
- });
67
- Object.defineProperty(IRendererManager.prototype, "defaultMirrorMode", {
68
- get: function () {
69
- return this._context.mirrorMode;
70
- },
71
- enumerable: false,
72
- configurable: true
73
- });
74
- IRendererManager.prototype.release = function () {
29
+ }
30
+ }
31
+ get renderingFps() {
32
+ return this._renderingFps;
33
+ }
34
+ set defaultChannelId(channelId) {
35
+ this._context.channelId = channelId;
36
+ }
37
+ get defaultChannelId() {
38
+ return this._context.channelId ?? '';
39
+ }
40
+ get defaultRenderMode() {
41
+ return this._context.renderMode;
42
+ }
43
+ get defaultMirrorMode() {
44
+ return this._context.mirrorMode;
45
+ }
46
+ release() {
75
47
  this.stopRendering();
76
48
  this.clearRendererCache();
77
- };
78
- IRendererManager.prototype.precheckRendererContext = function (context) {
79
- var sourceType = context.sourceType, uid = context.uid, channelId = context.channelId, mediaPlayerId = context.mediaPlayerId, _a = context.renderMode, renderMode = _a === void 0 ? this.defaultRenderMode : _a, _b = context.mirrorMode, mirrorMode = _b === void 0 ? this.defaultMirrorMode : _b;
49
+ }
50
+ precheckRendererContext(context) {
51
+ let { sourceType, uid, channelId, mediaPlayerId, renderMode = this.defaultRenderMode, mirrorMode = this.defaultMirrorMode, } = context;
80
52
  switch (sourceType) {
81
53
  case AgoraMediaBase_1.VideoSourceType.VideoSourceRemote:
82
54
  if (uid === undefined) {
83
55
  throw new Error('uid is required');
84
56
  }
85
- channelId = channelId !== null && channelId !== void 0 ? channelId : this.defaultChannelId;
57
+ channelId = channelId ?? this.defaultChannelId;
86
58
  break;
87
59
  case AgoraMediaBase_1.VideoSourceType.VideoSourceMediaPlayer:
88
60
  if (mediaPlayerId === undefined) {
@@ -101,11 +73,11 @@ var IRendererManager = /** @class */ (function () {
101
73
  uid = 0;
102
74
  break;
103
75
  }
104
- return __assign(__assign({}, context), { sourceType: sourceType, uid: uid, channelId: channelId, renderMode: renderMode, mirrorMode: mirrorMode });
105
- };
106
- IRendererManager.prototype.addOrRemoveRenderer = function (context) {
76
+ return { ...context, sourceType, uid, channelId, renderMode, mirrorMode };
77
+ }
78
+ addOrRemoveRenderer(context) {
107
79
  // To be compatible with the old API
108
- var _a = context.setupMode, setupMode = _a === void 0 ? AgoraBase_1.VideoViewSetupMode.VideoViewSetupAdd : _a;
80
+ let { setupMode = AgoraBase_1.VideoViewSetupMode.VideoViewSetupAdd } = context;
109
81
  if (!context.view)
110
82
  setupMode = AgoraBase_1.VideoViewSetupMode.VideoViewSetupRemove;
111
83
  switch (setupMode) {
@@ -118,15 +90,15 @@ var IRendererManager = /** @class */ (function () {
118
90
  this.removeRendererFromCache(context);
119
91
  return this.addRendererToCache(context);
120
92
  }
121
- };
122
- IRendererManager.prototype.addRendererToCache = function (context) {
123
- var checkedContext = this.precheckRendererContext(context);
93
+ }
94
+ addRendererToCache(context) {
95
+ const checkedContext = this.precheckRendererContext(context);
124
96
  if (!checkedContext.view)
125
97
  return undefined;
126
98
  if (this.findRenderer(checkedContext.view)) {
127
99
  throw new Error('You have already added this view to the renderer');
128
100
  }
129
- var rendererCache = this.getRendererCache(checkedContext);
101
+ let rendererCache = this.getRendererCache(checkedContext);
130
102
  if (!rendererCache) {
131
103
  rendererCache = new RendererCache_1.RendererCache(checkedContext);
132
104
  this._rendererCaches.push(rendererCache);
@@ -134,84 +106,88 @@ var IRendererManager = /** @class */ (function () {
134
106
  rendererCache.addRenderer(this.createRenderer(checkedContext));
135
107
  this.startRendering();
136
108
  return rendererCache;
137
- };
138
- IRendererManager.prototype.removeRendererFromCache = function (context) {
139
- var checkedContext = this.precheckRendererContext(context);
140
- var rendererCache = this.getRendererCache(checkedContext);
141
- if (!rendererCache)
142
- return;
143
- if (checkedContext.view) {
144
- var renderer = rendererCache.findRenderer(checkedContext.view);
145
- if (!renderer)
146
- return;
147
- rendererCache.removeRenderer(renderer);
109
+ }
110
+ removeRendererFromCache(context) {
111
+ const checkedContext = this.precheckRendererContext(context);
112
+ const rendererCache = this.getRendererCache(checkedContext);
113
+ if (rendererCache) {
114
+ if (checkedContext.view) {
115
+ const renderer = rendererCache.findRenderer(checkedContext.view);
116
+ if (!renderer)
117
+ return;
118
+ rendererCache.removeRenderer(renderer);
119
+ }
120
+ else {
121
+ rendererCache.removeRenderer();
122
+ }
123
+ if (rendererCache.renderers.length === 0) {
124
+ this._rendererCaches.splice(this._rendererCaches.indexOf(rendererCache), 1);
125
+ }
148
126
  }
149
127
  else {
150
- rendererCache.removeRenderer();
151
- }
152
- if (rendererCache.renderers.length === 0) {
153
- this._rendererCaches.splice(this._rendererCaches.indexOf(rendererCache), 1);
128
+ this._rendererCaches = this._rendererCaches.filter((_rendererCache) => {
129
+ const renderer = _rendererCache.findRenderer(checkedContext.view);
130
+ if (renderer) {
131
+ _rendererCache.removeRenderer(renderer);
132
+ }
133
+ return _rendererCache.renderers.length > 0;
134
+ });
154
135
  }
155
- };
156
- IRendererManager.prototype.clearRendererCache = function () {
157
- for (var _i = 0, _a = this._rendererCaches; _i < _a.length; _i++) {
158
- var rendererCache = _a[_i];
136
+ }
137
+ clearRendererCache() {
138
+ for (const rendererCache of this._rendererCaches) {
159
139
  rendererCache.removeRenderer();
160
140
  }
161
141
  this._rendererCaches.splice(0);
162
- };
163
- IRendererManager.prototype.getRendererCache = function (context) {
164
- return this._rendererCaches.find(function (cache) { return cache.key === (0, RendererCache_1.generateRendererCacheKey)(context); });
165
- };
166
- IRendererManager.prototype.getRenderers = function (context) {
167
- var _a;
168
- return ((_a = this.getRendererCache(context)) === null || _a === void 0 ? void 0 : _a.renderers) || [];
169
- };
170
- IRendererManager.prototype.findRenderer = function (view) {
171
- for (var _i = 0, _a = this._rendererCaches; _i < _a.length; _i++) {
172
- var rendererCache = _a[_i];
173
- var renderer = rendererCache.findRenderer(view);
142
+ }
143
+ getRendererCache(context) {
144
+ return this._rendererCaches.find((cache) => cache.key === (0, RendererCache_1.generateRendererCacheKey)(context));
145
+ }
146
+ getRenderers(context) {
147
+ return this.getRendererCache(context)?.renderers || [];
148
+ }
149
+ findRenderer(view) {
150
+ for (const rendererCache of this._rendererCaches) {
151
+ const renderer = rendererCache.findRenderer(view);
174
152
  if (renderer)
175
153
  return renderer;
176
154
  }
177
155
  return undefined;
178
- };
179
- IRendererManager.prototype.startRendering = function () {
180
- var _this = this;
156
+ }
157
+ startRendering() {
181
158
  if (this._renderingTimer)
182
159
  return;
183
- var renderingLooper = function () {
184
- if (_this._previousFirstFrameTime === 0) {
160
+ const renderingLooper = () => {
161
+ if (this._previousFirstFrameTime === 0) {
185
162
  // Get the current time as the time of the first frame of per second
186
- _this._previousFirstFrameTime = performance.now();
163
+ this._previousFirstFrameTime = performance.now();
187
164
  // Reset the frame count
188
- _this._currentFrameCount = 0;
165
+ this._currentFrameCount = 0;
189
166
  }
190
167
  // Increase the frame count
191
- ++_this._currentFrameCount;
168
+ ++this._currentFrameCount;
192
169
  // Get the current time
193
- var currentFrameTime = performance.now();
170
+ const currentFrameTime = performance.now();
194
171
  // Calculate the time difference between the current frame and the previous frame
195
- var deltaTime = currentFrameTime - _this._previousFirstFrameTime;
172
+ const deltaTime = currentFrameTime - this._previousFirstFrameTime;
196
173
  // Calculate the expected time of the current frame
197
- var expectedTime = (_this._currentFrameCount * 1000) / _this._renderingFps;
198
- (0, Utils_1.logDebug)(new Date().toLocaleTimeString(), 'currentFrameCount', _this._currentFrameCount, 'expectedTime', expectedTime, 'deltaTime', deltaTime);
199
- if (_this._rendererCaches.length === 0) {
174
+ const expectedTime = (this._currentFrameCount * 1000) / this._renderingFps;
175
+ (0, Utils_1.logDebug)(new Date().toLocaleTimeString(), 'currentFrameCount', this._currentFrameCount, 'expectedTime', expectedTime, 'deltaTime', deltaTime);
176
+ if (this._rendererCaches.length === 0) {
200
177
  // If there is no renderer, stop rendering
201
- _this.stopRendering();
178
+ this.stopRendering();
202
179
  return;
203
180
  }
204
181
  // Render all renderers
205
- for (var _i = 0, _a = _this._rendererCaches; _i < _a.length; _i++) {
206
- var rendererCache = _a[_i];
207
- _this.doRendering(rendererCache);
182
+ for (const rendererCache of this._rendererCaches) {
183
+ this.doRendering(rendererCache);
208
184
  }
209
- if (_this._currentFrameCount >= _this.renderingFps) {
210
- _this._previousFirstFrameTime = 0;
185
+ if (this._currentFrameCount >= this.renderingFps) {
186
+ this._previousFirstFrameTime = 0;
211
187
  }
212
188
  if (deltaTime < expectedTime) {
213
189
  // If the time difference between the current frame and the previous frame is less than the expected time, then wait for the difference
214
- _this._renderingTimer = window.setTimeout(renderingLooper, expectedTime - deltaTime);
190
+ this._renderingTimer = window.setTimeout(renderingLooper, expectedTime - deltaTime);
215
191
  }
216
192
  else {
217
193
  // If the time difference between the current frame and the previous frame is greater than the expected time, then render immediately
@@ -219,24 +195,22 @@ var IRendererManager = /** @class */ (function () {
219
195
  }
220
196
  };
221
197
  renderingLooper();
222
- };
223
- IRendererManager.prototype.stopRendering = function () {
198
+ }
199
+ stopRendering() {
224
200
  if (this._renderingTimer) {
225
201
  window.clearTimeout(this._renderingTimer);
226
202
  this._renderingTimer = undefined;
227
203
  }
228
- };
229
- IRendererManager.prototype.setRendererContext = function (context) {
230
- var checkedContext = this.precheckRendererContext(context);
231
- for (var _i = 0, _a = this._rendererCaches; _i < _a.length; _i++) {
232
- var rendererCache = _a[_i];
233
- var result = rendererCache.setRendererContext(checkedContext);
204
+ }
205
+ setRendererContext(context) {
206
+ const checkedContext = this.precheckRendererContext(context);
207
+ for (const rendererCache of this._rendererCaches) {
208
+ const result = rendererCache.setRendererContext(checkedContext);
234
209
  if (result) {
235
210
  return true;
236
211
  }
237
212
  }
238
213
  return false;
239
- };
240
- return IRendererManager;
241
- }());
214
+ }
215
+ }
242
216
  exports.IRendererManager = IRendererManager;