Page 2 of 5

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:02 pm
by yogev_ezra
SoUrcerer wrote:SysFn4, что самое паршивое, считает размеры этой самой выводимой строки. Это обидно. Считать-считает, а вывести некуда. Или затирать данные.
Но она-то их считает только для моноширинных шрифтов, верно? А если шрифт переменной ширины, то как ты этой функции передашь ширину букв или что?

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:04 pm
by SoUrcerer
Mario wrote:
Lrz wrote:
б) Шрифт может выводиться и без фона. В этом случае формировать его как картинку в памяти не очень выгодно, хотя и можно. Для отрисовки шрифта без фона программа или библиотека должна выводить/накладывать шрифт попиксельно.
Все это очень замечательно, когда все происходит на уроне ядра, где нет переходов с Ring0 на Ring3. При взаимодействии же ядра и приложения каждая точка вызывается int 0x40, что не есть правильно с точки зрения производительности.
Вот такие дела, та же самая фигня, что и в ttf-выводе, была в font library. Значит, эта библиотека не может быть использована в браузере и многих других программах, к сожалению.
Ладно, я считаю, что вопрос себя исчерпал, а тему можно закрывать. Это "не нужно".

yogev, а как, по-твоему, функция выводит не-моноширинный текст, а? :) Для каждой буквы рассчитываются её координаты. В конце концов мы получаем координаты конечной буквы, мы знаем её ширину, и знаем, с какой точки отрисовка началась...

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:06 pm
by hidnplayr
I think the Fancy fonts should not be inside the kernel, but in a library.

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:07 pm
by SoUrcerer
hindplayr, +1. I think that topic is exhausted :)

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:08 pm
by Mario_r4
* Y=Cnnn (биты):
* C=1 перенаправить вывод в область пользователя, задано в edi
* nnn - не используется в текущем виде, должно быть 0 (zero)
Религия запрещает использовать?

Единственно ICON не сможет новые шрифты использовать, так как отрисовывает их поверх области иконки и лишь потом выводит изображение.

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:10 pm
by SoUrcerer
В трех битах нельзя вернуть данные. В трех битах можно определить новую подфункцию, но это будет нелогично. В общем, нафиг всё, даешь библиотеку.

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:12 pm
by yogev_ezra
SoUrcerer wrote:В трех битах нельзя вернуть данные. В трех битах можно определить новую подфункцию, но это будет нелогично. В общем, нафиг всё, даешь библиотеку.
Так используй MMX регистры. Целых 64 бита, чо.

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:12 pm
by Mario_r4
SoUrcerer wrote:В трех битах можно определить новую подфункцию, но это будет нелогично.
Почему нелогично? Мне вот религия не помешала так сделать, когда было нужно "впихнуть невпихуемое".

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:14 pm
by Freeman
Мне кажется, что возврат значения в ESI или EDI, о чем говорилось в чате -- нарушение соглашения вызова mcall. Нужно делать или отдельную функцию, или подфункцию для получения длины.

SoUrcerer, напиши, что предлагается сделать. К примеру:
  • Y=CnnA (биты):
    • A=1 вернуть размер строки в пикселях в eax [размер по оси x]*65536 + [размер по оси y]
    • C=1 перенаправить вывод в область пользователя, задано в edi
    • nn - не используется в текущем виде, должно быть 0 (zero)

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:17 pm
by SoUrcerer
Возвращать в ESI/EDI, действительно, бессмысленно.

Если кому-то нужны шрифты 16x8 (моноширинный), 16x12 (немоноширинный) и возможность считать длину не-моноширинных шрифтов в ядре (с возвратом в eax) - обращайтесь.
Внимание, это займет дополнительные 10 кб в памяти, и никому не нужно, потому что никто не будет переписывать существующие программы под новые шрифты.

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:19 pm
by Leency
В общем ясно, что снова всё накрылось. Похуй, что реализовать определение длинны строки просто как 2 пальца обоссать и уже браузер стал бы читабельнее за счёт использования char2, как и другие программы. Но нет, мы будем ждать очередную новую феерическую библиотеку и ещё 7 лет ебаться с этими шрифтами 8х5.

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:20 pm
by Mario_r4
SoUrcerer wrote:Внимание, это займет дополнительные 10 кб в памяти, и никому не нужно, потому что никто не будет переписывать существующие программы под новые шрифты.
Это почему? Я вот при проектировании FileBrowser компонента Box_Lib постарался учесть будущие подвижки и оставил резервные поля.

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:22 pm
by Mario_r4
Ну, конечно Кириллу плевать на стандарты вообще -дальше хоть трава не расти.
Spoiler:"Что с меня взять? Я же только дизайнер. Починяйте давайте автосборку!"

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:26 pm
by Leency
Стандарты Маратушки все ломают автосборку, а он пушистик.
Spoiler:
03.03.2013-v1-625x416.png
03.03.2013-v1-625x416.png (129.05 KiB)
Viewed 11543 times

Re: SysFn 4

Posted: Tue Mar 12, 2013 11:35 pm
by lev
: А правила на форуме уже действуют? Или пока что нет и обиженным можно материться?