美文网首页
cocos2d::glprogramstate分析

cocos2d::glprogramstate分析

作者: 核桃啊 | 来源:发表于2016-05-01 10:34 被阅读662次

    先看看和glprogram的区别,下面是官方的解释:

    /**

    GLProgramState holds the 'state' (uniforms and attributes) of the GLProgram.

    A GLProgram can be used by thousands of Nodes, but if different uniform values

    are going to be used, then each node will need its own GLProgramState

    */


    可见大多是对于uniform的赋值

    glprogram根据一个program创建:

    初始化如下:

    init中增加了program的引用计数,然后把program中的attribute和uniform的map保存下来

    2、glprogramcache

    单例用来缓存shader

    回到glprogramstate,默认的外部接口:

    从cache中拿到缓存的shader

    然后看保存的state中是否有,有则返回,无则加入到缓存state中

    注意,programstate最后调用的是program的initWithByteArrays,并没有调用createWithByteArrays,但是和createWithByteArrays的流程一样,initWithByteArrays->link->updateuniform

    相关文章

      网友评论

          本文标题:cocos2d::glprogramstate分析

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