Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пт апр 28, 2017 3:10 pm

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




Начать новую тему  Ответить на тему  [ 46 сообщений ]  На страницу Пред. 1 2 3 4 След.
Автор Сообщение
СообщениеДобавлено: Пн май 30, 2011 9:37 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Gluk, ясно ведь, что переделывать API - огромная морока, и заниматься этим будет некому и некогда.


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 9:38 pm 
Потом для изменения придется переписывать все используемые приложения и терять совместимость если не переписывать...

З.Ы. Форум работает в режиме чата... почти.


Вернуться к началу
   
СообщениеДобавлено: Пн май 30, 2011 9:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
Mario, ну чат ведь убрали...

Sorcerer, да

Mario, форкнуть, будет лучше - перейдут, хуже (или недостаточно лучше) не перейдут...

Впрочем, обсудить реально надо. У меня, в свою очередь, особых пожеланий нет пока... Ведь даже черновика нет - сложно судить(

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 9:55 pm 
Не в сети

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

Библиотека однозначно будет уметь выводить текст в область памяти, считать длину и высоту текста в пикселах. Возможно она должна будет уметь сама выводить текст в окно, и может быть поддерживать форматирование текста и расширенные атрибуты (хотя мне кажется, что этим должна заниматься конечная программа, а не библиотека шрифтов).


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 10:04 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
XVilka писал(а):
Взять подмножество функций из http://freetype.sourceforge.net/freetyp ... 2-toc.html ?

Мне кажется, функции freetype сильно заточены под freetype. Например, типы данных. Нафига столько?
Цитата:
FT_Byte FT_Offset FT_UnitVector
FT_Bytes FT_PtrDist FT_F26Dot6
FT_Char FT_String FT_Pixel_Mode
FT_Int FT_Tag ft_pixel_mode_xxx
FT_UInt FT_Error FT_Palette_Mode
FT_Int16 FT_Fixed FT_Bitmap
FT_UInt16 FT_Pointer FT_IMAGE_TAG
FT_Int32 FT_Pos FT_Glyph_Format
FT_UInt32 FT_Vector ft_glyph_format_xxx
FT_Short FT_BBox FT_Data
FT_UShort FT_Matrix FT_Generic_Finalizer
FT_Long FT_FWord FT_Generic
FT_ULong FT_UFWord FT_MAKE_TAG
FT_Bool FT_F2Dot14


А ведь эти типы использует большая часть из функций (базовых, так сказать):
Цитата:
FT_Library FT_IS_TRICKY FT_Load_Char
FT_Face FT_STYLE_FLAG_XXX FT_LOAD_XXX
FT_Size FT_Size_Internal FT_LOAD_TARGET_XXX
FT_GlyphSlot FT_Size_Metrics FT_LOAD_TARGET_MODE
FT_CharMap FT_SizeRec FT_Set_Transform
FT_Encoding FT_SubGlyph FT_Render_Mode
FT_Glyph_Metrics FT_Slot_Internal ft_render_mode_xxx
FT_Bitmap_Size FT_GlyphSlotRec FT_Render_Glyph
FT_Module FT_Init_FreeType FT_Kerning_Mode
FT_Driver FT_Done_FreeType ft_kerning_default
FT_Renderer FT_OPEN_XXX ft_kerning_unfitted
FT_ENC_TAG FT_Parameter ft_kerning_unscaled
ft_encoding_xxx FT_Open_Args FT_Get_Kerning
FT_CharMapRec FT_New_Face FT_Get_Track_Kerning
FT_Face_Internal FT_New_Memory_Face FT_Get_Glyph_Name
FT_FaceRec FT_Open_Face FT_Get_Postscript_Name
FT_FACE_FLAG_XXX FT_Attach_File FT_Select_Charmap
FT_HAS_HORIZONTAL FT_Attach_Stream FT_Set_Charmap
FT_HAS_VERTICAL FT_Reference_Face FT_Get_Charmap_Index
FT_HAS_KERNING FT_Done_Face FT_Get_Char_Index
FT_IS_SCALABLE FT_Select_Size FT_Get_First_Char
FT_IS_SFNT FT_Size_Request_Type FT_Get_Next_Char
FT_IS_FIXED_WIDTH FT_Size_RequestRec FT_Get_Name_Index
FT_HAS_FIXED_SIZES FT_Size_Request FT_SUBGLYPH_FLAG_XXX
FT_HAS_FAST_GLYPHS FT_Request_Size FT_Get_SubGlyph_Info
FT_HAS_GLYPH_NAMES FT_Set_Char_Size FT_FSTYPE_XXX
FT_HAS_MULTIPLE_MASTERS FT_Set_Pixel_Sizes FT_Get_FSType_Flags
FT_IS_CID_KEYED FT_Load_Glyph


То есть делать подмножество freetype не выйдет - передаваемые функциям параметры вряд ли совпадут. Нужны свои функции, пусть и аналогичные фритайповским. Мне например нравится их идея с CharMap, Metrics, Encoding...


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 10:33 pm 
Я думаю для библиотеки нужно уметь выводить строку символов и возвращать приложению результат сколько символов влезло, если они все не поместились в выводимую область для строки. Для пущей важности можно выводить множество строк, но тут уже не совсем понятно как слова переносить. Заставлять выводить приложение каждый символ неэффективно в плане производительности, хотя можно оставить такой вариант для реализации разнообразных эффектов.


Вернуться к началу
   
СообщениеДобавлено: Пн май 30, 2011 10:44 pm 
Не в сети

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


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 10:52 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
Mario, если библиотека может считать размеры строки относительно точки, от которой рисуется строка (вниз, влево, вправо, вврех), без рисования, то она должна это позволять.

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 10:53 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 786
пусть переносом занимается тогда приложение. а при выводе множества строк обрабатывать символ переноса строки.


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 10:55 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
XVilka, приложение заранее не может знать, сколько пикселов занимает строка вширь, так что не может расставить символы перевода строки самостоятельно

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 11:01 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Приложение может спросить об этом у библиотеки. Даже для строки в 80 символов длиной сложить 80 чисел - не так уж и сложно. Обработка символа переноса строки - зачетная идея. \r\n или еще что использовать в качестве этого?


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 11:12 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн апр 16, 2007 6:38 pm
Сообщения: 1222
\n хватит. Или кто-то еще переводит каретку?


Sorcerer: "Приложение может спросить об этом у библиотеки."
алгоритм приложения работы.
надо вывести строку длиной в рамку шириной икс.

togoto:
-Библиотека, скажи ширину этой строки длиной 1!
-Библиотека, скажи ширину этой строки длиной 2!
-Библиотека, скажи ширину этой строки длиной 3!
....
-Библиотека, скажи ширину этой строки длиной n-1!
-Библиотека, скажи ширину этой строки длиной n!
^пока возвращаемая ширина y не станет y >= x.
Если стала, переносим все символы, следующие за символом (k - сколько строк уже выведено) k*x+y на 1 символ
[тут переносится 65кбайт (например), строка байт на 1 байт вправо: бввввдыщщщщч], в освободившийся байт записываем \r
k++
goto togoto

так?

_________________
И мы уже давно не пешки,
Мы пули, мы орлы, и решки!
Война ютит бинарный код,
Умри, или иди вперед!


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 11:21 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Можно и так:
Библиотека_Скажи_Сколько_Букв_Влезет_В_Битмап(Строка, Ширина_Битмапа, Высота_Битмапа)


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 11:23 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 786
параметры шрифта тоже надо указывать при вычислении.


Вернуться к началу
СообщениеДобавлено: Пн май 30, 2011 11:36 pm 
Не в сети

Зарегистрирован: Пн сен 24, 2007 11:11 am
Сообщения: 2814
Само собой.

Для ускорения работы на небольших размерах предлагаю загружать файл шрифта в память и растрировать в нужном размере, а потом хранить глифы как битмапы, и по надобности собирать из них готовые изображения. Для больших кеглей такой метод не прокатит - вряд ли будет быстрее, зато памяти много потребуется. Хотя, это нужно пробовать.


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

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


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

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


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

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