示例#1
0
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;
}