Re: [分享] 怀旧一下 jmcce 1.5

楼主: descent (“雄辩是银,沉默是金”)   2015-08-11 20:35:25
https://youtu.be/X0CvqYSBHak
上述影片会 cat 出 b 档案的内容, 有简体中文、繁体中文、日文, 呼 ... 总算出来了
, 心中的兴奋到现在还不能忘。
之前支援 utf8 是转成 big5 再由原本的 code 秀出, 实在太蠢了, 不过要彻底改造
jmcce 完全支援 utf8 可不是只有编码的困难, 还得把底层的字型系统换掉, 因为其原本
的字型是用 big5 去查询该字型的 bitmap, 所以无法支援 utf8, 之前我只能用 utf8 转
big5 来支援 utf8。
那该怎么办呢? 我使用了 freetype2 并搭配 unifont.pcf.gz 这个字型,
unifont.pcf.gz 刚好是 8x16, 16x16 的字型, 刚好可以套在 jmcce 640X480 的环境上
, 我可以先避免计算字号、位置等问题。而且他是 unicode 字型, 用这一个就可以
秀出简体中文、繁体中文、日文, 不需要去切换不同字型, 程式写起来比较简单。
再来是 unicode 编码问题, 使用 freetype2 需要能将 utf8 转 ucs-4, 我为这问题苦思
许久, 还用上 qt qstring (为了使用 qstring 要 link qt, 怎么都觉得不划算), 好在
c++11 的即时到来解了我这问题。c++11 提供了 utf8 转 ucs-4 的程式库, 不过 gcc 得
用 g++-5 才支援, clang 则需要在安装 libc++, 而又好在 g++-5 的到来, 我省了些麻
烦。
改写 hztty_write() [console.c], 换掉其中的 draw_hanzi_char(),
draw_ascii_char() 搭配 freetype2, 总算有了目前的成果。
unifont.pcf.gz 是 bitmap 字型, 所以没有 anti-alias, 字型没那么美观, 不过这是巨
大的一小步, 能完成他, 我觉得很有成就感。
不过闲暇时间不多, 要能完成到可以使用, 可能要花上一段很久的时间, 现在问题还蛮多
了, 而且 linux framebuffer 我实在不熟, 老是画错 pixel 的位置, 虽然有
virtulbox 可以方便 debug, 但还是得花上不少时间。
其实 fbterm 已经做得很好了, 也有输入法可用, 在稳定度实用性都胜过 jmcce 不少,
字型支援也比较好, 显示速度也赢 jmcce 不少 (以 linux framebuffer 显示来比较),
我在想我有必要把时间花在 jmcce 上吗? 也罢! 就让 jmcce 先停留在 1.6 α 好了。
fbterm
apt-get install arphic* fbterm fbterm-ucimf
arphic* 会把 fbterm 需要的中文字型装起来。
作者: wgst88w (清楚明“熙”)   2015-08-13 09:44:00
夭寿~fbterm相依的packages多达50几个,纯Terminal还是jmcce比较单纯。

Links booklink

Contact Us: admin [ a t ] ucptt.com