2.49b向けのマルチバイトパッチ更新
- ファイル名の長さを80byte(utf-8全角で26文字)から240byte(同80文字)に延長した(ファイルセレクタと、Image Browser上部の選択中ファイル名表示)
- 一部の新しく作ったファイルがreadonlyになってしまい書き込み時にエラーになるのを修正した
- gettextを間違って入れていた箇所を修正した(Animations)
今までのパッチをまとめてひとつにしました。
http://gunload.web.fc2.com/blender/download.html
メイリオフォントを選択するとサムネイルがまったく表示されないまたは、数個しか表示されない件
これは、Blenderでのメイリオフォントのレンダリングが非常に遅いことに起因している。
python風擬似コードにすると
do_load=True startTime=time() # 開始時刻 for file in dir(current): FTGL_draw(file.name) # メイリオだと遅い if do_load: draw_thumbnail_icon(file) # サムネイルアイコン else: draw_icon(file) # サムネイル作成前のアイコン if time()-startTime>0.3: # 0.3秒以上たったら do_load=False # 遅すぎなのでサムネイル作成を止めて次回にまわす
という感じのコードがsource/blender/src/drawimasel.cのdraw_imasel_previews関数にある。
でメイリオによる日本語描画があると一回の描画のループが0.3秒を超えてしまうことによりサムネイルが一部または全部表示されなくなる。先頭ファイルにサムネイルがある場合は常に表示されたり、0.3秒越えの境界上のファイルが途中で表示されたりする。さらにフォントレンダリングがフル回転して負荷があがりっぱなしになるようだ。一回の描画が0.3秒以上だと3FPS以下ということでとても許容できたものではない。
あとは推測になるが、BlenderがFTGLのレンダリング結果をキャッシュしてないのではないかと(アルファベットしかキャッシュしていないとかありそうだ)。msgothicだとわりと早い理由は不明だが、メイリオがfreetypeでのレンダリングに時間がかかる要素を持っているのかもしれない。というわけで今回やっているblenderのutf-8化とは違うテーマになるのでこの件の修正は見送ります。
msgothicで勘弁してやってください。
ipaフォントでも遅くなった。