View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003597SAS.ПланетаРефакторингpublic06-12-2019 08:1512-12-2019 16:14
Reporterzed 
Assigned Tovdemidov 
PrioritynormalSeverityminorReproducibilityN/A
StatusresolvedResolutionfixed 
PlatformOSOS Version
Product Version190707 
Target Version191221Fixed in Version191221 
Summary0003597: Переход на актуальную версию Graphics32
DescriptionКак-то так получилось, что у нас сорцы этого компонента застряли на отметке 2012-го года, а он, в общем-то, продолжает разрабатываться.

Официальный репозиторий тут: https://github.com/graphics32/graphics32
TagsNo tags attached.
Attached Filespatch file icon gr32.patch [^] (64,904 bytes) 08-12-2019 17:06 [Show Content]
patch file icon Sas.patch [^] (82,446 bytes) 08-12-2019 17:09 [Show Content]
jpg file icon Screenshot_1.jpg [^] (369,635 bytes) 09-12-2019 09:32
png file icon Screenshot_2.png [^] (57,127 bytes) 09-12-2019 09:53


patch file icon 10089.patch [^] (7,122 bytes) 10-12-2019 18:47 [Show Content]

- Relationships
related to 0003581new Сборка 64-х битной версии SAS 

-  Notes
(0019529)
zed (manager)
06-12-2019 08:20

vdemidov
Не хочешь заняться? Я так понимаю, что ты уже экспериментировал с миграцией и хорошо представляешь что надо делать.
(0019530)
vdemidov (manager)
06-12-2019 10:46

Хорошо. Там уже много чего сделано в нужном направлении. Может в субботу или воскресенья попытаюсь сделать.
(0019531)
vdemidov (manager)
06-12-2019 16:15

Освежил чуть воспоминания о коде. Там действительно почти все сделано. Осталось только заменить все использования TFixedPoint на TFloatPoint (в том числе и всякие массивы). И вместо TPolygon32 использовать TArrayOfArrayOfFloatPoint. Там уже почти все для этого готово.
(0019533)
vdemidov (manager)
08-12-2019 17:10

Залил патчи для свежей гитовой версии gr32 и для сас для перехода. Но нужно проверять. А у меня возможности нет.
(0019534)
zed (manager)
08-12-2019 18:03

Я немного не понял про патч GR32. Ты взял версию с git и внёс туда какие-то фиксы?
(0019535)
zed (manager)
08-12-2019 18:24

Мда, так и есть. Не ожидал такого поворота. Есть шанс что эти изменения могут быть приняты в основную ветку GR32?
(0019536)
zed (manager)
08-12-2019 18:48
edited on: 08-12-2019 18:49

Немного погонял, вроде работает без проблем.

Вот тестовая сборка: https://yadi.sk/d/yt2ePQl_f9MrCg (утечки памяти детектит FastMM, стектрейсы сохраняет SynLog. Если что-то случится, то файлы с отчётами автоматически появятся в папке с программой).

(0019537)
vdemidov (manager)
08-12-2019 19:55

> Мда, так и есть. Не ожидал такого поворота. Есть шанс что эти изменения могут быть приняты в основную ветку GR32?
Очень вряд ли. Но можешь попробовать протолкнуть. Проще их в своей копии подтягивать и мержить.

>Немного погонял, вроде работает без проблем.
Проверь свой SunCalc. Я там не очень уверен в ThickPolyLine.
(0019538)
zed (manager)
09-12-2019 09:32

> Проверь свой SunCalc
С ним всё нормально, на сколько я могу судить. И в актуальной версии GR32, если не ошибаюсь, даже есть аналог ThickPolyLine. Помню, я этот код откуда-то копи-пастил.

Пока что заметил 2 отличия:
- цвет заливки полигонов стал менее прозрачным
- пропала обводка тенью у надписей шкалы масштаба

Приложил скриншот, где видны оба отличия. Слева - старый вариант, справа - новый.

По первому отличию, на гитхабе есть тикет https://github.com/graphics32/graphics32/issues/102 но написано, что исправлено.
(0019539)
zed (manager)
09-12-2019 09:45

Если при запуске задать гамму равную единице, как советуют в комментариях то первое отличие пропадает: SetGamma(1).
(0019540)
zed (manager)
09-12-2019 09:53

Оу, с надписями у SunCalc баг вылез - второй скриншот в аттаче.
(0019541)
zed (manager)
09-12-2019 10:31

Добавил патч для фикса SunCalc.

А вот что делать с обводкой непонятно.
(0019542)
vdemidov (manager)
09-12-2019 11:44

С обводкой, нужно посмотреть в новой версии GR32. Если я ничего не путаю, там сейчас есть рендеринг текста в полигоны, которые потом можно сделать Grow и нарисовать предварительно.
(0019547)
zed (manager)
10-12-2019 18:49
edited on: 10-12-2019 18:50

Решил проблему с обводкой, доработав старый алгоритм. Приложил обновлённый патч с исправлением всех обнаруженных проблем. Думаю, патчи можно вливать в репозитории.

(0019556)
vdemidov (manager)
11-12-2019 07:33

Ну, так давай. Заменяй репозиторий Gr32 (если я правильно помню, у нас не общий корень, так что придется). Вливай патчи.
Отдельно можно таки попоробвать пропихнуть наши патчи в апстрим. Они там вполне логичные.
(0019564)
zed (manager)
12-12-2019 12:34

Отправил PR: https://github.com/graphics32/graphics32/pull/118
(0019565)
vdemidov (manager)
12-12-2019 12:55

