Re[15]: Кроссплатформа - состояние на конец 2022
От: Ночной Смотрящий Россия  
Дата: 15.09.22 08:23
Оценка: +2 :)
Здравствуйте, CreatorCray, Вы писали:

НС>>Даже с одним шрифтом у символов разная ширина, разное межстрочное расстояние, разный масштаб.

CC>И? Всё что тебе тут надо — GetTextExtentPoint32W и GetTextExtentExPointW
CC>Системный рендерер всё расчёты сделает за тебя.

Все рассчеты он за меня не сделает. И алгоритмы при этом заметно усложняется. Я уж не говорю о том, что GetTextExtent тормозной аж пипец, так что его результаты надо активно кешировать иначе будут те самые тормоза, с которыми ты сражаешься.

НС>> Кроме этого нужно учитывать попиксельный клиппинг

CC>Поскольку всё равно рисуешь в Bitmap по размеру viewport то достаточно посимвольного через GetTextExtentExPointW, всё остальное за тебя обрежет GDI renderer при вызове TextOutW.

Он, конечно, обрежет. Но будут те самые тормоза, с которыми ты сражаешься.

НС>> подавление фликеринга при скроллинге

CC>Это ж вообще азбука!

Это не азбука, а конкретне, в 2022 году довольно специфические навыки, требующие соответствующего спеца. С чего, собственно, разговор и начался.

CC>BitBlt буфера, куда отрисован viewport уже очень давно не фликерит.


А теперь вспоминаем про клиппинг. На который, конечно, можно забить, но будут те самые тормоза, с которыми ты сражаешься.

НС>> отсутствие аппаратного курсора

CC>А в чём проблема нарисовать свой через банальный BitBlt?

В том что это надо делать.

НС>> поддержку мыши с пиксельными координатами и т.д.

CC>Да не проблема жеж вообще!

Да оно все не проблема, только в итоге набирается большая куча весьма специфического кода, который надо написать.

CC>Потом выясняешь внутри строки символьное положение через GetTextExtentExPointW


... который тормозит ... Ну ты понял.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.