Ds
Ақп. 22, 2021, 12:56 Т.Қ.

При рендере тайлов появляется buffer reallocation

Рендерю тайлы для оффлайн карт OpenStreetMap в четырёх потоках, и когда рендер достигает 200-300 тайлов начинает появляться warning в QDebug

Код вставлять смысла нет, он достаточно большой и смотреть его вряд-ли кому захочется, но если всё же без него никак то вот класс рендера
Хотелось бы узнать куда копать, поиск в интернете не даёт особо результатов.

1

Ол саған ұнайды ма? Әлеуметтік желілерде бөлісіңіз!

1
Ds
  • Ақп. 22, 2021, 2:07 Т.Қ.

upd.
с помощью double commander в сырцах OpenStreetMap плагина нашёл такую функцию

  1. size_t CoordBuffer::PushCoord(double x, double y)
  2. {
  3. if (usedPoints>=bufferSize) {
  4. bufferSize=bufferSize*2;
  5.  
  6. auto* newBuffer=new Vertex2D[bufferSize];
  7.  
  8. std::memcpy(newBuffer,buffer,sizeof(Vertex2D)*usedPoints);
  9.  
  10. log.Warn() << "*** Buffer reallocation: " << bufferSize;
  11.  
  12. delete [] buffer;
  13.  
  14. buffer=newBuffer;
  15. }
  16.  
  17. buffer[usedPoints].Set(x,y);
  18.  
  19. return usedPoints++;
  20. }

вроде бы вопрос решён, но как исправить и замндляет ли всё обычный вывод варнинга, хз.

    Пікірлер

    Тек рұқсаты бар пайдаланушылар ғана пікір қалдыра алады.
    Кіріңіз немесе Тіркеліңіз