local node = tolua.cast(self._ui.login_button,“CCNode”)
print(“AAAAAAAAAAAA”…tolua.type(node))
Game._utils:createShader(node,“gray.vsh”,“gray.fsh”)
local pProgram = node:getShaderProgram()
local grayFlag = pProgram:getUniformLocationForName(“grayFlag”)
pProgram:use()
pProgram:setUniformLocationWith1i(grayFlag,1.0) --变灰
function Utils:createShader(__node,__vsFile,__psFile)
if __node == nil or __psFile == nil or __psFile == nil then
return
end
local pProgram = CCGLProgram:createWithFilenames(“res/shader/”…__vsFile,“res/shader/”…__psFile)
pProgram:addAttribute(“a_position”, 0) --对应vs里面的顶点坐标
pProgram:addAttribute(“a_color”, 1) --对应vs里面的顶点颜色
pProgram:addAttribute(“a_texCoord”, 2)–对应vs里面的顶点纹理坐标
pProgram:link() – 因为绑定了属性,所以需要link一下,否则vs无法识别属性
pProgram:updateUniforms() – 绑定了纹理贴图
__node:setShaderProgram(pProgram)
end
这样的代码 为什么在UIWidget的对象上 不好使。我用ccsprite创建出来的 就好使啊! 我的是2.25plus