Anonymous | Login | Signup for a new account | 24-11-24 02:06 UTC |
All Projects | SAS.Планета | Домен, сайт, форум, багтрекер | Доработка карты (ZMP) | Переводы и локализации | Прочее |
My View | View Issues | Change Log | Roadmap | Search |
View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||||||
0002616 | SAS.Планета | Рефакторинг | public | 30-01-2015 14:11 | 30-12-2021 08:59 | ||||||||
Reporter | vdemidov | ||||||||||||
Assigned To | |||||||||||||
Priority | normal | Severity | minor | Reproducibility | have not tried | ||||||||
Status | confirmed | Resolution | open | ||||||||||
Platform | OS | OS Version | |||||||||||
Product Version | 141212 | ||||||||||||
Target Version | 26xxxx | Fixed in Version | |||||||||||
Summary | 0002616: Создать интерфейс рендеринга текста в IBitmap32Static | ||||||||||||
Description | Сейчас для вывода текста на карте и некоторых частях интерфейса (строка статуса и подписи линейки) напрямую используются средства GR32 TBitmap32.RenderText, которое умеет выводить текст с прозрачностью и антиалиайзингом, но иногда этого не хватает и приходится реднерить текст несколько раз с разными смещениями для получения тени, или обходить пикселы и дорисовывать окантковку у букв и тд. Нужно сделать интерфейс ITextRenderer, который будет получать текст и параметры отрисовки, после чего генерировать нужную битмапку. Это позволит уменьшить зависимость от реализации и позволит добавить кэширование и тд. | ||||||||||||
Tags | No tags attached. | ||||||||||||
Attached Files | aa_0.png [^] (6,165 bytes) 03-05-2019 12:24
aa_-1.png [^] (7,085 bytes) 03-05-2019 12:24 | ||||||||||||
Relationships | ||||||
|
Notes | |
(0018693) zed (manager) 03-05-2019 08:11 |
К слову, о кэшировании: в SunCalc надписи кэшируются и рендерятся методом RenderText, но я заметил, что текст получается немного не таким, как, например, у линейки, где текст рендерится без кэширования методом TextOut. А ещё, когда я попытался использовать TextOut для кэширования, у меня никак не вышло сделать полупрозрачную надпись - шрифт расползается. Как мне кажется, TextOut даёт более лучший результат и если его не получится нормально кэшировать, то с повсеместным переходом на предлагаемый интерфейс и метод RenderText, качество шрифтов ухудшится. |
(0018694) vdemidov (manager) 03-05-2019 10:26 |
Ну, если я правильно все понимаю, то RenderText только добавляет возможность делать надписи произвольного цвета и с прозрачностью. Ну и еще антиалиайзинг позволяет сделать. За счет копирования из временной битмапки. > А ещё, когда я попытался использовать TextOut для кэширования, у меня никак не вышло сделать полупрозрачную надпись - шрифт расползается. Ну, всегда можно поставить AALevel = -1 и использовать RenderText. Можно вообще свой сделать, который будет обводку делать нормальную, а не двумя выводами RenderText. Это будет правильнее. В любом случае, вся эта кухня будет скрыта, а для вывода на экран достаточно будет просто накладывать готовую битмапку. >Как мне кажется, TextOut даёт более лучший результат Подозреваю, что это только на свежих виндах, а на XP все может быть не так радужно, но нужно смотреть. |
(0018695) zed (manager) 03-05-2019 11:31 |
На XP выглядит одинаково, т.к. там нету сглаживания, а вот в Win7 и выше TextOut рисует нормально, а RenderText без сглаживания и изменение AALevel не даёт такого же результата. Эта кухня может быть скрыта только при отказе от TextOut, чего не хотелось бы. Я бы наоборот хотел все RenderText заменить на TextOut. |
(0018696) vdemidov (manager) 03-05-2019 12:06 |
> RenderText без сглаживания и изменение AALevel не даёт такого же результата. А ты пробовал AALevel = -1 ставить? Там включается штатное сглаживание и только добавляется установка альфы. Посмотри исходники RenderText. Там при AALevel = -1 почти ничего не делается с картинкой. ИМХО должно быть как-раз то чего ты хочешь. Разве что если там применяется субпиксельное сглаживание, тогда могут быть чудеса. |
(0018697) zed (manager) 03-05-2019 12:22 |
Исходники я конечно же смотрел и с AALevel пробовал все допустимые значения - всё не то и со штатным сглаживанием не сравнится. Сейчас скриншотов добавлю. |
(0018698) vdemidov (manager) 03-05-2019 12:46 |
К скриншотам комментариев не хватает, где там RenderText, а где TextOut |
(0018699) zed (manager) 03-05-2019 12:50 |
TextOut - сверху. |
(0018700) vdemidov (manager) 03-05-2019 12:58 |
Что называется "Вы не поверите", но мне нижние надписи нравятся больше :) Видимо я таки не люблю сглаживание. |
Users who viewed this issue | |
User List | Anonymous (2449x), ingener (1x), vdemidov (26x), rass (2x), zed (12x) |
Total Views | 2490 |
Last View | 24-11-2024 02:06 |
Issue History | |||
Date Modified | Username | Field | Change |
30-01-2015 14:11 | vdemidov | New Issue | |
30-01-2015 14:11 | vdemidov | Status | new => confirmed |
04-08-2015 10:11 | vdemidov | Relationship added | child of 0002164 |
04-10-2015 15:28 | vdemidov | Target Version | 151010 => 151111 |
06-11-2015 08:20 | vdemidov | Target Version | 151111 => 191221 |
03-05-2019 07:17 | vdemidov | Target Version | 191221 => 190707 |
03-05-2019 08:11 | zed | Note Added: 0018693 | |
03-05-2019 09:56 | vdemidov | Relationship replaced | related to 0002164 |
03-05-2019 10:26 | vdemidov | Note Added: 0018694 | |
03-05-2019 11:31 | zed | Note Added: 0018695 | |
03-05-2019 12:06 | vdemidov | Note Added: 0018696 | |
03-05-2019 12:22 | zed | Note Added: 0018697 | |
03-05-2019 12:24 | zed | File Added: aa_0.png | |
03-05-2019 12:24 | zed | File Added: aa_-1.png | |
03-05-2019 12:46 | vdemidov | Note Added: 0018698 | |
03-05-2019 12:50 | zed | Note Added: 0018699 | |
03-05-2019 12:58 | vdemidov | Note Added: 0018700 | |
23-07-2019 14:16 | vdemidov | Target Version | 190707 => 191221 |
23-07-2019 17:04 | vdemidov | Target Version | 191221 => 211230 |
30-12-2021 08:59 | zed | Target Version | 211230 => 26xxxx |
My View | View Issues | Change Log | Roadmap | Search |
Copyright © 2007 - 2024 SAS.Planet Team |