AniLaPaint 1.7
/
はじめに
/
バージョン履歴
/
ディスクトップ版
/
ver1.6
[2020/01/17] ver1.6.1.0
今回は MFC を最新の Visual C++ 2019 版にアップデートしたことが一つ目の更新目標でした。
二つ目の更新目標は、アプリの体感速度を落とすことなくインストーラーの容量を減らすことでした。
詳しくは、以下の「変更した機能」の部分に記述してあります。(下記の★★★)
Windows 8.1, 10 (1903,1909) で動作確認しています。
Windows7 は OS の一般サポートが終了したので、今後本ソフトの Windows7 上での動作確認は行いません。
修正したバグ
ビルドで実線レイヤーを無効にすると半透明グレーのレイヤーが追加されてしまうバグ
タイムシートのビューで拡大していても、別の絵を表示すると全体表示に戻ってしまうバグ
タイムシートのエクスポートで出力形式を remaping (*.xps) にして [ 保存(S) ] ボタンを押すと、次のエラーが表示されて保存できないバグ
タイムシートのエクスポート中に以下のエラーを補足しました。
例外が発生しました
原因 : パラメーターが間違っています。
タイムシートのビュー内のムービー再生ボタンでのエンコードをした時に、背景の市松模様または単色部分が、現在の背景色が白(255,255,255)である場合に限り、再生されるムービーの背景が黒になってしまうことがあるバグ
ツールの消しゴムアイコンの色が背景色を反映せず赤のままであるバグ
ビューの背景色を白にすると、カット・パネルのサムネイルの背景の市松模様が消えるバグ
暗い背景色の場合市松模様が見えなくなる不具合。これは、背景色のRGB値の一番明るい色が127より暗い場合には市松模様の片方の色を色上げすることで解決した。
カラーピッカーパネルの色の履歴ボタンを押したときに別の色がピッカーに選択されてしまうバグ
カラーピッカーパネルの色の履歴に純色が設定されてしまう不都合
純色は、透明を表す白や色トレス線を表す色に使用されるので、履歴から除外することにした。
他多数の細かいバグフィックスを行いました
変更した機能
内部で使用している MS 社の MFC ライブラリーをSpectre に対する緩和策の施された「 Visual C++ 2019 14.24.28127 マージモジュール 」にアップデートしました。
Free 版の制限を動画番号 30 番までに拡張しました。
Free 版のエクスポートの出力形式を製品版と同等にしました。
VM Ware 仮想環境ソフトが起動している環境のホスト側 OS で AniLaPaint のインポートやビルド処理を行うと、VM と AniLaPaint 両方がハングアップに近い状態に陥ってしまう問題。
これは AniLaPaint 側のバグではありません。 VM 側の問題です。おそらく、 VM で若い番号の CPU 倫理スレッドを固定的に扱っているためでしょう。
そう仮説を立てて、 AniLaPaint のインポートやビルド処理で、若い番号のCPU 論理プロセッサを使用をなるべく避けるような仕組みに変えました。
例えば、 8 倫理スレッドまで使用できる CPU の場合、 7, 5, 3, 1, 6, 4, 2, 0の番号の順序で CPU の論理プロセッサを使用します。
これによって、 VM との CPU の取り合いは起こりにくくなり、ハングアップする状態が避けられました。とはいえ、 VM と同時に使用する場合には AniLaPaint でインポートやビルド処理で使用するスレッド数を少なめにしておいた方が無難です。
★★★ AniLaPaint 自体のモジュール構成を変更しました ★★★
ver 1.6.0.0 は、全ての関数を SSE2 / SSE4.1 / AVX / AVX2の4パターンでコンパイルしていたため巨大な DLL が生成され、インストーラーも巨大になっていました。今回、速度を必要としない部分を SSE2 のみを使用した common.dll として別に切り分けました。
もう一つは、全関数について、コンパイル時の強制インライン指定の部分を再チェックして、画像処理のループ内での関数呼び出しについてのみ強制インライン関数に指定することにしました。
以上の方法でモジュール構成を再構成したことで、体感速度を落とすことなく容量を減らすことができました。
この変更にかなりの時間を要しましたが、2019年2月頃には最終チェックを残しほぼ完成していました。しかし、家庭の事情で開発作業自体を中断しなくてはならなくなったためにアップデートが遅れました。
Copyright© 1997-2023 Kazuki Onogi (AniLaSoft),All rights reserved.