// See method declaration for details. void DrawPrimitivesTaskList::CombineDrawPrimitivesTasks() { if(draw_primitives_tasks.size() < 2) { return; } auto current_task = draw_primitives_tasks.begin(); auto next_task = current_task; for(++next_task; next_task != draw_primitives_tasks.end(); ++next_task) { if(current_task->CanCombineWith(*next_task) == true) { current_task->CombineWith(*next_task); draw_primitives_tasks.erase(next_task); next_task = current_task; } else { ++current_task; } } }
TThisType& operator+=(const TThisType& r) { return CombineWith(r); }