最近在研究shader时有了疑问。creator官方git里有engine和cocos2d-x-lite两个文件夹。
在engine里engine/cocos2d/shaders目录下有CCGLProgram.js。而cocos2d-x-lite/cocos/renderer目录下有名字一样的c++文件(CCGLProgram.h和CCGLProgram.cpp)。第一处疑问,这两者之间有什么联系与区别?
cocos2d-x-lite的CCGLProgram.cpp中addAttribute方法被删除,并在link函数中进行了顶点相关属性的绑定。engine的CCGLProgram.js中还有addAttribute方法,需要手动“添加”顶点属性。
在进行shader的书写时,我所搜到的例子都先判断了cc.sys.isNative,如果为假就判断是运行在浏览器上,就调用addAttribute方法,反之,则不会调用。第二处疑问,那是不是可以说用模拟器时调用的是cocos2d-x-lite里的代码,运行在浏览器端调用不到cocos2d-x-lite里的代码?
抱歉,我是新手,可能上述的表述会有术语上的不准确。
麻烦前辈们指点迷津,给个提示也好,谢谢。