Forums Logo

Здравствуйте Гость ( Вход | Регистрация )

Каскадный · Стандартный · [ Линейный ]

> Уникод + fenix, МУХАХА, я его того B]

EugeneP
post Суббота, 24 октября 2009, 20:06
Отправлено #1


Маньяк
****

Группа: Пользователи
Сообщений: 314
Регистрация: 15 мая. 2009
Из: Сибирь
Пользователь №: 31 975





Мне нравится язык FENIX, и не мне одному, но у этого языка есть серёзный минус - он не умеет работать с не латинскими шрифтами.
Боль от осознания этого факта толкнула меня на написание дополнения к фениксу, которое бы позволило честно рендерить трутайп на фениксовскую поверхность.

excl.gif доступна третья версия, переработанная и дополненная
excl.gif доступна вторая версия, переработанная и дополненная

Оно работает, как ни странно.
Присоединённое изображение

Расширение 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.

Ограничение:
Феникс корёжит строки зашитые в исходник при компиляции, поэтому строки нужно зачитывать из внешних файлов (см. прмер.)

Просьба к братьям по разуму:
Сделайте мэйк-файл или скрипт для винды. Ну и предложения и пожелания, если это кому-то кроме меня надо smile.gif

Сообщение отредактировал EugeneP - Понедельник, 26 октября 2009, 20:26
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Reply to this topicStart new topicStart Poll
Ответов(1 - 19)
Hahahoj
post Суббота, 24 октября 2009, 20:12
Отправлено #2


Зомби
*******

Группа: Пользователи
Сообщений: 10 730
Регистрация: 17 дек. 2004
Пользователь №: 12 002





Виндовая кодировка cp1251, имхо, лучше. Поскольку намного быстрее обрабатывается, имеет фиксированный размер символа в один байт, и изначально содержит все нужные русскому человеку буковки и символы. Для испанцев же и прочих французов достаточно просто подгрузить их родной фонт.Единственная трабла - к символам диапазона 128-255 некоторые бейсикообразные языки привязывают служебные токены, а не символы.


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
EugeneP
post Суббота, 24 октября 2009, 20:15
Отправлено #3


Маньяк
****

Группа: Пользователи
Сообщений: 314
Регистрация: 15 мая. 2009
Из: Сибирь
Пользователь №: 31 975





Есть ещё китайцы smile.gif Я просто стторонник универсальных решений. Возможность иснользовать нативную кодировку шрифта сделаю когда высплюсь.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hahahoj
post Суббота, 24 октября 2009, 20:16
Отправлено #4


Зомби
*******

Группа: Пользователи
Сообщений: 10 730
Регистрация: 17 дек. 2004
Пользователь №: 12 002





Китайцы на Визе меня не интересуют. Они неплохо заботятся о себе сами. И думаю им будет много понятнее мой английский, чем мой китайский.


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
radzh
post Воскресенье, 25 октября 2009, 10:10
Отправлено #5


Фанат
***

Группа: Пользователи
Сообщений: 238
Регистрация: 07 авг. 2008
Пользователь №: 27 750





Брр, XXI век на дворе, куда щас без уникода? Экономия на спичках до добра не доводит.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hahahoj
post Воскресенье, 25 октября 2009, 10:24
Отправлено #6


Зомби
*******

Группа: Пользователи
Сообщений: 10 730
Регистрация: 17 дек. 2004
Пользователь №: 12 002





И как мы без него живем и жили, просто не понятно...


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
radzh
post Воскресенье, 25 октября 2009, 10:31
Отправлено #7


Фанат
***

Группа: Пользователи
Сообщений: 238
Регистрация: 07 авг. 2008
Пользователь №: 27 750





Логично. Зачем мы вообще с деревьев слезли?..
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hahahoj
post Воскресенье, 25 октября 2009, 11:38
Отправлено #8


Зомби
*******

Группа: Пользователи
Сообщений: 10 730
Регистрация: 17 дек. 2004
Пользователь №: 12 002





Если следовать твоей логике, то 90% населения еще с них не слезло.


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
radzh
post Воскресенье, 25 октября 2009, 11:57
Отправлено #9


Фанат
***

Группа: Пользователи
Сообщений: 238
Регистрация: 07 авг. 2008
Пользователь №: 27 750





Я не готов оперировать процентами. Зато я знаю, что "Войну и мир" в однобайтной кодировке не запишешь.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hahahoj
post Воскресенье, 25 октября 2009, 12:06
Отправлено #10


Зомби
*******

Группа: Пользователи
Сообщений: 10 730
Регистрация: 17 дек. 2004
Пользователь №: 12 002





Как раз её в однобайтной кодировке и запишешь и прочитаешь беспроблемнее всего. И много шустрее потому что вместо плавающего размера символа (один/два байта) или фиксированного на два - будет фиксированный однобайтный и соответственно и памяти и ресурсов процессора будет жраться на обработку много меньше.


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
radzh
post Воскресенье, 25 октября 2009, 12:48
Отправлено #11


Фанат
***

Группа: Пользователи
Сообщений: 238
Регистрация: 07 авг. 2008
Пользователь №: 27 750





(с тяжким вздохом) Не запишешь. Не хватит символов для французской диакритики.
Хотя, в принципе, можно использовать даже шестибитную кодировку... дедам нашим хватало - и внукам нашим хватит.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hahahoj
post Воскресенье, 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]
садитесь и рассказывайте.

