Pass* Pass::createWithGLProgramState(Technique* technique, GLProgramState* programState) { auto pass = new (std::nothrow) Pass(); if (pass && pass->initWithGLProgramState(technique, programState)) { pass->autorelease(); return pass; } CC_SAFE_DELETE(pass); return nullptr; }
Material* Material::createWithGLStateProgram(GLProgramState* programState) { CCASSERT(programState, "Invalid GL Program State"); auto mat = new (std::nothrow) Material(); if (mat && mat->initWithGLProgramState(programState)) { mat->autorelease(); return mat; } return nullptr; }
Sprite3DMaterial* Sprite3DMaterial::createWithGLStateProgram(GLProgramState* programState) { CCASSERT(programState, "Invalid GL Program State"); auto mat = new (std::nothrow) Sprite3DMaterial(); if (mat && mat->initWithGLProgramState(programState)) { mat->_type = Sprite3DMaterial::MaterialType::CUSTOM; mat->autorelease(); return mat; } CC_SAFE_DELETE(mat); return nullptr; }