zoukankan      html  css  js  c++  java
  • 产生渲染叶

    inline RenderLeaf* CullVisitor::createOrReuseRenderLeaf(osg::Drawable* drawable,osg::RefMatrix* projection,osg::RefMatrix* matrix, float depth)
    {
        // Skips any already reused renderleaf.
        while (_currentReuseRenderLeafIndex<_reuseRenderLeafList.size() &&
               _reuseRenderLeafList[_currentReuseRenderLeafIndex]->referenceCount()>1)///循环一次,找到没有被引用的渲染叶指针,通过引用计数判断
        {
            osg::notify(osg::NOTICE)<<"Warning:createOrReuseRenderLeaf() skipping multiply refrenced entry."<< std::endl;
            ++_currentReuseRenderLeafIndex;
        }

        // If still within list, element must be singularly referenced then return it to be reused.
        if (_currentReuseRenderLeafIndex<_reuseRenderLeafList.size())//如果找到,则不需要产生新的
        {
            RenderLeaf* renderleaf = _reuseRenderLeafList[_currentReuseRenderLeafIndex++].get();
            renderleaf->set(drawable,projection,matrix,depth);
            return renderleaf;
        }

        // Otherwise need to create new renderleaf.
        RenderLeaf* renderleaf = new RenderLeaf(drawable,projection,matrix,depth);//否则产生新的渲染叶
        _reuseRenderLeafList.push_back(renderleaf);
        ++_currentReuseRenderLeafIndex;
        return renderleaf;
    }

  • 相关阅读:
    写在最前面
    Bzoj 2281 [Sdoi2011]黑白棋 题解
    bzoj3125: CITY 题解
    CDQZ 集训大总结
    CDQZ集训DAY10 日记
    CDQZ集训DAY9 日记
    CDQZ集训DAY7 日记
    CDQZ集训DAY6 日记
    CDQZ集训DAY5 日记
    CDQZ集训DAY4 日记
  • 原文地址:https://www.cnblogs.com/lizhengjin/p/1838098.html
Copyright © 2011-2022 走看看