|
Здравствуйте Гость ( Вход | Регистрация ) Доступ из РоссииДля сохранения достпа из России к сайту и форуму GBX
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() ![]() ![]() |
Уникод + fenix, МУХАХА, я его того B]
| EugeneP |
Суббота, 24 октября 2009, 20:06
Отправлено
#1
|
![]() Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 314 Регистрация: 15 мая. 2009 Из: Сибирь Пользователь №: 31 975 ![]() ![]() |
Мне нравится язык FENIX, и не мне одному, но у этого языка есть серёзный минус - он не умеет работать с не латинскими шрифтами.
Боль от осознания этого факта толкнула меня на написание дополнения к фениксу, которое бы позволило честно рендерить трутайп на фениксовскую поверхность. Оно работает, как ни странно. Расширение truettf - обёртка над SDL_ttf. Экспортирует функции: load_truettf( filename, fontsize ); unload_truettf( fontID ); write_truettf( file, graph, fontID, x, y, options, text ); Значения флагов options: TT_ENC_ASCII, TT_ENC_UTF8, TT_ALIGN_H_CENTER, TT_ALIGN_H_LEFT, TT_ALIGN_H_RIGHT, TT_ALIGN_V_MIDDLE, TT_ALIGN_V_TOP, TT_ALIGN_V_BOTTOM, TT_NEW_MAP ----
truettf_0.3.tar.gz ( 33.56кб )
Кол-во скачиваний: 129Внутри архива исходник, пример, бинарники под i386linux и Виз (ufxi, а не fix !). Пример не запустится без шрифтов! Приложите свои любимые и подправте sample.prg. Ограничение: Феникс корёжит строки зашитые в исходник при компиляции, поэтому строки нужно зачитывать из внешних файлов (см. прмер.) Просьба к братьям по разуму: Сделайте мэйк-файл или скрипт для винды. Ну и предложения и пожелания, если это кому-то кроме меня надо Сообщение отредактировал EugeneP - Понедельник, 26 октября 2009, 20:26 |
| Hahahoj |
Суббота, 24 октября 2009, 20:12
Отправлено
#2
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Виндовая кодировка cp1251, имхо, лучше. Поскольку намного быстрее обрабатывается, имеет фиксированный размер символа в один байт, и изначально содержит все нужные русскому человеку буковки и символы. Для испанцев же и прочих французов достаточно просто подгрузить их родной фонт.Единственная трабла - к символам диапазона 128-255 некоторые бейсикообразные языки привязывают служебные токены, а не символы.
-------------------- |
| EugeneP |
Суббота, 24 октября 2009, 20:15
Отправлено
#3
|
![]() Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 314 Регистрация: 15 мая. 2009 Из: Сибирь Пользователь №: 31 975 ![]() ![]() |
Есть ещё китайцы
|
| Hahahoj |
Суббота, 24 октября 2009, 20:16
Отправлено
#4
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Китайцы на Визе меня не интересуют. Они неплохо заботятся о себе сами. И думаю им будет много понятнее мой английский, чем мой китайский.
-------------------- |
| radzh |
Воскресенье, 25 октября 2009, 10:10
Отправлено
#5
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 242 Регистрация: 07 авг. 2008 Пользователь №: 27 750 ![]() ![]() |
Брр, XXI век на дворе, куда щас без уникода? Экономия на спичках до добра не доводит.
|
| Hahahoj |
Воскресенье, 25 октября 2009, 10:24
Отправлено
#6
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
И как мы без него живем и жили, просто не понятно...
-------------------- |
| radzh |
Воскресенье, 25 октября 2009, 10:31
Отправлено
#7
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 242 Регистрация: 07 авг. 2008 Пользователь №: 27 750 ![]() ![]() |
Логично. Зачем мы вообще с деревьев слезли?..
|
| Hahahoj |
Воскресенье, 25 октября 2009, 11:38
Отправлено
#8
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Если следовать твоей логике, то 90% населения еще с них не слезло.
-------------------- |
| radzh |
Воскресенье, 25 октября 2009, 11:57
Отправлено
#9
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 242 Регистрация: 07 авг. 2008 Пользователь №: 27 750 ![]() ![]() |
Я не готов оперировать процентами. Зато я знаю, что "Войну и мир" в однобайтной кодировке не запишешь.
|
| Hahahoj |
Воскресенье, 25 октября 2009, 12:06
Отправлено
#10
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Как раз её в однобайтной кодировке и запишешь и прочитаешь беспроблемнее всего. И много шустрее потому что вместо плавающего размера символа (один/два байта) или фиксированного на два - будет фиксированный однобайтный и соответственно и памяти и ресурсов процессора будет жраться на обработку много меньше.
-------------------- |
| radzh |
Воскресенье, 25 октября 2009, 12:48
Отправлено
#11
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 242 Регистрация: 07 авг. 2008 Пользователь №: 27 750 ![]() ![]() |
(с тяжким вздохом) Не запишешь. Не хватит символов для французской диакритики.
Хотя, в принципе, можно использовать даже шестибитную кодировку... дедам нашим хватало - и внукам нашим хватит. |
| Hahahoj |
Воскресенье, 25 октября 2009, 14:41
Отправлено
#12
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Нефиг было Толстому выпендриваться 8).
-- Еh bien, mon prince. Genes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous previens, que si vous ne me dites pas, que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocites de cet Antichrist (ma parole, j'y crois) -- je ne vous connais plus, vous n'etes plus mon ami, vous n'etes plus мой верный раб, comme vous dites. [1] Ну, здравствуйте, здравствуйте. Je vois que je vous fais peur, [2] садитесь и рассказывайте. Для меня читается так же как оригинал. Поскольку эту муть я даже не читаю, а иду сразу по сноске . Но согласен, бывают моменты, когда третий язык важен. Но не в игровых и системных проектах, имхо. И не в качестве дополнительного тормоза, к примеру, читалки. -------------------- |
| Chintoi |
Воскресенье, 25 октября 2009, 17:14
Отправлено
#13
|
|
Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 366 Регистрация: 28 мая. 2007 Пользователь №: 22 437 ![]() ![]() |
QUOTE (Hahahoj @ Воскресенье, 25 октября 2009, 15:41) Нефиг было Толстому выпендриваться 8). -- Еh bien, mon prince. Genes et Lucques ne sont plus que des apanages, des поместья, de la famille Buonaparte. Non, je vous previens, que si vous ne me dites pas, que nous avons la guerre, si vous vous permettez encore de pallier toutes les infamies, toutes les atrocites de cet Antichrist (ma parole, j'y crois) -- je ne vous connais plus, vous n'etes plus mon ami, vous n'etes plus мой верный раб, comme vous dites. [1] Ну, здравствуйте, здравствуйте. Je vois que je vous fais peur, [2] садитесь и рассказывайте. Для меня читается так же как оригинал. Поскольку эту муть я даже не читаю, а иду сразу по сноске . Но согласен, бывают моменты, когда третий язык важен. Но не в игровых и системных проектах, имхо. И не в качестве дополнительного тормоза, к примеру, читалки. Это все не мешает моему 30$ плееру отображать названия файлов и тэги в юникоде и не тормозить. А сонивскою 1000$ читалку, которую программировали рассуждая как ты, нужно прошивать самодельной прошивкой и терять на нее гарантию |
| radzh |
Воскресенье, 25 октября 2009, 17:40
Отправлено
#14
|
|
Фанат ![]() ![]() ![]() Группа: Пользователи Сообщений: 242 Регистрация: 07 авг. 2008 Пользователь №: 27 750 ![]() ![]() |
|
| EugeneP |
Воскресенье, 25 октября 2009, 21:24
Отправлено
#15
|
![]() Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 314 Регистрация: 15 мая. 2009 Из: Сибирь Пользователь №: 31 975 ![]() ![]() |
Внёс пару исправлений.
а) Теперь оно работает как задумывалось в начале. б) С флагом TT_ENC_ASCII можно использовать любую однобайтную кодировку, подготовив предварительно соответствующий TTF Подробнее см. головной топик. P.S. Объём кода, реализующий эти изменения, примерно раза в четыре меньше объёма флуда в этом топике. |
| quasist |
Воскресенье, 25 октября 2009, 22:34
Отправлено
#16
|
|
Sing along at the Opera ![]() Группа: Профи Сообщений: 3 391 Регистрация: 06 янв. 2006 Пользователь №: 14 791 ![]() ![]() |
QUOTE (EugeneP @ Воскресенье, 25 октября 2009, 22:24) Любой нафлудивший заставляет EugeneP добавлять в код по строчке... психологическая зависимость -------------------- 12 удачных сделок в барахолке gbx.ru
|
| Hahahoj |
Понедельник, 26 октября 2009, 00:50
Отправлено
#17
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
QUOTE (Chintoi @ Воскресенье, 25 октября 2009, 17:14) Это все не мешает моему 30$ плееру отображать названия файлов и тэги в юникоде и не тормозить. А сонивскою 1000$ читалку, которую программировали рассуждая как ты, нужно прошивать самодельной прошивкой и терять на нее гарантию 1) Если не знаем про что разговор - молчим и не лезем в обсуждение. Разговор про конкретные тормоза в конкретных читалках при использовании уникодных шрифтов на GP2X (да, возможно на Визе тормозов нет, но на Ф-ках при использовании не моноширинных не кирилических шрифтов они довольно ощутимые). В твоем же случае достаточно поменять фонт через инишку, чтобы всё отображалось корректно на специально подобранный, или в тексте, который итак внешний вшить тег смены шрифта, повесив его на какой-нибудь неиспользуемый символ. 2) Также не вижу необходимости переконверчивать свои кирилические текстовые библиотеки в уникод. Хоть и не долго, но напрягает. 3) Это почти Бейсик, который не так производителен, как Сишка. А если тормозит Сишка с использованием того же фритайпа, то что будет с Бейсиком? В общем, - отображать строчку текста - это пожалуйста, но дайте плиз возможность отображать без тормозов большой массив текста, который не будет занимать к тому же двойного размера в памяти. Евгений, спасибо. -------------------- |
| EugeneP |
Понедельник, 26 октября 2009, 06:37
Отправлено
#18
|
![]() Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 314 Регистрация: 15 мая. 2009 Из: Сибирь Пользователь №: 31 975 ![]() ![]() |
|
| Hahahoj |
Понедельник, 26 октября 2009, 06:47
Отправлено
#19
|
|
Зомби ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 10 730 Регистрация: 17 дек. 2004 Пользователь №: 12 002 ![]() ![]() |
Разгребу Боксы в ремонте и помогу чем могу.
fxdll.h - это с фокскитовского тулчейна? -------------------- |
| EugeneP |
Понедельник, 26 октября 2009, 12:53
Отправлено
#20
|
![]() Маньяк ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 314 Регистрация: 15 мая. 2009 Из: Сибирь Пользователь №: 31 975 ![]() ![]() |
QUOTE (Hahahoj @ Понедельник, 26 октября 2009, 09:47) Это в исходниках феникса хранится. Содержит макросы для создания расширений. глянь make-it.sh Для сборки расширений нужны исодники феникса. Сообщение отредактировал EugeneP - Понедельник, 26 октября 2009, 12:55 |
![]() ![]() |
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
| Упрощённая версия | Сейчас: Вс., 25 окт. 2026, 09:13 |




Суббота, 24 октября 2009, 20:06















