Слишком медленно работает для реального использования. Хотя уже можно пилить... Не понятно что это с левой стороны за артефакты и наложения в тексте. Плюс почему не полные строки.
По поводу ошибки - там жирный текст реализовался таким кодом
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 }
TrueType
-
- Attachments
-
-
egve.png (65.12 KiB)Viewed 8488 times
-
Из хаоса в космос
Это баг в truetype.obj, а конкретно - в моих обертках. Память для изображения с текстом явно выделяется неправильно. Работает медленно. потому что по сто раз вызывается 7я функция. В идеале картинка должна рисоваться в памяти целиком, а затем выводиться на экран. Truetype.obj позволяет делать такой трюк, по идее. Т.е. реально весь текст будет отрисовываться в одну область памяти, а затем эта область выводится на экран целиком.
А с приложенной версией можно скриншот?
- Attachments
-
-
truetype.obj (34.55 KiB)Downloaded 435 times
-
Вот
- Attachments
-
-
ergeg.png (67.65 KiB)Viewed 8470 times
-
Из хаоса в космос
Уже лучше, но все равно функция подсчета длины строки в пикселях песочит. Молодец, lev!
Мне лень было с ней разбираться и я помножил результат на 2, просто для просмотра
Так что пока не молодец.
Так что пока не молодец.
Умножь на 2,5
Из хаоса в космос
Умножил на два? О_о Странно, не очень похоже, судя по результату. Странно, что ошибка накапливается.
Кстати, lev, вот тебе пара хороших идей Я думаю, что эти правки не займут много времени, но попробовать с ними стоит - пока не будет добавлен полноценный блиттер.
Leency wrote:Может добавить опцию ,чтобы программа не читала изображение с экрана, а использовала указаный фоновый цвет. Это будет наааамного быстрее и подойдёт для 90% случаев. Это первый вариант ускорения.
Второй - это выключить вывод информации на доску отладки - это на самом деле много процессорного времени хавает.
Отладку могу убрать.
С фоновым цветом посмотрю.
С фоновым цветом посмотрю.
lev, будет здорово!
Вспомнил/понял, почему работает так медленно. Причина в строке
Нужно вынести процедуру инициализации шрифта из процедуры отрисовки. API станет сложнее, зато будет на порядок или два быстрее работать.
Code: Select all
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");}
very Good
can i use arabic fonts ?
can i use arabic fonts ?
You probably can, if you can read/write them from left to right...
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.
Who is online
Users browsing this forum: No registered users and 3 guests