@@ -30,17 +30,30 @@ var RenderTextureCanvasRenderer = function (renderer, renderTexture, interpolati
3030
3131 var ctx = renderer . currentContext ;
3232
33+ // Alpha
34+
35+ var alpha = camera . alpha * renderTexture . alpha ;
36+
37+ if ( alpha === 0 )
38+ {
39+ // Nothing to see, so abort early
40+ return ;
41+ }
42+ else if ( renderer . currentAlpha !== alpha )
43+ {
44+ renderer . currentAlpha = alpha ;
45+ ctx . globalAlpha = alpha ;
46+ }
47+
48+ // Blend Mode
49+
3350 if ( renderer . currentBlendMode !== renderTexture . blendMode )
3451 {
3552 renderer . currentBlendMode = renderTexture . blendMode ;
3653 ctx . globalCompositeOperation = renderer . blendModes [ renderTexture . blendMode ] ;
3754 }
3855
39- if ( renderer . currentAlpha !== renderTexture . alpha )
40- {
41- renderer . currentAlpha = renderTexture . alpha ;
42- ctx . globalAlpha = renderTexture . alpha ;
43- }
56+ // Scale Mode
4457
4558 if ( renderer . currentScaleMode !== renderTexture . scaleMode )
4659 {
@@ -74,11 +87,14 @@ var RenderTextureCanvasRenderer = function (renderer, renderTexture, interpolati
7487 }
7588
7689 ctx . save ( ) ;
90+
7791 if ( parentMatrix !== undefined )
7892 {
7993 var matrix = parentMatrix . matrix ;
94+
8095 ctx . transform ( matrix [ 0 ] , matrix [ 1 ] , matrix [ 2 ] , matrix [ 3 ] , matrix [ 4 ] , matrix [ 5 ] ) ;
8196 }
97+
8298 ctx . translate ( renderTexture . x - camera . scrollX * renderTexture . scrollFactorX , renderTexture . y - camera . scrollY * renderTexture . scrollFactorY ) ;
8399 ctx . rotate ( renderTexture . rotation ) ;
84100 ctx . scale ( renderTexture . scaleX , renderTexture . scaleY ) ;
0 commit comments