File tree 1 file changed +14
-4
lines changed
1 file changed +14
-4
lines changed Original file line number Diff line number Diff line change @@ -218,8 +218,6 @@ cc.Director = cc.Class.extend(/** @lends cc.Director# */{
218
218
cc . eventManager . dispatchEvent ( this . _eventAfterUpdate ) ;
219
219
}
220
220
221
- renderer . clear ( ) ;
222
-
223
221
/* to avoid flickr, nextScene MUST be here: after tick and before draw.
224
222
XXX: Which bug is this one. It seems that it can't be reproduced with v0.9 */
225
223
if ( this . _nextScene ) {
@@ -230,15 +228,25 @@ cc.Director = cc.Class.extend(/** @lends cc.Director# */{
230
228
this . _beforeVisitScene ( ) ;
231
229
232
230
// draw the scene
231
+ var skipRendering = false ;
233
232
if ( this . _runningScene ) {
234
233
if ( renderer . childrenOrderDirty === true ) {
235
234
cc . renderer . clearRenderCommands ( ) ;
236
235
cc . renderer . assignedZ = 0 ;
237
236
this . _runningScene . _renderCmd . _curLevel = 0 ; //level start from 0;
238
237
this . _runningScene . visit ( ) ;
239
238
renderer . resetFlag ( ) ;
240
- } else if ( renderer . transformDirty ( ) === true )
239
+ }
240
+ else if ( renderer . transformDirty ( ) === true ) {
241
241
renderer . transform ( ) ;
242
+ }
243
+ else {
244
+ skipRendering = true ;
245
+ }
246
+ }
247
+
248
+ if ( ! skipRendering ) {
249
+ renderer . clear ( ) ;
242
250
}
243
251
244
252
// draw the notifications node
@@ -251,7 +259,9 @@ cc.Director = cc.Class.extend(/** @lends cc.Director# */{
251
259
if ( this . _afterVisitScene )
252
260
this . _afterVisitScene ( ) ;
253
261
254
- renderer . rendering ( cc . _renderContext ) ;
262
+ if ( ! skipRendering ) {
263
+ renderer . rendering ( cc . _renderContext ) ;
264
+ }
255
265
this . _totalFrames ++ ;
256
266
257
267
cc . eventManager . dispatchEvent ( this . _eventAfterDraw ) ;
You can’t perform that action at this time.
0 commit comments