cocos2d-x版本3.8
近日要用到图片变灰的效果,在网上搜索大致有两种方法:1是取出image,对每个像素进行处理,可以实现,但循环次数太多,不与理会。2是自己写shader,也可以实现。
突然想到UIButton的禁用就是变灰效果,于是查看源码,原来变灰的shader不知什么版本起已经预制了,抄之,代码如下:
变灰
node->setGLProgramState(GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_GRAYSCALE));
还原
node->setGLProgramState(GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP ));