diff --git a/MapPresent/MapPresent.cpp b/MapPresent/MapPresent.cpp index 8359e7a..4c113f2 100644 --- a/MapPresent/MapPresent.cpp +++ b/MapPresent/MapPresent.cpp @@ -123,7 +123,8 @@ void MapPresent::paintEvent(QPaintEvent* ev) if (_updated_index_list.size()) { QPainter pic_painter(&_paint_buffer); - for (auto unit_idx : _updated_index_list) { + const int update_batch_count = 1200; + for (auto unit_idx : _updated_index_list.mid(0, update_batch_count)) { pic_painter.save(); auto opt = _visible_units[unit_idx]; @@ -147,7 +148,10 @@ void MapPresent::paintEvent(QPaintEvent* ev) pic_painter.restore(); } - _updated_index_list.clear(); + _updated_index_list = _updated_index_list.mid(update_batch_count); + if (_updated_index_list.size()) { + this->update(); + } } QPainter widget_painter(this);