@@ -663,48 +663,50 @@ export class EffectComposer {
663663
664664 for ( const pass of this . passes ) {
665665
666- if ( pass . enabled ) {
666+ if ( ! pass . enabled ) {
667667
668- // Copy the depth buffer to the stable depth target just before the first pass that swaps buffers
669- if ( ! depthBlitted && this . _stableDepthTarget !== null && pass . needsSwap ) {
668+ continue ;
670669
671- this . blitDepthBuffer ( this . inputBuffer ) ;
672- depthBlitted = true ;
670+ }
673671
674- }
672+ // Copy the depth buffer to the stable depth target just before the first pass that swaps buffers
673+ if ( ! depthBlitted && this . _stableDepthTarget !== null && pass . needsSwap ) {
675674
676- pass . render ( renderer , inputBuffer , outputBuffer , deltaTime , stencilTest ) ;
675+ this . blitDepthBuffer ( this . inputBuffer ) ;
676+ depthBlitted = true ;
677677
678- if ( pass . needsSwap ) {
678+ }
679679
680- if ( stencilTest ) {
680+ pass . render ( renderer , inputBuffer , outputBuffer , deltaTime , stencilTest ) ;
681681
682- copyPass . renderToScreen = pass . renderToScreen ;
683- context = renderer . getContext ( ) ;
684- stencil = renderer . state . buffers . stencil ;
682+ if ( pass . needsSwap ) {
685683
686- // Preserve the unaffected pixels.
687- stencil . setFunc ( context . NOTEQUAL , 1 , 0xffffffff ) ;
688- copyPass . render ( renderer , inputBuffer , outputBuffer , deltaTime , stencilTest ) ;
689- stencil . setFunc ( context . EQUAL , 1 , 0xffffffff ) ;
684+ if ( stencilTest ) {
690685
691- }
686+ copyPass . renderToScreen = pass . renderToScreen ;
687+ context = renderer . getContext ( ) ;
688+ stencil = renderer . state . buffers . stencil ;
692689
693- buffer = inputBuffer ;
694- inputBuffer = outputBuffer ;
695- outputBuffer = buffer ;
690+ // Preserve the unaffected pixels.
691+ stencil . setFunc ( context . NOTEQUAL , 1 , 0xffffffff ) ;
692+ copyPass . render ( renderer , inputBuffer , outputBuffer , deltaTime , stencilTest ) ;
693+ stencil . setFunc ( context . EQUAL , 1 , 0xffffffff ) ;
696694
697695 }
698696
699- if ( pass instanceof MaskPass ) {
697+ buffer = inputBuffer ;
698+ inputBuffer = outputBuffer ;
699+ outputBuffer = buffer ;
700700
701- stencilTest = true ;
701+ }
702702
703- } else if ( pass instanceof ClearMaskPass ) {
703+ if ( pass instanceof MaskPass ) {
704704
705- stencilTest = false ;
705+ stencilTest = true ;
706706
707- }
707+ } else if ( pass instanceof ClearMaskPass ) {
708+
709+ stencilTest = false ;
708710
709711 }
710712
0 commit comments