Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт авг 18, 2017 8:01 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 81 сообщение ]  На страницу Пред. 1 2 3 4 5 6 След.
Автор Сообщение
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Пт ноя 09, 2012 7:14 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Я тут подумал.Можно же хранить загруженные шрифты в именованных областях памяти.


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Вс ноя 11, 2012 11:24 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Увеличил скорость отрисовки путем одноразовой загрузки шрифта в память, для этого добавлена новая функция font_init. Пока что она не грузит дополнительные шрифты, но поправить - дело двух минут. Вместо get_width стоит заглушка, её нужно исправить, но времени на это у меня сейчас нет.
Исправленная версия дает терпимую скорость отрисовки в qemu и абсолютно достаточную для комфортной работы на реальной машине. Если бы рисовалось всё в фреймбуфер перед выводом на экран (чтоб не дергать по сто раз 7ю системную функцию) - скорость была бы отличной и в qemu.

С этим нужно что-то делать.


Вложения:
c.7z [608.25 КБ]
98 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Вс апр 07, 2013 9:17 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
Исходники можно?

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Вс апр 07, 2013 9:26 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Специально загрузил файл, последний в этой теме. Убедился - исходники из него никуда не делись. Баги тоже :)


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Вс апр 07, 2013 9:32 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
Так это последние наработки? Тогда всё, вопросов нет, кончились)

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Вс апр 07, 2013 9:45 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
На самом деле, у меня есть версия с нуля - но она пока что только в Linux работает. И её нужно конкретно править.


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Вт июл 23, 2013 4:14 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
Я вот подкорректировал библиотеку для своих нужд. Сделал так, что она выводит Юникод-строки, загружает шрифт из файла (в архив положил один, с ним у меня она нормально работает). Рисует только на заданном фоне. И ещё умеет рисовать в память. Функция text_out_mem рисует строку в память и возвращает указатель на память с рисунком. Формат такой - dword ширина рисунка, BBGGRR...BBGGRR сам рисунок. Высота известна в параметре к функции потому и не добавлял в буфер. После использования его следует освободить ф. 68,13 . Вот. Пока я ей не занимаюсь(сейчас другие задачи, да и текущих функций мне хватает). В архив положил файлик с прототипами функций(вроде там по названиям всё понятно). Кушает много стека, я выделял 10КБ. Да ещё. Если не ошибаюсь, то раньше был баг с определением ширины строки. В результате появлялись лишние пробелы. Вот теперь этого бага не видно. Не знаю, в чём он был, но сейчас нету :|


Вложения:
ttf.zip [230.21 КБ]
66 скачиваний

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Пн мар 24, 2014 3:44 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4092
Переписка с Робертом. Что как делать, надеюсь, он не против.

Насчёт шрифта два варианта: если библиотека та, что мной выложена, то в unsigned char *FontData находится путь к шрифту. Иначе шрифт зашит в библиотеке(но тогда там функция init_font выглядит так: int __stdcall init_font(stbtt_fontinfo *font) ).
"stbtt_fontinfo *font - это что за структура??" - сам не знаю :D . Я просто давал пустой буфер в 200байт и всё отлично работало. Сейчас пример проги в читаемый вид переделаю.

Так, пардон, ошибся. unsigned char *FontData - это загруженный в память файл шрифта(просто загруженный, без всякой обработки)

Вот рабочий пример. Пути только поправить надо. Шрифты многие открывает, по крайней мере arial.ttf из ХРюши нормально рисует. Вот.
И ещё.

Код:
typedef struct stbtt_fontinfo
{
void * userdata;
unsigned char * data; // pointer to .ttf file
int fontstart; // offset of start of font

int numGlyphs; // number of glyphs, needed for range checking

int loca,head,glyf,hhea,hmtx,kern; // table locations as offset from start of .ttf
int index_map; // a cmap mapping for our chosen character encoding
int indexToLocFormat; // format needed to map from glyph index to glyph
} stbtt_fontinfo;


Так что 200байт - много :) Видимо просто личные данные шрифта для его рисования.
Файл TTF.ASM

Кирилл
> Иначе шрифт зашит в библиотеке
а в библиотеке уже есть зашитый шрифт?

Роберт
В правленной мной, нет. В прежних да.


Вложения:
TTF.asm [2.66 КБ]
48 скачиваний

_________________
Через тернии к звездам
Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Пн мар 24, 2014 4:53 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Вообще над этим портом нужно знатно поработать. Выбрать API, добавить менеджер шрифтов (чтоб не хранить по сто раз один и тот же шрифт в памяти).


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Пн мар 31, 2014 2:26 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
Это второе. Первое, что надо сделать - это научить библиотеку нормально рисовать мелкие буквы. В винде мелкие буквы четко видно, в линуксе гораздо хуже. Точно не понял, но, видимо, где-то в файле шрифта лежат готовые буквы для маленького размера(ну не всегда, конечно). Их винда и юзает.

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Пн мар 31, 2014 7:43 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Ноуп, это плохо. Потому что это издевательство над буквами. 256 градаций прозрачности достаточно для нормальных маленьких букв.
И да, в шрифт не кладут маленькие буквы, плохие системы сами решают, как калечить несчастные буквы небольших размеров.


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Ср ноя 12, 2014 2:08 am 
Не в сети
Аватара пользователя

Зарегистрирован: Вс май 11, 2014 9:21 pm
Сообщения: 97
bubach писал(а):
here's a link to a small truetype support file in C.
http://mollyrocket.com/forums/viewtopic.php?t=736
SoUrcerer писал(а):
So, I managed to compile this library.
The link seems broken. :cry:
I would like to see the c source.

_________________
Greetings from Seppe


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Ср ноя 12, 2014 9:14 am 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
You can find sources at svn, programs/libraries/truetype or something like this.


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Ср ноя 12, 2014 11:51 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Пт июн 30, 2006 9:01 am
Сообщения: 1211
http://websvn.kolibrios.org/listing.php ... f1298b64c5

_________________
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." Albert Einstein


Вернуться к началу
 Заголовок сообщения: Re: TrueType
СообщениеДобавлено: Ср ноя 12, 2014 4:01 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4092
No, please use this one viewtopic.php?f=24&t=2059&view=unread#p50614

_________________
Через тернии к звездам


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 81 сообщение ]  На страницу Пред. 1 2 3 4 5 6 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB