{
// 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