Надо было изменения в GR32_Polygons.pas отдельным пул реквестом кидать. Они никак не связаны и почти на что не влияют.
(0019567)
zed (manager)
12-12-2019 15:20

Ответь в PR, какую проблему и как решают изменения.

Что касается GR32_Polygons то эти изменения могу откатить или возьми сам откати.
(0019568)
vdemidov (manager)
12-12-2019 15:52

Проблема - использование StretchTransfer для копирования данных в случае, если исходное изображение живет не в TCustomBitmap32, а в каком-то другом объекте, но сами данные, при этом, в формате PColor32Array. Все остальные изменения - это последствия этого изменения. Как это обосновать ХЗ. У нас это тайлы, которые нужно отрисовывать на чем-то. Хранить для каждого тайла TCustomBitmap32 это явный перебор - там кучу всего криэйтить и дестроить нужно. И копировать в TCustomBitmap32 перед каждой операцией - тоже дикий оверхед.

>возьми сам откати.
Как я это откачу, если это твой пул реквест. Я там никто. Так упомянут в качестве автора, но прав никаких не имею
(0019569)
zed (manager)
12-12-2019 16:02

> Как это обосновать ХЗ
Ну вот так и обоснуй. И я тут немного подумал над кодом и мне кажется можно сделать менее калечащие изменения: оставить оригинальную версию StretchTransfer и добавить нашу, с доп параметрами. Из оригинальной (её даже можно попробовать сделать inline) вызывать нашу, а ресамплеры не трогать, пусть они вызывают оригинальную.

> но прав никаких не имею
Точно? У тебя же в исходном репо из которого сделан пулл такие же права, как и у меня. Так что делаешь коммит в соответствующую ветку и PR обновляется.
(0019570)
vdemidov (manager)
12-12-2019 16:05

> добавить нашу, с доп параметрами.
Ты не поверишь :) Именно так и сделано.
(0019571)
vdemidov (manager)
12-12-2019 16:08

> Так что делаешь коммит в соответствующую ветку и PR обновляется.
Ну, может на следующей недельке получится.
(0019572)
zed (manager)
12-12-2019 16:09

Не совсем так, ты в оригинальную добавил 3 доп. параметра и это за собой потянуло кучу изменений. А я предлагаю не добавлять их, а для передачи параметров в нашу брать соответствующие значения из параметра Src.
(0019573)
vdemidov (manager)
12-12-2019 16:14

> Не совсем так, ты в оригинальную добавил 3 доп. параметра и это за собой потянуло кучу изменений.
Возможно. Давно это было. Много лет назад. Плюс делалось постепенно. А на новую версию просто было перетащено почти без изменений.
Причеши это хозяйство, если есть время и желание.

- Users who viewed this issue
User List Anonymous (108x), nnngrach (1x), ygorigor (1x), gma (1x), vdemidov (58x), zed (39x), goodzon (1x), kalakotkas (1x)
Total Views 210
Last View 29-01-2020 07:55

- Issue History
Date Modified Username Field Change
06-12-2019 08:15 zed New Issue
06-12-2019 08:15 zed Relationship added related to 0003581
06-12-2019 08:20 zed Note Added: 0019529
06-12-2019 10:46 vdemidov Note Added: 0019530
06-12-2019 16:15 vdemidov Note Added: 0019531
08-12-2019 17:06 vdemidov File Added: gr32.patch
08-12-2019 17:09 vdemidov File Added: Sas.patch
08-12-2019 17:10 vdemidov Note Added: 0019533
08-12-2019 18:03 zed Note Added: 0019534
08-12-2019 18:24 zed Note Added: 0019535
08-12-2019 18:48 zed Note Added: 0019536
08-12-2019 18:49 zed Note Edited: 0019536 View Revisions
08-12-2019 19:55 vdemidov Note Added: 0019537
09-12-2019 09:32 zed Note Added: 0019538
09-12-2019 09:32 zed File Added: Screenshot_1.jpg
09-12-2019 09:45 zed Note Added: 0019539
09-12-2019 09:53 zed Note Added: 0019540
09-12-2019 09:53 zed File Added: Screenshot_2.png
09-12-2019 10:30 zed File Added: 10089.patch
09-12-2019 10:31 zed Note Added: 0019541
09-12-2019 11:44 vdemidov Note Added: 0019542
10-12-2019 18:47 zed File Deleted: 10089.patch
10-12-2019 18:47 zed File Added: 10089.patch
10-12-2019 18:49 zed Note Added: 0019547
10-12-2019 18:50 zed Note Edited: 0019547 View Revisions
11-12-2019 07:33 vdemidov Note Added: 0019556
12-12-2019 08:14 zed Status new => resolved
12-12-2019 08:14 zed Fixed in Version => 191221
12-12-2019 08:14 zed Resolution open => fixed
12-12-2019 08:14 zed Assigned To => vdemidov
12-12-2019 08:14 zed Target Version => 191221
12-12-2019 12:34 zed Note Added: 0019564
12-12-2019 12:55 vdemidov Note Added: 0019565
12-12-2019 15:20 zed Note Added: 0019567
12-12-2019 15:52 vdemidov Note Added: 0019568
12-12-2019 16:02 zed Note Added: 0019569
12-12-2019 16:05 vdemidov Note Added: 0019570
12-12-2019 16:08 vdemidov Note Added: 0019571
12-12-2019 16:09 zed Note Added: 0019572
12-12-2019 16:14 vdemidov Note Added: 0019573



Copyright © 2007 - 2020 SAS.Planet Team