@@ -88,6 +88,15 @@ var PipelineManager = new Class({
8888 [ CONST . GRAPHICS_PIPELINE , GraphicsPipeline ]
8989 ] ) ;
9090
91+ /**
92+ * This map stores all Post FX Pipeline classes available in this manager.
93+ *
94+ * @name Phaser.Renderer.WebGL.PipelineManager#postPipelineClasses
95+ * @type {Phaser.Structs.Map.<string, Class> }
96+ * @since 3.50.0
97+ */
98+ this . postPipelineClasses = new CustomMap ( ) ;
99+
91100 /**
92101 * This map stores all pipeline instances in this manager.
93102 *
@@ -240,14 +249,16 @@ var PipelineManager = new Class({
240249 // Install each of the default pipelines
241250
242251 var instance ;
252+ var pipelineName ;
253+
243254 var _this = this ;
244255 var game = this . game ;
245256
246- this . classes . each ( function ( name , pipeline )
257+ this . classes . each ( function ( pipelineName , pipeline )
247258 {
248- instance = _this . add ( name , new pipeline ( { game : game } ) ) ;
259+ instance = _this . add ( pipelineName , new pipeline ( { game : game } ) ) ;
249260
250- if ( name === CONST . UTILITY_PIPELINE )
261+ if ( pipelineName === CONST . UTILITY_PIPELINE )
251262 {
252263 _this . UTILITY_PIPELINE = instance ;
253264
@@ -264,20 +275,21 @@ var PipelineManager = new Class({
264275 this . BITMAPMASK_PIPELINE = this . get ( CONST . BITMAPMASK_PIPELINE ) ;
265276
266277 // And now the ones in the config, if any
278+
267279 if ( pipelineConfig )
268280 {
269- for ( var pipelineName in pipelineConfig )
281+ for ( pipelineName in pipelineConfig )
270282 {
271283 var pipelineClass = pipelineConfig [ pipelineName ] ;
272284
273- if ( ! this . has ( pipelineName ) )
274- {
275- this . classes . set ( pipelineName , pipelineClass ) ;
276-
277- instance = new pipelineClass ( game ) ;
285+ instance = new pipelineClass ( game ) ;
278286
279- if ( ! instance . isPostFX )
287+ if ( ! instance . isPostFX )
288+ {
289+ if ( ! this . has ( pipelineName ) )
280290 {
291+ this . classes . set ( pipelineName , pipelineClass ) ;
292+
281293 this . add ( pipelineName , instance ) ;
282294 }
283295 }
@@ -380,9 +392,9 @@ var PipelineManager = new Class({
380392 */
381393 addPostPipeline : function ( name , pipeline )
382394 {
383- if ( ! this . classes . has ( name ) )
395+ if ( ! this . postPipelineClasses . has ( name ) )
384396 {
385- this . classes . set ( name , pipeline ) ;
397+ this . postPipelineClasses . set ( name , pipeline ) ;
386398 }
387399 } ,
388400
@@ -467,7 +479,7 @@ var PipelineManager = new Class({
467479 */
468480 getPostPipeline : function ( pipeline , gameObject )
469481 {
470- var pipelineClasses = this . classes ;
482+ var pipelineClasses = this . postPipelineClasses ;
471483
472484 var instance ;
473485
@@ -514,18 +526,25 @@ var PipelineManager = new Class({
514526 * @since 3.50.0
515527 *
516528 * @param {string } name - The name of the pipeline to be removed.
517- * @param {boolean } [removeClass=true] - Remove the class as well as the instance?
529+ * @param {boolean } [removeClass=true] - Remove the pipeline class as well as the instance?
530+ * @param {boolean } [removePostPipelineClass=true] - Remove the post pipeline class as well as the instance?
518531 */
519- remove : function ( name , removeClass )
532+ remove : function ( name , removeClass , removePostPipelineClass )
520533 {
521534 if ( removeClass === undefined ) { removeClass = true ; }
535+ if ( removePostPipelineClass === undefined ) { removePostPipelineClass = true ; }
522536
523537 this . pipelines . delete ( name ) ;
524538
525539 if ( removeClass )
526540 {
527541 this . classes . delete ( name ) ;
528542 }
543+
544+ if ( removePostPipelineClass )
545+ {
546+ this . postPipelineClasses . delete ( name ) ;
547+ }
529548 } ,
530549
531550 /**
@@ -1025,11 +1044,13 @@ var PipelineManager = new Class({
10251044 this . flush ( ) ;
10261045
10271046 this . classes . clear ( ) ;
1047+ this . postPipelineClasses . clear ( ) ;
10281048 this . pipelines . clear ( ) ;
10291049
10301050 this . renderer = null ;
10311051 this . game = null ;
10321052 this . classes = null ;
1053+ this . postPipelineClasses = null ;
10331054 this . pipelines = null ;
10341055 this . current = null ;
10351056 this . previous = null ;
0 commit comments