Irrlicht.dllに手を加えず、各国語対応するテスト第一弾。1.4βで試しています。
IGUIFileOpenDialogの派生クラスを作る事により日本語表示が可能。コードはIrrlichtMLからコピペしただけです。ただし、これだけでは表示するGUIオブジェクトの管理が面倒になるかと思います。なので、GUIElementFactoryに登録してしまったほうがいいでしょう。
ちなみに、このテストはirrTTを使わなくても、日本語ビットマップフォントを作成して読み込ませれば成功するはず。
参考文献:Custom GUI Development(Irrlicht Forum)
Irrlicht.dllのソースを書き換えずとも、IGUIElementを継承して新しいGUIを作成できる。既に登録されているGUIを複合的に組み合わせる事も可能。詳しくは各GUIエレメントのソースか、GUIエディタのプロジェクトを参照のこと。もし、GUIエディタで自分が作成した新GUIを編集したいのなら以下のようにするといい。
- IGUIElementのserialize/deserializeAttributes/getTypeをオーバーライドすること。そうすれば、編集、読み込み、書き込みが可能になる。
- 子エレメントはsetSubElement(true)を呼び出し、親の管理化であることを宣言する。
- 名称からGUIオブジェクトを生成できるように、カスタムエレメントを新規IGUIElementFactoryに登録する。