Для меня читается так же как оригинал. Поскольку эту муть я даже не читаю, а иду сразу по сноске .
Но согласен, бывают моменты, когда третий язык важен. Но не в игровых и системных проектах, имхо. И не в качестве дополнительного тормоза, к примеру, читалки.


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Chintoi
post Воскресенье, 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$ читалку, которую программировали рассуждая как ты, нужно прошивать самодельной прошивкой и терять на нее гарантию
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
radzh
post Воскресенье, 25 октября 2009, 17:40
Отправлено #14


Фанат
***

Группа: Пользователи
Сообщений: 238
Регистрация: 07 авг. 2008
Пользователь №: 27 750





smile.gif
Машины для людей, не наоборот.

P.S.: http://ithkuil.0pk.ru/viewtopic.php?id=2 smile.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
EugeneP
post Воскресенье, 25 октября 2009, 21:24
Отправлено #15


Маньяк
****

Группа: Пользователи
Сообщений: 314
Регистрация: 15 мая. 2009
Из: Сибирь
Пользователь №: 31 975





Внёс пару исправлений.
а) Теперь оно работает как задумывалось в начале.
б) С флагом TT_ENC_ASCII можно использовать любую однобайтную кодировку, подготовив предварительно соответствующий TTF
Подробнее см. головной топик.

P.S.
Объём кода, реализующий эти изменения, примерно раза в четыре меньше объёма флуда в этом топике.
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
quasist
post Воскресенье, 25 октября 2009, 22:34
Отправлено #16


Sing along at the Opera
Group Icon

Группа: Профи
Сообщений: 3 391
Регистрация: 06 янв. 2006
Пользователь №: 14 791





QUOTE (EugeneP @ Воскресенье, 25 октября 2009, 22:24)
Объём кода, реализующий эти изменения, примерно раза в четыре меньше объёма флуда в этом топике.
*

Любой нафлудивший заставляет EugeneP добавлять в код по строчке... психологическая зависимость


--------------------
12 удачных сделок в барахолке gbx.ru
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hahahoj
post Понедельник, 26 октября 2009, 00:50
Отправлено #17


Зомби
*******

Группа: Пользователи
Сообщений: 10 730
Регистрация: 17 дек. 2004
Пользователь №: 12 002





QUOTE (Chintoi @ Воскресенье, 25 октября 2009, 17:14)
Это все не мешает моему 30$ плееру отображать названия файлов и тэги в юникоде и не тормозить. А сонивскою 1000$ читалку, которую программировали рассуждая как ты, нужно прошивать самодельной прошивкой и терять на нее гарантию

1) Если не знаем про что разговор - молчим и не лезем в обсуждение. Разговор про конкретные тормоза в конкретных читалках при использовании уникодных шрифтов на GP2X (да, возможно на Визе тормозов нет, но на Ф-ках при использовании не моноширинных не кирилических шрифтов они довольно ощутимые). В твоем же случае достаточно поменять фонт через инишку, чтобы всё отображалось корректно на специально подобранный, или в тексте, который итак внешний вшить тег смены шрифта, повесив его на какой-нибудь неиспользуемый символ.
2) Также не вижу необходимости переконверчивать свои кирилические текстовые библиотеки в уникод. Хоть и не долго, но напрягает.
3) Это почти Бейсик, который не так производителен, как Сишка. А если тормозит Сишка с использованием того же фритайпа, то что будет с Бейсиком?
В общем, - отображать строчку текста - это пожалуйста, но дайте плиз возможность отображать без тормозов большой массив текста, который не будет занимать к тому же двойного размера в памяти.

Евгений, спасибо.


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
EugeneP
post Понедельник, 26 октября 2009, 06:37
Отправлено #18


Маньяк
****

Группа: Пользователи
Сообщений: 314
Регистрация: 15 мая. 2009
Из: Сибирь
Пользователь №: 31 975





QUOTE (quasist @ Понедельник, 26 октября 2009, 01:34)
Любой нафлудивший заставляет EugeneP добавлять в код по строчке...  психологическая зависимость
*

та, та. заставляит.
тока я всё равно сборку под винду не сделаю. не умею, а учиться влом. tongue.gif
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
Hahahoj
post Понедельник, 26 октября 2009, 06:47
Отправлено #19


Зомби
*******

Группа: Пользователи
Сообщений: 10 730
Регистрация: 17 дек. 2004
Пользователь №: 12 002





Разгребу Боксы в ремонте и помогу чем могу.

fxdll.h - это с фокскитовского тулчейна?


--------------------
«Не стоит сердиться на плохих людей. Знаешь, для чего их создал Бог? Чтоб мы смотрели на них и старались быть совсем другими».
» Моя прелесть «

user posted image
User is offlineProfile CardPM
Go to the top of the page
+Quote Post
EugeneP
post Понедельник, 26 октября 2009, 12:53
Отправлено #20


Маньяк
****

Группа: Пользователи
Сообщений: 314
Регистрация: 15 мая. 2009
Из: Сибирь
Пользователь №: 31 975





QUOTE (Hahahoj @ Понедельник, 26 октября 2009, 09:47)
fxdll.h - это с фокскитовского тулчейна?
*

Это в исходниках феникса хранится. Содержит макросы для создания расширений. глянь make-it.sh

Для сборки расширений нужны исодники феникса.

Сообщение отредактировал EugeneP - Понедельник, 26 октября 2009, 12:55
User is offlineProfile CardPM
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
 

Упрощённая версия Сейчас: Ср., 25 июня 2025, 22:31
Skin Designed (c) by Rooq.net, All Rights Reserved.