setBlendFunc 方法在3.17 上运行正常,在4.0 上得不到想要的结果

cocos2d-x version: 4.0
devices test on: windows

测试代码 实现的效果如上图,但是 4.0 上 同样的代码 无法得到上面结果

function App:test()
    local back = display.newSprite("res/maptest/back.jpg")
    back:setAnchorPoint(cc.p(0,0))
    back:setPosition(cc.p(0, 0))
    self.Stage:addChild(back)

    local dead = display.newSprite("res/maptest/dead1.png")
    dead:setAnchorPoint(cc.p(0,0))
    dead:setPosition(cc.p(0, 0))

    self._digLayer = cc.RenderTexture:create( dead:getContentSize().width, dead:getContentSize().height)
    self._digLayer:setPosition(0,0)
    self._digLayer:getSprite():setAnchorPoint(cc.p(0,0))
    self._digLayer.rect = cc.rect(0,0,dead:getContentSize().width,dead:getContentSize().height)
    self._digLayer:getSprite():getTexture():setAntiAliasTexParameters()
    self.Stage:addChild(self._digLayer)

    self._digLayer:begin()
    dead:visit()
    self._digLayer:endToLua()

    local listener = cc.EventListenerMouse:create()
    listener:registerScriptHandler(handler(self,self.onTouchBeganHandler),cc.Handler.EVENT_MOUSE_DOWN)
    
    local eventDispatcher = self.Stage:getEventDispatcher()
    eventDispatcher:addEventListenerWithSceneGraphPriority(listener, self.Stage)
end

function App:onTouchBeganHandler(t,event)
    local p = t:getLocation()
    self._digLayer:begin()
    local craterBrink = display.newSprite("res/maptest/craterbrink.png")
    craterBrink:setAnchorPoint(cc.p(0.5,0.5))
    craterBrink:setPosition(p)
    craterBrink:setBlendFunc(cc.blendFunc(LuaClass.GlobalConstant.GL_DST_ALPHA , LuaClass.GlobalConstant.GL_ONE_MINUS_SRC_ALPHA))
    
    local crater = display.newSprite("res/maptest/crater.png")
    crater:setAnchorPoint(cc.p(0.5,0.5))
    crater:setPosition(p)
    crater:setOpacityModifyRGB(true)
    crater:setBlendFunc(cc.blendFunc(LuaClass.GlobalConstant.GL_ZERO , LuaClass.GlobalConstant.GL_ONE_MINUS_SRC_ALPHA))
    
    craterBrink:visit()
    crater:visit()

    self._digLayer:endToLua()
end

3.测试图片

问题解决了,因为3.17 和 4.0 使用的枚举不一样