OpenVGは本来日本語などのマルチバイト文字に対応していません。
そこで既存のラッパーライブラリを使ってマルチバイト文字を描画してみました。
ラッパーライブラリ作成者の許可を得るまでは公開はしません(たぶんずっとしない)ので
以下に従って頑張ってください。
この記事は準備編です。
本編で実際にマルチバイト文字対応化していきます。
■元となるラッパーライブラリ
有志の方がRaspberry Pi用OpenVGラッパーライブラリを書いてくれているので、これを利用させて頂くことにします。https://github.com/ajstarks/openvg
詳しい使い方は以下のページを参考にしました。
Raspberry Pi でUSBカメラ & 2D描画 OpenVG を使ってみる
http://abc002.blogspot.jp/2013/01/raspberry-pi-usb-openvg.html
以下、このラッパーライブラリを保存したディレクトリを(openvg)とします。
ディレクトリ(openvg)/にはlibshapes.cが存在します。
■日本語フォントを入れる
今回は「モトヤLマルベリ等幅」を利用しました。Androidで採用されているフォントで、可愛さと可視性が両立された良フォントだと感じています。
使用するフォントをディレクトリ(openvg)/にコピーします。
今回はフォントのファイル名をMTLmr3m.ttfとします。
あ、多分TrueTypeフォントじゃないとダメです。
■hellovg.cを元に確認用のコードを作成
引数に指定した文字を画面に描画するように変更しました。https://gist.github.com/wararyo/b2ebc87cb321623c3c1d
ディレクトリ(openvg)/に保存すると便利です。
フォント名については適宜変更してください。
■Makefile
Makefileの最後に以下の記述を追加します。MTLmr3m.inc: font2openvg MTLmr3m.ttf ./font2openvg MTLmr3m.ttf MTLmr3m.inc MTLmr hellovg: hellovg.c MTLmr3m.inc gcc -o hellovg hellovg.c libshapes.o oglinit.o -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -lbcm_host -L/opt/vc/lib/ -lGLESv2 -ljpeg -lEGL
フォント名については適宜変更してください。
■とりあえずコンパイル
あとはコンパイルしたらコピーしたフォントでHelloWorldが見られるはずです。sudo apt-get install libfreetype6-dev sudo make ./hellovg "Hello OpenVG"
※私はlibfreetype6-devをうまくインストールできなかったので自前でコンパイルしました
これで準備が整いました。
こちらの記事で続きを行っていきます。
0 件のコメント:
コメントを投稿