Board.KolibriOS.org
http://board.kolibrios.org/

TrueType
http://board.kolibrios.org/viewtopic.php?f=24&t=2059
Page 4 of 6

Author:  Leency [ Mon Nov 05, 2012 7:21 pm ]
Post subject:  Re: TrueType

Слишком медленно работает для реального использования. Хотя уже можно пилить... Не понятно что это с левой стороны за артефакты и наложения в тексте. Плюс почему не полные строки.

По поводу ошибки - там жирный текст реализовался таким кодом

WriteText(start_x, start_y, 0x80, text_colors[text_color_index], #line, 0);
IF (b_text) { $add ebx, 1<<16 $int 0x40 }

после стало
//WriteText(start_x, start_y, 0x80, text_colors[text_color_index], #line, 0);
text_out stdcall (#line, -1, 17, text_colors[text_color_index], start_x, start_y-3);
IF (b_text) { $add ebx, 1<<16 $int 0x40 }

:)

Attachments:
egve.png
egve.png [ 65.12 KiB | Viewed 3905 times ]

Author:  SoUrcerer [ Mon Nov 05, 2012 8:27 pm ]
Post subject:  Re: TrueType

Это баг в truetype.obj, а конкретно - в моих обертках. Память для изображения с текстом явно выделяется неправильно. Работает медленно. потому что по сто раз вызывается 7я функция. В идеале картинка должна рисоваться в памяти целиком, а затем выводиться на экран. Truetype.obj позволяет делать такой трюк, по идее. Т.е. реально весь текст будет отрисовываться в одну область памяти, а затем эта область выводится на экран целиком.

Author:  lev [ Mon Nov 05, 2012 8:32 pm ]
Post subject:  Re: TrueType

А с приложенной версией можно скриншот?

Attachments:
truetype.obj [34.55 KiB]
Downloaded 257 times

Author:  Leency [ Mon Nov 05, 2012 8:39 pm ]
Post subject:  Re: TrueType

Вот

Attachments:
ergeg.png
ergeg.png [ 67.65 KiB | Viewed 3887 times ]

Author:  SoUrcerer [ Mon Nov 05, 2012 8:41 pm ]
Post subject:  Re: TrueType

Уже лучше, но все равно функция подсчета длины строки в пикселях песочит. Молодец, lev!

Author:  lev [ Mon Nov 05, 2012 8:42 pm ]
Post subject:  Re: TrueType

Мне лень было с ней разбираться и я помножил результат на 2, просто для просмотра :)
Так что пока не молодец.

Author:  Leency [ Mon Nov 05, 2012 8:46 pm ]
Post subject:  Re: TrueType

Умножь на 2,5 :)

Author:  SoUrcerer [ Mon Nov 05, 2012 8:50 pm ]
Post subject:  Re: TrueType

Умножил на два? О_о Странно, не очень похоже, судя по результату. Странно, что ошибка накапливается.

Author:  SoUrcerer [ Mon Nov 05, 2012 9:05 pm ]
Post subject:  Re: TrueType

Кстати, lev, вот тебе пара хороших идей :) Я думаю, что эти правки не займут много времени, но попробовать с ними стоит - пока не будет добавлен полноценный блиттер.

Leency wrote:
Может добавить опцию ,чтобы программа не читала изображение с экрана, а использовала указаный фоновый цвет. Это будет наааамного быстрее и подойдёт для 90% случаев. Это первый вариант ускорения.
Второй - это выключить вывод информации на доску отладки - это на самом деле много процессорного времени хавает.

Author:  lev [ Mon Nov 05, 2012 9:42 pm ]
Post subject:  Re: TrueType

Отладку могу убрать.
С фоновым цветом посмотрю.

Author:  SoUrcerer [ Mon Nov 05, 2012 10:13 pm ]
Post subject:  Re: TrueType

lev, будет здорово!

Author:  SoUrcerer [ Tue Nov 06, 2012 1:10 pm ]
Post subject:  Re: TrueType

Вспомнил/понял, почему работает так медленно. Причина в строке
Code:
 if (buffer==-1) {stbtt_InitFont(&font, pdf_font_DroidSans,stbtt_GetFontOffsetForIndex(pdf_font_DroidSans,0) );kol_board_puts("default font\n");} else {stbtt_InitFont(&font, buffer,stbtt_GetFontOffsetForIndex(buffer,0) );kol_board_puts("Font loaded..\n");}

Нужно вынести процедуру инициализации шрифта из процедуры отрисовки. API станет сложнее, зато будет на порядок или два быстрее работать.

Author:  linuxer9 [ Fri Nov 09, 2012 12:02 pm ]
Post subject:  Re: TrueType

very Good :)
can i use arabic fonts ?

Author:  johnfound [ Fri Nov 09, 2012 12:24 pm ]
Post subject:  Re: TrueType

You probably can, if you can read/write them from left to right...

Author:  SoUrcerer [ Fri Nov 09, 2012 4:55 pm ]
Post subject:  Re: TrueType

You can try, but for now library accept only DOS866 codepage. You can fix sources easily to accept UTF-8, but you also should think about inserting symbols from right to left. It's possible and relatively easy.

Page 4 of 6 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/