Мне нравится язык 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.
Ограничение:
Феникс корёжит строки зашитые в исходник при компиляции, поэтому строки нужно зачитывать из внешних файлов (см. прмер.)
Просьба к братьям по разуму:
Сделайте мэйк-файл или скрипт для винды. Ну и предложения и пожелания, если это кому-то кроме меня надо
Виндовая кодировка cp1251, имхо, лучше. Поскольку намного быстрее обрабатывается, имеет фиксированный размер символа в один байт, и изначально содержит все нужные русскому человеку буковки и символы. Для испанцев же и прочих французов достаточно просто подгрузить их родной фонт.Единственная трабла - к символам диапазона 128-255 некоторые бейсикообразные языки привязывают служебные токены, а не символы.
Есть ещё китайцы Я просто стторонник универсальных решений. Возможность иснользовать нативную кодировку шрифта сделаю когда высплюсь.
Китайцы на Визе меня не интересуют. Они неплохо заботятся о себе сами. И думаю им будет много понятнее мой английский, чем мой китайский.
Брр, XXI век на дворе, куда щас без уникода? Экономия на спичках до добра не доводит.
И как мы без него живем и жили, просто не понятно...
Логично. Зачем мы вообще с деревьев слезли?..
Если следовать твоей логике, то 90% населения еще с них не слезло.
Я не готов оперировать процентами. Зато я знаю, что "Войну и мир" в однобайтной кодировке не запишешь.
Как раз её в однобайтной кодировке и запишешь и прочитаешь беспроблемнее всего. И много шустрее потому что вместо плавающего размера символа (один/два байта) или фиксированного на два - будет фиксированный однобайтный и соответственно и памяти и ресурсов процессора будет жраться на обработку много меньше.
(с тяжким вздохом) Не запишешь. Не хватит символов для французской диакритики.
Хотя, в принципе, можно использовать даже шестибитную кодировку... дедам нашим хватало - и внукам нашим хватит.
Нефиг было Толстому выпендриваться 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]
садитесь и рассказывайте.
Для меня читается так же как оригинал. Поскольку эту муть я даже не читаю, а иду сразу по сноске .
Но согласен, бывают моменты, когда третий язык важен. Но не в игровых и системных проектах, имхо. И не в качестве дополнительного тормоза, к примеру, читалки.
Машины для людей, не наоборот.
P.S.: http://ithkuil.0pk.ru/viewtopic.php?id=2
Внёс пару исправлений.
а) Теперь оно работает как задумывалось в начале.
б) С флагом TT_ENC_ASCII можно использовать любую однобайтную кодировку, подготовив предварительно соответствующий TTF
Подробнее см. головной топик.
P.S.
Объём кода, реализующий эти изменения, примерно раза в четыре меньше объёма флуда в этом топике.
Разгребу Боксы в ремонте и помогу чем могу.
fxdll.h - это с фокскитовского тулчейна?
Ссылку кинь на использованную версию сорцев. Их несколько.
последний: fenix-0.92a
http://sourceforge.net/projects/fenix/files/Fenix/0.92a/fenix092a-src-release.tgz/download
Вообще любой начиная с 0.80 должен подойти.
Ну вот, отловил баги, добавил фичи для удобства - практически готово
Осталось доку написать, нормальнй Makefile сделать и можно выкладывать на архив или куда ещё. И сборку для винды конечно.
Из фич которые бы мне самому хотелось, но не сделал ибо долго:
- поддержка LTR и BiDi (это SDL не умеет)
- сглаживание кромки при рендере aka AA
С годами сделаю обязательно