« タッチパネル付き液晶の罠 | メイン | プリレンダーフォント »

2013年06月13日

吉里吉里Z 開発:: プリレンダーフォント新フォーマット案

    

現在のプリレンダーフォントファイルはそのままサポートしつつ、プリレンダーフォントファイルを作るツールを作りやすくするために 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
Total : Today : Yesterday : なかのひと