美文网首页
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