cocos2d-x 3.5,lua环境下实现按钮变灰;
代码调用:
- local program = cc.GLProgram:create("Shaders/Gray.vsh","Shaders/Gray.fsh")
- program:bindAttribLocation(cc.ATTRIBUTE_NAME_POSITION,cc.VERTEX_ATTRIB_POSITION)
- program:bindAttribLocation(cc.ATTRIBUTE_NAME_TEX_COORD,cc.VERTEX_ATTRIB_TEX_COORD)
- program:link()
- program:updateUniforms()
- label:setGLProgram( program )
自己的vsh和fsh
- attribute vec4 a_position;
- attribute vec2 a_texCoord;
- attribute vec4 a_color;
- varying vec4 v_fragmentColor;
- varying vec2 v_texCoord;
- void main()
- {
- gl_Position = CC_PMatrix * a_position;
- v_fragmentColor = a_color;
- v_texCoord = a_texCoord;
- }
- gray.vsh
- varying vec4 v_fragmentColor;
- varying vec2 v_texCoord;
- uniform sampler2D CC_Texture0;
- void main()
- {
- vec4 v_orColor = v_fragmentColor * texture2D(CC_Texture0,v_texCoord);
- float gray = dot(v_orColor.rgb,vec3(0.299,0.587,0.114));
- gl_FragColor = vec4(gray,gray,v_orColor.a);
- }
- gray.fsh