Notes |
|
(0019529)
|
zed
|
06-12-2019 08:20
|
|
vdemidov
Не хочешь заняться? Я так понимаю, что ты уже экспериментировал с миграцией и хорошо представляешь что надо делать. |
|
|
|
Хорошо. Там уже много чего сделано в нужном направлении. Может в субботу или воскресенья попытаюсь сделать. |
|
|
|
Освежил чуть воспоминания о коде. Там действительно почти все сделано. Осталось только заменить все использования TFixedPoint на TFloatPoint (в том числе и всякие массивы). И вместо TPolygon32 использовать TArrayOfArrayOfFloatPoint. Там уже почти все для этого готово. |
|
|
|
Залил патчи для свежей гитовой версии gr32 и для сас для перехода. Но нужно проверять. А у меня возможности нет. |
|
|
(0019534)
|
zed
|
08-12-2019 18:03
|
|
Я немного не понял про патч GR32. Ты взял версию с git и внёс туда какие-то фиксы? |
|
|
(0019535)
|
zed
|
08-12-2019 18:24
|
|
Мда, так и есть. Не ожидал такого поворота. Есть шанс что эти изменения могут быть приняты в основную ветку GR32? |
|
|
(0019536)
|
zed
|
08-12-2019 18:48
(edited on: 08-12-2019 18:49) |
|
Немного погонял, вроде работает без проблем.
Вот тестовая сборка: https://yadi.sk/d/yt2ePQl_f9MrCg (утечки памяти детектит FastMM, стектрейсы сохраняет SynLog. Если что-то случится, то файлы с отчётами автоматически появятся в папке с программой).
|
|
|
|
> Мда, так и есть. Не ожидал такого поворота. Есть шанс что эти изменения могут быть приняты в основную ветку GR32?
Очень вряд ли. Но можешь попробовать протолкнуть. Проще их в своей копии подтягивать и мержить.
>Немного погонял, вроде работает без проблем.
Проверь свой SunCalc. Я там не очень уверен в ThickPolyLine. |
|
|
(0019538)
|
zed
|
09-12-2019 09:32
|
|
> Проверь свой SunCalc
С ним всё нормально, на сколько я могу судить. И в актуальной версии GR32, если не ошибаюсь, даже есть аналог ThickPolyLine. Помню, я этот код откуда-то копи-пастил.
Пока что заметил 2 отличия:
- цвет заливки полигонов стал менее прозрачным
- пропала обводка тенью у надписей шкалы масштаба
Приложил скриншот, где видны оба отличия. Слева - старый вариант, справа - новый.
По первому отличию, на гитхабе есть тикет https://github.com/graphics32/graphics32/issues/102 но написано, что исправлено. |
|
|
(0019539)
|
zed
|
09-12-2019 09:45
|
|
Если при запуске задать гамму равную единице, как советуют в комментариях то первое отличие пропадает: SetGamma(1). |
|
|
(0019540)
|
zed
|
09-12-2019 09:53
|
|
Оу, с надписями у SunCalc баг вылез - второй скриншот в аттаче. |
|
|
(0019541)
|
zed
|
09-12-2019 10:31
|
|
Добавил патч для фикса SunCalc.
А вот что делать с обводкой непонятно. |
|
|
|
С обводкой, нужно посмотреть в новой версии GR32. Если я ничего не путаю, там сейчас есть рендеринг текста в полигоны, которые потом можно сделать Grow и нарисовать предварительно. |
|
|
(0019547)
|
zed
|
10-12-2019 18:49
(edited on: 10-12-2019 18:50) |
|
Решил проблему с обводкой, доработав старый алгоритм. Приложил обновлённый патч с исправлением всех обнаруженных проблем. Думаю, патчи можно вливать в репозитории.
|
|
|
|
Ну, так давай. Заменяй репозиторий Gr32 (если я правильно помню, у нас не общий корень, так что придется). Вливай патчи.
Отдельно можно таки попоробвать пропихнуть наши патчи в апстрим. Они там вполне логичные. |
|
|
(0019564)
|
zed
|
12-12-2019 12:34
|
|
|
|
|
Надо было изменения в GR32_Polygons.pas отдельным пул реквестом кидать. Они никак не связаны и почти на что не влияют. |
|
|
(0019567)
|
zed
|
12-12-2019 15:20
|
|
Ответь в PR, какую проблему и как решают изменения.
Что касается GR32_Polygons то эти изменения могу откатить или возьми сам откати. |
|
|
|
Проблема - использование StretchTransfer для копирования данных в случае, если исходное изображение живет не в TCustomBitmap32, а в каком-то другом объекте, но сами данные, при этом, в формате PColor32Array. Все остальные изменения - это последствия этого изменения. Как это обосновать ХЗ. У нас это тайлы, которые нужно отрисовывать на чем-то. Хранить для каждого тайла TCustomBitmap32 это явный перебор - там кучу всего криэйтить и дестроить нужно. И копировать в TCustomBitmap32 перед каждой операцией - тоже дикий оверхед.
>возьми сам откати.
Как я это откачу, если это твой пул реквест. Я там никто. Так упомянут в качестве автора, но прав никаких не имею |
|
|
(0019569)
|
zed
|
12-12-2019 16:02
|
|
> Как это обосновать ХЗ
Ну вот так и обоснуй. И я тут немного подумал над кодом и мне кажется можно сделать менее калечащие изменения: оставить оригинальную версию StretchTransfer и добавить нашу, с доп параметрами. Из оригинальной (её даже можно попробовать сделать inline) вызывать нашу, а ресамплеры не трогать, пусть они вызывают оригинальную.
> но прав никаких не имею
Точно? У тебя же в исходном репо из которого сделан пулл такие же права, как и у меня. Так что делаешь коммит в соответствующую ветку и PR обновляется. |
|
|
|
> добавить нашу, с доп параметрами.
Ты не поверишь :) Именно так и сделано. |
|
|
|
> Так что делаешь коммит в соответствующую ветку и PR обновляется.
Ну, может на следующей недельке получится. |
|
|
(0019572)
|
zed
|
12-12-2019 16:09
|
|
Не совсем так, ты в оригинальную добавил 3 доп. параметра и это за собой потянуло кучу изменений. А я предлагаю не добавлять их, а для передачи параметров в нашу брать соответствующие значения из параметра Src. |
|
|
|
> Не совсем так, ты в оригинальную добавил 3 доп. параметра и это за собой потянуло кучу изменений.
Возможно. Давно это было. Много лет назад. Плюс делалось постепенно. А на новую версию просто было перетащено почти без изменений.
Причеши это хозяйство, если есть время и желание. |
|