码迷,mamicode.com
首页 > 编程语言 > 详细

BUG::Cocos V3.2 渲染类中为什么出现同样的两次排序,难道有什么不同吗?手误??----小心开源代码中的陷阱

时间:2014-12-10 18:02:58      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:cocos2d-x   render   性能   

{
    // Don't sort _queue0, it already comes sorted
    std::sort(std::begin(_queueNegZ), std::end(_queueNegZ), compareRenderCommand);
    std::sort(std::begin(_queuePosZ), std::end(_queuePosZ), compareRenderCommand);
}



// helper
static bool compareRenderCommand(RenderCommand* a, RenderCommand* b)
{
    return a->getGlobalOrder() < b->getGlobalOrder();
}



排序并不会执行其他操作,是不是手误啊?


可是问题同样发生在V3.3 rc版中


这是渲染命令的排序,目的一般都是性能的最优化,这是什么用意?求解释


然后我把其中一句注释掉,结果果然是正确的。


上一次发现主循环中喜欢用低效的循环:

 for (auto &renderqueue : _renderGroups)
        {
            renderqueue.sort();
        }


这次发现这么坑爹的代码。可读 性不差,但是小问题多多,真要商业化使用还需要工作室自己认真整理一遍才行。

BUG::Cocos V3.2 渲染类中为什么出现同样的两次排序,难道有什么不同吗?手误??----小心开源代码中的陷阱

标签:cocos2d-x   render   性能   

原文地址:http://blog.csdn.net/jingzhewangzi/article/details/41848979

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!