@leafer/renderer 1.9.4 → 1.9.5

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 (2) hide show
  1. package/package.json +3 -3
  2. package/src/Renderer.ts +14 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer/renderer",
3
- "version": "1.9.4",
3
+ "version": "1.9.5",
4
4
  "description": "@leafer/renderer",
5
5
  "author": "Chao (Leafer) Wan",
6
6
  "license": "MIT",
@@ -22,9 +22,9 @@
22
22
  "leaferjs"
23
23
  ],
24
24
  "dependencies": {
25
- "@leafer/core": "1.9.4"
25
+ "@leafer/core": "1.9.5"
26
26
  },
27
27
  "devDependencies": {
28
- "@leafer/interface": "1.9.4"
28
+ "@leafer/interface": "1.9.5"
29
29
  }
30
30
  }
package/src/Renderer.ts CHANGED
@@ -23,7 +23,7 @@ export class Renderer implements IRenderer {
23
23
 
24
24
  public config: IRendererConfig = {
25
25
  usePartRender: true,
26
- maxFPS: 60
26
+ maxFPS: 120
27
27
  }
28
28
 
29
29
  static clipSpread = 10
@@ -226,14 +226,22 @@ export class Renderer implements IRenderer {
226
226
  if (target.parentApp) return target.parentApp.requestRender(false) // App 模式下统一走 app 控制渲染帧
227
227
 
228
228
  const requestTime = this.requestTime = Date.now()
229
- Platform.requestRender(() => {
230
229
 
231
- this.FPS = Math.min(60, Math.ceil(1000 / (Date.now() - requestTime)))
230
+ const render = () => {
231
+
232
+ const nowFPS = 1000 / (Date.now() - requestTime)
233
+
234
+ const { maxFPS } = this.config
235
+ if (maxFPS && nowFPS > maxFPS - 0.5) return Platform.requestRender(render)
236
+
237
+ this.FPS = Math.min(120, Math.ceil(nowFPS))
232
238
  this.requestTime = 0
233
239
 
234
240
  this.checkRender()
235
241
 
236
- })
242
+ }
243
+
244
+ Platform.requestRender(render)
237
245
  }
238
246
 
239
247
  protected __onResize(e: ResizeEvent): void {
@@ -291,7 +299,8 @@ export class Renderer implements IRenderer {
291
299
  if (this.target) {
292
300
  this.stop()
293
301
  this.__removeListenEvents()
294
- this.target = this.canvas = this.config = null
302
+ this.config = {}
303
+ this.target = this.canvas = null
295
304
  }
296
305
  }
297
306
  }