逛cocos China看到的shader导致内存不断上升解决方案
getorcreatewithName的创建方式每次都会创建新的。最好先找找是否有缓存的可以拿来用
void loadShaders(const char * vert, const char * frag, Sprite*_sprite)
{
auto glprogram=GLProgramCache::getInstance()->getGLProgram("mytest");
if (!glprogram)
{
glprogram= GLProgram::createWithFilenames(vert, frag);
GLProgramCache::getInstance()->addGLProgram(glprogram, "mytest");
}
auto glprogramstate = GLProgramState::create(glprogram);
if (glprogramstate)
{
_sprite->setGLProgramState(glprogramstate);
}
}