Skip to content

Commit 1145fd4

Browse files
committed
Add Phaser.Scenes.Events#PRE_RENDER event
By Phaser.Scenes.Systems#render
1 parent a7308da commit 1145fd4

3 files changed

Lines changed: 35 additions & 0 deletions

File tree

src/scene/Systems.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,7 @@ var Systems = new Class({
391391
* Instructs the Scene to render itself via its Camera Manager to the renderer given.
392392
*
393393
* @method Phaser.Scenes.Systems#render
394+
* @fires Phaser.Scenes.Events#PRE_RENDER
394395
* @fires Phaser.Scenes.Events#RENDER
395396
* @since 3.0.0
396397
*
@@ -402,6 +403,8 @@ var Systems = new Class({
402403

403404
displayList.depthSort();
404405

406+
this.events.emit(Events.PRE_RENDER, renderer);
407+
405408
this.cameras.render(renderer, displayList);
406409

407410
this.events.emit(Events.RENDER, renderer);
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
/**
2+
* @author samme
3+
* @copyright 2021 Photon Storm Ltd.
4+
* @license {@link https://opensource.org/licenses/MIT|MIT License}
5+
*/
6+
7+
/**
8+
* The Scene Systems Pre-Render Event.
9+
*
10+
* This event is dispatched by a Scene during the main game loop step.
11+
*
12+
* The event flow for a single step of a Scene is as follows:
13+
*
14+
* 1. [PRE_UPDATE]{@linkcode Phaser.Scenes.Events#event:PRE_UPDATE}
15+
* 2. [UPDATE]{@linkcode Phaser.Scenes.Events#event:UPDATE}
16+
* 3. The `Scene.update` method is called, if it exists
17+
* 4. [POST_UPDATE]{@linkcode Phaser.Scenes.Events#event:POST_UPDATE}
18+
* 5. [PRE_RENDER]{@linkcode Phaser.Scenes.Events#event:PRE_RENDER}
19+
* 6. [RENDER]{@linkcode Phaser.Scenes.Events#event:RENDER}
20+
*
21+
* Listen to this event from a Scene using `this.scene.events.on('prerender', listener)`.
22+
*
23+
* A Scene will only render if it is visible.
24+
* This event is dispatched after the Scene Display List is sorted and before the Scene is rendered.
25+
*
26+
* @event Phaser.Scenes.Events#PRE_RENDER
27+
* @since 3.53.0
28+
*
29+
* @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - The renderer that rendered the Scene.
30+
*/
31+
module.exports = 'prerender';

src/scene/events/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ module.exports = {
1616
DESTROY: require('./DESTROY_EVENT'),
1717
PAUSE: require('./PAUSE_EVENT'),
1818
POST_UPDATE: require('./POST_UPDATE_EVENT'),
19+
PRE_RENDER: require('./PRE_RENDER_EVENT'),
1920
PRE_UPDATE: require('./PRE_UPDATE_EVENT'),
2021
READY: require('./READY_EVENT'),
2122
REMOVED_FROM_SCENE: require('./REMOVED_FROM_SCENE_EVENT'),

0 commit comments

Comments
 (0)