« タッチパネル付き液晶の罠 | メイン | プリレンダーフォント »
2013年06月13日
吉里吉里Z 開発:: プリレンダーフォント新フォーマット案
Tweet @jin1016をフォロー現在のプリレンダーフォントファイルはそのままサポートしつつ、プリレンダーフォントファイルを作るツールを作りやすくするために Dictionay/Array Binary を検討中。
従来のテキスト形式だと重くて使えないが、バイナリ形式であれば、実用的な速度で使えると思われるので、Dictionay/Array Binary ファイルに保存/読込みを行い、描画等可能にする。
テキスト形式で概念的なファイルフォーマットを記述すると以下のような形。
%[
"FileType" => "PrerenderdFont",
"Version" => 1,
"NumberOfGlyph" => 10,
"glyph" => %[
"a" => [
10, // width
10, // height
10, // originx
10, // originy
10, // incx
10, // incy
10, // inc
<% 00 00 ... %> // bitmap
],
"b" => [
10, // width
10, // height
10, // originx
10, // originy
10, // incx
10, // incy
10, // inc
<% 00 00 ... %> // bitmap
],
...
],
]
この形であれば TJS2 で扱うことも出来る。
このようなファイルを TJS2 で作るために、以下のようなメソッドを追加。
Font.getGlyph( code:int ) : Array の様なメソッドを追加。
配列は、以下のような形で返ってくる。
[
10, // width
10, // height
10, // originx
10, // originy
10, // incx
10, // incy
10, // inc
<% 00 00 ... %> // bitmap
]
後は、Octet をビットマップとみなして、Layer に描画出来れば、TJS2 で文字描画をかなり細かく制御できることになる。
単純にツールを kwidgets/TJS2 で作りやすくすることを目的に仕様を考えていたが、プリレンダーフォントは外字的に手軽に使いたいと言う要望を聞いて、Octet を直接 Layer に描画できれば、その要望は叶えられるなとも考えた。
Octet の描画は置いておいて、それ以外の部分については代替ツールを作る段階で実装を行ってみる予定。
速度的な問題がなさそうであれば、追加機能としてそのまま残す予定。
投稿者 Takenori : 2013年06月13日 21:03
comments powered by Disqus