This code in DrawNode::init() causes DrawNode to be reinitialized exponentially more times when the application is paused and then resumed:
#if CC_ENABLE_CACHE_TEXTURE_DATA
// Need to listen the event only when not use batchnode, because it will use VBO
auto listener = EventListenerCustom::create(EVENT_RENDERER_RECREATED, [this](EventCustom* event){
/** listen the event that renderer was recreated on Android/WP8 */
this->init();
});
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
#endif
The first time the program is resumed, init() is called once. The second time, it is called twice, then four times, then eight times, etc.
One solution is to register the EVENT_RENDERER_RECREATED event listener only once: the first time that init() is called.
This problem was observed in version 3.8.1.