SASGIS - SAS.Планета
View Issue Details
0003884SAS.Планета[All Projects] Багpublic19-02-2024 08:3911-11-2024 14:26
zed 
zed 
normalminorhave not tried
resolvedfixed 
230909 
241111241111 
0003884: После редактирования путей/полигонов могут оставаться артефакты
Шаги для воспроизведения:
- включить инструмент Линейка и нарисовать вертикальную линию в правой части карты;
- не закрывая линейку, подвинуть карту влево;
- закрыть линейку.

Результат: на экране продолжит отображаться нарисованная линия-призрак. Достаточно немного пошевелить карту и линия исчезает.
No tags attached.
? sas-repaint-bug.mp4 (1,192,785) 19-02-2024 08:39
http://www.sasgis.org/mantis/file_download.php?file_id=2611&type=bug
? sas-repaint-microtiles.mp4 (1,621,991) 19-02-2024 08:45
http://www.sasgis.org/mantis/file_download.php?file_id=2612&type=bug
Issue History
19-02-2024 08:39zedNew Issue
19-02-2024 08:39zedStatusnew => assigned
19-02-2024 08:39zedAssigned To => zed
19-02-2024 08:39zedFile Added: sas-repaint-bug.mp4
19-02-2024 08:45zedFile Added: sas-repaint-microtiles.mp4
19-02-2024 08:54zedNote Added: 0020453
19-02-2024 09:08zedNote Added: 0020454
19-02-2024 09:09zedStatusassigned => resolved
19-02-2024 09:09zedFixed in Version => 24xxxx
19-02-2024 09:09zedResolutionopen => fixed
11-11-2024 14:16zedTarget Version24xxxx => 241111
11-11-2024 14:26zedFixed in Version24xxxx => 241111

Notes
(0020453)
zed   
19-02-2024 08:54   
В Grphics32 можно включить дебажную визуализацию региона обновления битмапа. Для этого в юните graphics32/Source/GR32_MicroTiles.pas объявить дефайны:

{$DEFINE MICROTILES_DEBUGDRAW}
{$DEFINE MICROTILES_DEBUGDRAW_RANDOM_COLORS}
{$DEFINE MICROTILES_DEBUGDRAW_UNOPTIMIZED}

После этого становится более-менее понятно, что происходит (см. второе видео): при перемещении карты, у слоя не обновляется его граница отображения. В результате чего, при скрытии слоя перерисовка битмапа происходит не в том месте, где слой находится в данный момент, а в том, где слой был показан в первый раз.
(0020454)
zed   
19-02-2024 09:08   
Придумал вот такой варинт исправления этого бага - просто принудительно перерисовать всю битмапку, чтоб уж наверняка.