11var Commands = require ( './Commands' ) ;
22var GameObject = require ( '../GameObject' ) ;
33
4- var GraphicsCanvasRenderer = function ( renderer , src , interpolationPercentage , camera , renderTargetCtx )
4+ var GraphicsCanvasRenderer = function ( renderer , src , interpolationPercentage , camera , renderTargetCtx , allowClip )
55{
66 if ( GameObject . RENDER_MASK !== src . renderFlags || ( src . cameraFilter > 0 && ( src . cameraFilter & camera . _id ) ) )
77 {
@@ -102,20 +102,38 @@ var GraphicsCanvasRenderer = function (renderer, src, interpolationPercentage, c
102102 break ;
103103
104104 case Commands . FILL_PATH :
105- ctx . fill ( ) ;
105+ if ( ! allowClip )
106+ {
107+ ctx . fill ( ) ;
108+ }
106109 break ;
107110
108111 case Commands . STROKE_PATH :
109- ctx . stroke ( ) ;
112+ if ( ! allowClip )
113+ {
114+ ctx . stroke ( ) ;
115+ }
110116 break ;
111117
112118 case Commands . FILL_RECT :
113- ctx . fillRect (
114- commandBuffer [ index + 1 ] ,
115- commandBuffer [ index + 2 ] ,
116- commandBuffer [ index + 3 ] ,
117- commandBuffer [ index + 4 ]
118- ) ;
119+ if ( ! allowClip )
120+ {
121+ ctx . fillRect (
122+ commandBuffer [ index + 1 ] ,
123+ commandBuffer [ index + 2 ] ,
124+ commandBuffer [ index + 3 ] ,
125+ commandBuffer [ index + 4 ]
126+ ) ;
127+ }
128+ else
129+ {
130+ ctx . rect (
131+ commandBuffer [ index + 1 ] ,
132+ commandBuffer [ index + 2 ] ,
133+ commandBuffer [ index + 3 ] ,
134+ commandBuffer [ index + 4 ]
135+ ) ;
136+ }
119137 index += 4 ;
120138 break ;
121139
@@ -125,7 +143,10 @@ var GraphicsCanvasRenderer = function (renderer, src, interpolationPercentage, c
125143 ctx . lineTo ( commandBuffer [ index + 3 ] , commandBuffer [ index + 4 ] ) ;
126144 ctx . lineTo ( commandBuffer [ index + 5 ] , commandBuffer [ index + 6 ] ) ;
127145 ctx . closePath ( ) ;
128- ctx . fill ( ) ;
146+ if ( ! allowClip )
147+ {
148+ ctx . fill ( ) ;
149+ }
129150 index += 6 ;
130151 break ;
131152
@@ -135,7 +156,10 @@ var GraphicsCanvasRenderer = function (renderer, src, interpolationPercentage, c
135156 ctx . lineTo ( commandBuffer [ index + 3 ] , commandBuffer [ index + 4 ] ) ;
136157 ctx . lineTo ( commandBuffer [ index + 5 ] , commandBuffer [ index + 6 ] ) ;
137158 ctx . closePath ( ) ;
138- ctx . stroke ( ) ;
159+ if ( ! allowClip )
160+ {
161+ ctx . stroke ( ) ;
162+ }
139163 index += 6 ;
140164 break ;
141165
0 commit comments