View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0003345 | SAS.Планета | Баг / Bug | public | 21-06-2018 10:47 | 10-09-2018 19:41 |
| Reporter | JackOfShadows | Assigned To | zed | ||
| Priority | normal | Severity | minor | Reproducibility | always |
| Status | resolved | Resolution | fixed | ||
| Product Version | 160707 | ||||
| Target Version | 181221 | Fixed in Version | 181221 | ||
| Summary | 0003345: Рисование маршрута - тормоза после 20-й точки | ||||
| Description | Стабильно начинает подтормаживать и в 160707, и в ночнушке после 20й-25й точки маршрута. При размещении точки загрузка процессора прыгает с 30 до 80%, на отрисовку точки надо где-то полсекунды. | ||||
| Tags | No tags attached. | ||||
|
|
Если включить опцию "Отображать только конечное расстояние" тормоза пропадают? Про версию 160707 можете забыть, тестировать всегда надо на крайней ночнушке. Причём, там лежит 4 *.exe и надо убедиться, что поведение одинаковое у всех версий. |
|
|
Если у вас Windows 10, то проблема может быть именно в ней: GDI based application unusably slow in Windows 10 |
|
|
> Если включить опцию "Отображать только конечное расстояние" тормоза пропадают? Да, всё летает. > Про версию 160707 можете забыть, тестировать всегда надо на крайней ночнушке. Причём, там лежит 4 *.exe и надо убедиться, что поведение одинаковое у всех версий. Я начал с ночной, конечно же. > Если у вас Windows 10, то проблема может быть именно в ней: GDI based application unusably slow in Windows 10 Да, на обоих компах десятка. |
|
|
Ну, значит пора кардинально переделывать TMapLayerCalcLineCaptions. Вместо прямого отображения подписей - делать отображение сгенерированных маркеров с текстом. Причем эту генерацию, видимо нужно делать в отдельном потоке и с кэшированием результатов. Что-то среднее между текущей реализацией и реализацией подписей в растеризаторе слоя меток. |
|
|
Переделывать нужно рендеринг шрифтов и делать альтернативу на DirectWrite. https://github.com/graphics32/graphics32/issues/29 |
|
|
Кстати, в компоненте SynEdit идёт подготовка к переходу на DirectWrite и там можно подсмотреть реализацию. Но стоит учитывать, что DirectWrite будет доступен только в Windows 7 и выше, т.е. нужно оставлять совместимость и с GDI. |
|
|
Одно другому не мешает. Я вообще мечтал сделать вывод на экран тайлов, разных маркеров, элементов интерфейса с использованием аппаратного ускорения (OpenGL или Direct3D) в виде простых текстур. Меня именно наличие прямого рисования текста и линий останавливало от экспериментов в этом направлении. |
|
|
Проблема в методе RenderText со значением AALevel больше 0 (у нас в этом месте 3). Чтобы сделать сглаживание, GR32 увеличивает шрифт в 2^N раз (где N - циферка AALevel) рендерит его на временную битмапку (которая получается очень большого размера), потом руками делает скейлинг битмапки вниз, до размера, соответствующего изначальному размеру шрифта и только потом у нас получается нужный битмап. Предлагаю перейти на метод TextOut, который ничего подобного не делает, при этом скорость рендеринга увеличивается более чем на порядок. Правда, текст получается более тонкий и на дефолтном сером фоне становится менее заметен. Поэтому, одновременно предлагаю изменить и дефолтное оформление (см. 0003369 - скриншот new). |
|
|
Тестовый бинарник: https://yadi.sk/d/7ZpmWZyVxrQbtg JackOfShadows Проверьте, как он поведёт себя. Чтобы увидеть новое оформление, удалите в SASPlanet.ini секции CalcLine, CalcCircle и EditMarkPolyLine или SASPlanet.ini целиком (предварительно сделав бэкап). |
|
|
лучше! в разы резвее. |
|
|
Проверил, тормозов нет. Спасибо. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 21-06-2018 10:47 | JackOfShadows | New Issue | |
| 22-06-2018 08:00 | zed | Note Added: 0018335 | |
| 22-06-2018 08:26 | zed | Note Added: 0018336 | |
| 22-06-2018 08:58 | vdemidov | Status | new => feedback |
| 25-06-2018 06:31 | JackOfShadows | Note Added: 0018340 | |
| 25-06-2018 06:31 | JackOfShadows | Status | feedback => new |
| 25-06-2018 11:03 | vdemidov | Note Added: 0018341 | |
| 25-06-2018 12:16 | zed | Note Added: 0018342 | |
| 25-06-2018 12:20 | zed | Note Added: 0018343 | |
| 25-06-2018 12:38 | vdemidov | Note Added: 0018344 | |
| 08-08-2018 12:50 | vdemidov | Status | new => confirmed |
| 08-08-2018 12:50 | vdemidov | Category | Рефакторинг => Баг |
| 08-08-2018 12:50 | vdemidov | Target Version | => 42xxxx |
| 08-09-2018 21:17 | zed | Note Added: 0018395 | |
| 08-09-2018 21:27 | zed | Note Added: 0018396 | |
| 08-09-2018 21:27 | zed | Assigned To | => zed |
| 08-09-2018 21:27 | zed | Status | confirmed => feedback |
| 08-09-2018 21:28 | zed | Note Edited: 0018396 | |
| 08-09-2018 21:35 | zed | Note Edited: 0018395 | |
| 09-09-2018 15:38 | Garl | Note Added: 0018398 | |
| 10-09-2018 04:46 | JackOfShadows | Note Added: 0018399 | |
| 10-09-2018 04:46 | JackOfShadows | Status | feedback => assigned |
| 10-09-2018 19:41 | zed | Status | assigned => resolved |
| 10-09-2018 19:41 | zed | Fixed in Version | => 181221 |
| 10-09-2018 19:41 | zed | Resolution | open => fixed |
| 10-09-2018 19:41 | zed | Target Version | 42xxxx => 181221 |
| 08-08-2025 13:22 | zed | Category | Баг => Баг / Bug |