元記事:
UI drawing recode
UI描画の再コーディング
UIのフロントバッファへの描画インタフェイスツールtoolkitはすべてのその場の更新を(メニューやボタンを使用している間)フロントバッファへ描画していました。これはいくつかの改造コードも含め、クロスプラットフォームのサポートが上手くいかないため、一旦止めることにしました。
ボタンのリアルタイムの更新とメニューはバックバッファにのみ描画され、必要になればフロントバッファへコピーされるようになりました。現在フロントバッファへのアクセスにはglReadPixelsとglCopyPixelsのみ使用されています。これら二つのコールはOpenGL1.0から存在し、そして非常に多くのプラットフォームでサポートされていることが知られています。
再コーディングの他の恩恵は、フロントバッファへの更新の描画を一つのコールに集中できたことで、開発者によるプラットフォームに特化した最適な解決方法を実験することができることです。例えば、WindowsシステムのKTX OpenGL拡張もここで使用できるでしょう。これはDiscreetが3DSMaxのために拡張したもので、多くのゲームで使用されています。
現在は特に多くのトラブルをフロントバッファ描画に持つATIのカードについて、非常に心強い結果になっていますが、まだよく調べる必要があります。SGI/SUNのワークステーションではスムーズに動いているはずです(現在の方法はBlender1.0にも使用していました)が、フィードバックが欲しいです。いくつかの(古い)Linuxシステムはパフォーマンスが低下しているかもしれません。
「バックバッファからフロントバッファへコピー」を、"DisplayButtons"([F10])の"Rt"ボタンの値を"2"にすることによって他の方法に変更することができます。その後は、glCopyPixelsは使用されず、glReadPixelsとglDrawPixelsの組み合わせになります。
半透明メニュー
また、メニュー描画システムクリーニングの楽しい恩恵の一つとして、より進化したボタンのメニューの描画があります。ThemeエディタでMenu BackGroundとMenu Itemのアルファ値が定義できるようになり、UI内で半透明で表示できます。
半透明のUIの.B.blendを
こちらでダウンロードできます。ファイルを読み込みもし気に入れば、[Ctrl]+[U]でスタートアップファイルに上書き(訳注:しちゃうと自分で設定したPATHとかが一気にパーになってしまうので、それが嫌な人用にThemeのpyファイルの
zip(2,295バイト)を用意しました。解凍後、Scriptsフォルダなどに入れてScriptsWindowからScripts→Misc→alphaRoundedで実行後、[Ctrl]+[U]して下さい。ただし自己責任で)。
その他UI関連
- AAフォントがATiシステム上でゆがんでいました。現在AAフォントは正確なピクセルの位置に描画されています。AAフォント描画ライブラリも速くなりました。
- OSXのみ:AAフォントが.dfontと'Suitcase'のフォントもサポートされるように。
- Rounded Themeにアンチエリアスされたアウトラインをボタンを使用するように。
- プルダウンとポップアップメニューにかっこいいソフトシャドウがつきました。
- 新しいボタンタイプ'PULLDOWN'。プルダウンメニューと呼ばれるものです。現在すべてのデフォルトになっており、Themeに追加されるべきでしょう。
- 1つのウィンドウのスクリーンショット(Screendumps)を、Headerも含めた完全なウィンドウで行うように。Screendumpsは[Ctrl]+[F3](Blenderのスクリーン全体)もしくは[Shift]+[Ctrl]+[F3](一つのウィンドウのみ)で行います。OSXユーザは[Alt]も押す必要があります。
- Lampが作成されたとき、Lampタイプを選択するためのメニューが追加されました。
- OopsWindowのSchematic表示にそれぞれのノードをつなぐ曲線が追加されました。