我现在使用的是cocos2dx 3.3,最近做新手引导用到了ClippingNode,但是在win32和mac上都是好好的,到了android和ios上,ClippingNode中_stencil的所有字子节点都跑到{0,0}点去了
查了下代码,发现是在这两个平台做了设置了一个opengl的东西,我对opengl不熟,没看懂具体是啥意思
ClippingNode的源码如下
#if (CC_TARGET_PLATFORM == CC_PLATFORM_MAC || CC_TARGET_PLATFORM == CC_PLATFORM_WIN32 || CC_TARGET_PLATFORM == CC_PLATFORM_LINUX)
#else
// since glAlphaTest do not exists in OES, use a shader that writes
// pixel only if greater than an alpha threshold
GLProgram *program = GLProgramCache::getInstance()->getGLProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_ALPHA_TEST_NO_MV);
GLint alphaValueLocation = glGetUniformLocation(program->getProgram(), GLProgram::UNIFORM_NAME_ALPHA_TEST_VALUE);
// set our alphaThreshold
program->use();
program->setUniformLocationWith1f(alphaValueLocation, _alphaThreshold);
// we need to recursively apply this shader to all the nodes in the stencil node
// FIXME: we should have a way to apply shader to all nodes without having to do this
setProgram(_stencil, program);
#endif
请各位大神帮忙看看到底这是怎么回事啊~