@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 +3 -3
- package/src/Renderer.ts +16 -15
- package/types/index.d.ts +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@leafer/renderer",
|
|
3
|
-
"version": "1.6.
|
|
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.
|
|
25
|
+
"@leafer/core": "1.6.2"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@leafer/interface": "1.6.
|
|
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,
|
|
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
|
|
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,
|
|
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 (
|
|
216
|
-
if (
|
|
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,
|
|
36
|
+
protected __render(bounds: IBounds, realBounds?: IBounds): void;
|
|
37
37
|
addBlock(block: IBounds): void;
|
|
38
38
|
mergeBlocks(): void;
|
|
39
39
|
protected __requestRender(): void;
|