@@ -92,6 +92,7 @@ const char *Director::EVENT_AFTER_VISIT = "director_after_visit";
92
92
const char *Director::EVENT_BEFORE_UPDATE = " director_before_update" ;
93
93
const char *Director::EVENT_AFTER_UPDATE = " director_after_update" ;
94
94
const char *Director::EVENT_RESET = " director_reset" ;
95
+ const char *Director::EVENT_BEFORE_DRAW = " director_before_draw" ;
95
96
96
97
Director* Director::getInstance ()
97
98
{
@@ -162,6 +163,8 @@ bool Director::init(void)
162
163
_eventDispatcher = new (std::nothrow) EventDispatcher ();
163
164
_eventAfterDraw = new (std::nothrow) EventCustom (EVENT_AFTER_DRAW);
164
165
_eventAfterDraw->setUserData (this );
166
+ _eventBeforeDraw = new (std::nothrow) EventCustom (EVENT_BEFORE_DRAW);
167
+ _eventBeforeDraw->setUserData (this );
165
168
_eventAfterVisit = new (std::nothrow) EventCustom (EVENT_AFTER_VISIT);
166
169
_eventAfterVisit->setUserData (this );
167
170
_eventBeforeUpdate = new (std::nothrow) EventCustom (EVENT_BEFORE_UPDATE);
@@ -198,6 +201,7 @@ Director::~Director(void)
198
201
delete _eventBeforeUpdate;
199
202
delete _eventAfterUpdate;
200
203
delete _eventAfterDraw;
204
+ delete _eventBeforeDraw;
201
205
delete _eventAfterVisit;
202
206
delete _eventProjectionChanged;
203
207
delete _eventResetDirector;
@@ -281,6 +285,9 @@ void Director::drawScene()
281
285
282
286
_renderer->clear ();
283
287
experimental::FrameBuffer::clearAllFBOs ();
288
+
289
+ _eventDispatcher->dispatchEvent (_eventBeforeDraw);
290
+
284
291
/* to avoid flickr, nextScene MUST be here: after tick and before draw.
285
292
* FIXME: Which bug is this one. It seems that it can't be reproduced with v0.9
286
293
*/
0 commit comments