Масштабирование растровых системных шрифтов с AEB эффектом

Kernel-side graphics support
  • Увеличить шрифты в системе непросто, надо менять размер графических элементов под ними. Хотя, сколько их? Меню и панель...
  • Ну вот, теперь в ф4 ecx = XYRRGGBB h, где XY = AB00CDDD b, где DDD = (множитель шрифта)-1, то-есть 1 = х2, 7 = х8. Шрифт пока один.
    В ф48 добавил подфункцию 9, ecx (cl) = 0 — отключить сглаживание, не 0 — включить.
    Можно совокуплять.
  • Можешь выложить для тестов скомпиленное ядро и программу с разным размером шрифтов?
    Из хаоса в космос
  • Pathoswithin wrote:Ну вот, теперь в ф4 ecx = XYRRGGBB h, где XY = AB00CDDD b, где DDD = (множитель шрифта)-1, то-есть 1 = х2, 7 = х8. Шрифт пока один.
    В ф48 добавил подфункцию 9, ecx (cl) = 0 — отключить сглаживание, не 0 — включить.
    Можно совокуплять.
    А можно ширину и высоту шрифта узнавать или это моноширинный шрифт?
    Технологии меняют мир, а я - меняю технологии.
  • Я, пожалуй, не настолько люблю эксперименты в транке, чтобы заливать код, убивающий второй системный шрифт, без предупреждения.
    Сделаем мир лучше!
  • Принципиальных отличий нет, программа лежит viewtopic.php?f=36&t=3084&start=19, там ещё такты процессора выводятся. Можно добавить отключение сглаживания, тогда при обновлении открытых окон будет видна разница:

    Code: Select all

    mov	eax,48
    mov	ebx,9
    xor	ecx,ecx
    int	40h
    Шрифт моноширинный, 5+1. Немоноширинный, внезапно, был шире; как расчитывалась его длинна не знаю, на кнопках завершения работы съехал; я так понял, код не в ядре.
  • CleverMouse, собственно ничего ужасного не случиться, просто я не знаю, где код посъезжавшего текста.
  • Pathoswithin, programs/system/end/light/data.inc. Они не рассчитываются, просто определённое количество пробелов.
    Сделаем мир лучше!
  • Есть некоторые основания считать проделанную работу только на 50% успешной. Масштабирование пиксельных шрифтов занятное и внешне напоминает сильно улучшенный hqx Однако с субпиксельным рендерингом есть проблемы. В аттаче 1.png с обычным антиалиасингом, 2.png с "субпискельным". Разницы нет никакой, разве что тратится время на обсчет бесполезного эффекта. Субпискели нужны в основном для улучшения отображения свободно масштабируемых (векторных) шрифтов. - Например когда нет возможности сделать хинтинг на все мыслимые размеры. Может ли системный шрифт KOS быть уменьшен и оставаться читаемым при использовании данной имитации субпиксельного рендеринга? - Очень сомневаюсь. Однако честный субпиксельный рендеринг позволяет гибко масштабировать шрифты не сильно парясь о читаемости (3.png).
    Attachments
    Ресайз тестового изображения + hqx + субпиксельный рендеринг
    3.png (77.62 KiB)
    Ресайз тестового изображения + hqx + субпиксельный рендеринг Viewed 7296 times
    Обычный "серый" антиалиасинг
    2.png (96.32 KiB)
    Обычный "серый" антиалиасинг Viewed 7296 times
    "Волшебный" субпиксельный антиалиасинг
    1.png (97.42 KiB)
    "Волшебный" субпиксельный антиалиасинг Viewed 7296 times
  • yavlenie, похоже ты невнимательно читал тему. Во-первых заголовок: работа на 100% успешна + бонус. Во-вторых, при сглаживании скорость снижается в 20 раз из-за чтения видеопамяти, антиалиасинг тоже этого требует. С другой стороны, скорость приемлемая поскольку считываются только несколько пикселей (например, 8 для буквы "О"), а векторный шрифт потребует считать все.
    Может ли системный шрифт KOS быть уменьшен и оставаться читаемым при использовании данной имитации субпиксельного рендеринга?
    Системный шрифт имеет разрешение 9х(5+1), уменьшать его некуда.
    Разницы нет никакой, разве что тратится время на обсчет бесполезного эффекта.
    Вообще-то, расчёт 3/1, 3/1, 3/1 дольше чем 4/0, 3/1, 2/2, но поскольку это грубо пофиг, я могу сделать так или даже оба варианта, так что решайте, какой лучше.
    Однако честный субпиксельный рендеринг позволяет гибко масштабировать шрифты не сильно парясь о читаемости (3.png).
    Тут вообще не понял. Видно, что мой алгоритм лучше заточен под шрифт, но я не применяю сглаживание к масштабированному шрифту. В чём нечестность?
  • Если возражений так и не поступит, я ведь закоммичу.
    Сделаем мир лучше!
  • Угрожаешь? А чего возражать? Вот вам новый End, в остальном разницы практически не будет. Плюс небольшое исправление.
    Attachments
    New End.PNG
    New End.PNG (12.5 KiB)
    Viewed 7216 times
  • Не ок.

    Предыдущий вариант viewtopic.php?p=62042#p62042
    Текущий вариант http://i.imgur.com/8DhcvhO.png
    Из хаоса в космос
  • Pathoswithin wrote:Угрожаешь? А чего возражать? Вот вам новый End, в остальном разницы практически не будет. Плюс небольшое исправление.
    Толщина шрифта регулируется?
    Наклонный текст поддерживается?
    Сможешь реализовать ф-цию загрузки разных шрифтов для колибри ( мб. специальный формат ) ?
    Технологии меняют мир, а я - меняю технологии.
  • Who is online

    Users browsing this forum: No registered users and 2 guests