美文网首页
cocos2d::glprogram分析

cocos2d::glprogram分析

作者: 核桃啊 | 来源:发表于2016-04-26 13:21 被阅读598次

1、glprogram分析

2、实例应用,变暗、变灰shader


可见glprogram提供shader的编译、链接和使用,并且封装了一些方法

定义了一些枚举变量,包括一些固定的顶点属性、内置uniform,写好的一些shader名,如下:

glprogram初始化如下:

_program为shader的编号,_builtinuniforms为内置uniform的数组,用来存uniform的地址,hash值还不知道用来干嘛,后面分析,flag标记用的什么变换矩阵

然后是主要函数编译shader

先看init:

其中在某些平台上,如果已经编译过了则使用缓存中的

在编译中时,会把一些内置uniform加入到shader前面。如下:

再看link:

bindPredefinedVertexAttribs绑定一些顶点属性(这里有点疑惑)

然后把顶点属性的值存在map中

parseUniform同上,把uniform的相关值存在map中

updateuniform,设置一些标记,感觉很奇怪,为什么不直接使用前面的uniformmap(解决,之前存在map中的uniform会过滤掉cc_开头的内置uniform)

注意一点:在setUniform时,会用hash表存之前的值,如果相同就不再设置了

相关文章

网友评论

      本文标题:cocos2d::glprogram分析

      本文链接:https://www.haomeiwen.com/subject/ftiqrttx.html