@leafer/renderer 1.6.0 → 1.6.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leafer/renderer",
3
- "version": "1.6.0",
3
+ "version": "1.6.2",
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.6.0"
25
+ "@leafer/core": "1.6.2"
26
26
  },
27
27
  "devDependencies": {
28
- "@leafer/interface": "1.6.0"
28
+ "@leafer/interface": "1.6.2"
29
29
  }
30
30
  }
package/src/Renderer.ts CHANGED
@@ -64,6 +64,16 @@ export class Renderer implements IRenderer {
64
64
 
65
65
  public checkRender(): void {
66
66
  if (this.running) {
67
+ const { target } = this
68
+ if (target.isApp) {
69
+ target.emit(RenderEvent.CHILD_START, target);
70
+ (target.children as ILeaferBase[]).forEach(leafer => {
71
+ leafer.renderer.FPS = this.FPS
72
+ leafer.renderer.checkRender()
73
+ })
74
+ target.emit(RenderEvent.CHILD_END, target)
75
+ }
76
+
67
77
  if (this.changed && this.canvas.view) this.render()
68
78
  this.target.emit(RenderEvent.NEXT)
69
79
  }
@@ -162,7 +172,7 @@ export class Renderer implements IRenderer {
162
172
  canvas.clearWorld(bounds, true)
163
173
  canvas.clipWorld(bounds, true)
164
174
 
165
- this.__render(bounds, block.includes(this.target.__world), realBounds)
175
+ this.__render(bounds, realBounds)
166
176
  canvas.restore()
167
177
 
168
178
  Run.end(t)
@@ -174,14 +184,14 @@ export class Renderer implements IRenderer {
174
184
 
175
185
  canvas.save()
176
186
  canvas.clear()
177
- this.__render(canvas.bounds, true)
187
+ this.__render(canvas.bounds)
178
188
  canvas.restore()
179
189
 
180
190
  Run.end(t)
181
191
  }
182
192
 
183
- protected __render(bounds: IBounds, includes?: boolean, realBounds?: IBounds,): void {
184
- const { canvas } = this, options: IRenderOptions = includes ? { includes } : { bounds, includes }
193
+ protected __render(bounds: IBounds, realBounds?: IBounds): void {
194
+ const { canvas } = this, includes = bounds.includes(this.target.__world), options: IRenderOptions = includes ? { includes } : { bounds, includes }
185
195
 
186
196
  if (this.needFill) canvas.fillWorld(bounds, this.config.fill)
187
197
  if (Debug.showRepaint) Debug.drawRepaint(canvas, bounds)
@@ -212,8 +222,8 @@ export class Renderer implements IRenderer {
212
222
 
213
223
  protected __requestRender(): void {
214
224
  const target = this.target as ILeaferBase
215
- if (target.parentApp) return target.parentApp.renderer.update(false) // App 模式下统一走 app 控制渲染帧
216
- if (this.requestTime) return
225
+ if (this.requestTime || !target) return
226
+ if (target.parentApp) return target.parentApp.requestRender(false) // App 模式下统一走 app 控制渲染帧
217
227
 
218
228
  const requestTime = this.requestTime = Date.now()
219
229
  Platform.requestRender(() => {
@@ -221,15 +231,6 @@ export class Renderer implements IRenderer {
221
231
  this.FPS = Math.min(60, Math.ceil(1000 / (Date.now() - requestTime)))
222
232
  this.requestTime = 0
223
233
 
224
- if (target.isApp) {
225
- target.emit(RenderEvent.CHILD_START, target);
226
- (target.children as ILeaferBase[]).forEach(leafer => {
227
- leafer.renderer.FPS = this.FPS
228
- leafer.renderer.checkRender()
229
- })
230
- target.emit(RenderEvent.CHILD_END, target)
231
- }
232
-
233
234
  this.checkRender()
234
235
 
235
236
  })
package/types/index.d.ts CHANGED
@@ -33,7 +33,7 @@ declare class Renderer implements IRenderer {
33
33
  partRender(): void;
34
34
  clipRender(block: IBounds): void;
35
35
  fullRender(): void;
36
- protected __render(bounds: IBounds, includes?: boolean, realBounds?: IBounds): void;
36
+ protected __render(bounds: IBounds, realBounds?: IBounds): void;
37
37
  addBlock(block: IBounds): void;
38
38
  mergeBlocks(): void;
39
39
  protected __requestRender(): void;