{ // 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 渲染类中为什么出现同样的两次排序,难道有什么不同吗?手误??----小心开源代码中的陷阱
原文地址:http://blog.csdn.net/jingzhewangzi/article/details/41848979