eddy-em.livejournal.com github.com/eddyem
-
- Буфер не спрайтовый, спрайты это иное Подобный буфер называется
пиксельный и это так называемый BackBuffer. Посмотрел код, очень
тяжелый. ARM вывозит его только потому что реально быстр. Быстро
это пишется так: RxTx(1373 знак., 13.05.2023 22:50)
- Пиксельный буфер - когда на каждый пиксель свой цвет. А тут цвет
спрайтами. Eddy_Em(990 знак., 13.05.2023 23:05)
- Ну методы быстрой отрисовки я тебе изложил. Они не lowlevel
оптимизации (заинлайнить), поменять надо сам подход. Повторюсь, в
буфер переносятся шрифты тупо копированием, без масштабирования на
лету. Потому что надо понять и допустить самое главное допущение -
в нормальном GUI дизайне используется всего 2-3 размера шрифа, ибо
так красиво. Так что можно либо подготовить ходовые размеры и
положить в пзу, либо держать в озу "кэш". memcpy в GCC будет
intrinsic'ом вставлена RxTx(1237 знак., 27.05.2023 14:43, ссылка, ссылка)
- Да, флеша там полным-полно, надо будет просто нарисовать шрифт нужного размера. Лень просто: очень уж это долго. Eddy_Em(67 знак., 27.05.2023 16:24)
- NeoChrom - от него дока полная есть, или он только через либу
доступен? - Evgeny_CD(27.05.2023 15:45)
- В Reference Manual от STM32U599/5A9 три страницы. RxTx(167 знак., 28.05.2023 11:57, ссылка)
- Ну методы быстрой отрисовки я тебе изложил. Они не lowlevel
оптимизации (заинлайнить), поменять надо сам подход. Повторюсь, в
буфер переносятся шрифты тупо копированием, без масштабирования на
лету. Потому что надо понять и допустить самое главное допущение -
в нормальном GUI дизайне используется всего 2-3 размера шрифа, ибо
так красиво. Так что можно либо подготовить ходовые размеры и
положить в пзу, либо держать в озу "кэш". memcpy в GCC будет
intrinsic'ом вставлена RxTx(1237 знак., 27.05.2023 14:43, ссылка, ссылка)
- Пиксельный буфер - когда на каждый пиксель свой цвет. А тут цвет
спрайтами. Eddy_Em(990 знак., 13.05.2023 23:05)
- Когда надоесть изобретать велосипед - взять TouchGFX или библиотеки
от ардуинщиков. Чип в экране, возможно, SPFD5408A. Costic(8 знак., 13.05.2023 13:56, youtube)
- Оно там вообще через жопу работает. Eddy_Em(90 знак., 13.05.2023 14:35)
- Вообще-то свои цели вы не озвучили. Откуда у нас основания считать что они
какие-то иные. Cкpипaч(115 знак., 13.05.2023 15:07)
- Не сплайновые, а спрайтовые - как было на старых добрых
отечественных клонах мини-компьютеров на Z80. У меня это была
"Веста" со ставропольского завода "Сигнал". Eddy_Em(609 знак., 13.05.2023 16:34)
- Потому и не гуглится. Шрифты считаете на лету? Или с таблицей
знакогенератора? Второе, по идее, предел быстродействия. Если в
панельке нет встроенного движка, какого-нибудь. - Cкpипaч(13.05.2023 16:45)
- В смысле на лету считаю? Eddy_Em(525 знак., 13.05.2023 17:50, ссылка)
- А почему не хранишь в том масштабе, в котором будешь выводить? - Cкpипaч(13.05.2023 18:04)
- Ну так для этого нужно какой-то генератор написать, чтобы сразу
масштабировать в 2, 3, 4 и 5 раз - используемые масштабы. Eddy_Em(195 знак., 13.05.2023 19:05)
- У меня для TFT LCD шрифты кодируются с оттенками серого и RLE. Получается шрифт высотой 25 около 8 кБайт (только ASCII). Шрифт высотой 10 около 3 кБайт. Рекомендую. - SciFi(13.05.2023 19:23)
- Прежде чем вылизывать битовые пересылки, следует разобраться с
косинусами в дабле :) - Cкpипaч(13.05.2023 19:07)
- Где? Eddy_Em(105 знак., 13.05.2023 19:11)
- Иносказательно имелось ввиду это: Nikolay_Po(1 знак., 14.05.2023 13:27, ссылка)
- Наверное я зря не поставил кавычки и не предупредил что
"ща-буит-афоризм". - Cкpипaч(13.05.2023 19:14)
- :) Привыкнет. Жаль, ЭмБеддера не застал... - Nikolay_Po(14.05.2023 13:24)
- Где? Eddy_Em(105 знак., 13.05.2023 19:11)
- Ну так для этого нужно какой-то генератор написать, чтобы сразу
масштабировать в 2, 3, 4 и 5 раз - используемые масштабы. Eddy_Em(195 знак., 13.05.2023 19:05)
- А почему не хранишь в том масштабе, в котором будешь выводить? - Cкpипaч(13.05.2023 18:04)
- В смысле на лету считаю? Eddy_Em(525 знак., 13.05.2023 17:50, ссылка)
- Потому и не гуглится. Шрифты считаете на лету? Или с таблицей
знакогенератора? Второе, по идее, предел быстродействия. Если в
панельке нет встроенного движка, какого-нибудь. - Cкpипaч(13.05.2023 16:45)
- Вам к логопеду. :-) Там спРайтовый буфер. Сплайн - это кривая. А
можно было бы и компилятор спрайтов сделать, если бы вывод был в
память, а не порт/SPI. - Costic(13.05.2023 16:18)
- Просто без очков гуляю :) А так, от этих айтишников всего можно
ждать - и шрифтов в сплайнах - запросто :) - Cкpипaч(13.05.2023 16:47)
- Ну какие сплайны на STM32F303? Eddy_Em(140 знак., 13.05.2023 17:52)
- Просто без очков гуляю :) А так, от этих айтишников всего можно
ждать - и шрифтов в сплайнах - запросто :) - Cкpипaч(13.05.2023 16:47)
- Не сплайновые, а спрайтовые - как было на старых добрых
отечественных клонах мини-компьютеров на Z80. У меня это была
"Веста" со ставропольского завода "Сигнал". Eddy_Em(609 знак., 13.05.2023 16:34)
- Вообще-то свои цели вы не озвучили. Откуда у нас основания считать что они
какие-то иные. Cкpипaч(115 знак., 13.05.2023 15:07)
- Оно там вообще через жопу работает. Eddy_Em(90 знак., 13.05.2023 14:35)
- Ага: заинлайнил вывод пикселя, уже в 2 раза ускорилась работа. А
еще нашел косяк в блокирующей работе с I2C: в функции записи я
зачем-то жду, пока уйдет флаг BSY в течение аж 100мс! Этот косяк
выкинул (вообще BSY не жду). Наверное, стоит еще и данные с BME280
считывать по I2C через DMA - несколько миллисекнуд сэкономлю (или
I2C со 100кГц до мегагерца поднять?). - Eddy_Em(13.05.2023 12:28)
- сову на глобус, пожалуй, проще:) ...а BME280, IMHO, от такого
счастья разогреется и начнёт плыть. - Vit(27.05.2023 15:14)
- И правда, его можно вообще раз в минуту опрашивать. - Eddy_Em(27.05.2023 16:22)
- сову на глобус, пожалуй, проще:) ...а BME280, IMHO, от такого
счастья разогреется и начнёт плыть. - Vit(27.05.2023 15:14)
- Буфер не спрайтовый, спрайты это иное Подобный буфер называется
пиксельный и это так называемый BackBuffer. Посмотрел код, очень
тяжелый. ARM вывозит его только потому что реально быстр. Быстро
это пишется так: RxTx(1373 знак., 13.05.2023 22:50)