タスク:スクリーンショット周りの検証
特定の状況下でスクリーンショットを撮れなくなる(撮影自体が出来ない)環境がある模様。
自分の環境では再現しないが、2xで連打していると処理が重く、応答がなくなることはあるので軽量化を検討する。
Reboot側では再現しない、エラーログはでないようなので考えられるのはPyLite側のコードで入力を無視するような文を入れてしまっているか、パフォーマンスが非常に悪くなっていて入力が無視されているか、WXPythonかPygameのバージョンでパフォーマンスが悪化している可能性(WXの可能性は高そう)。
Comments (6)
-
reporter -
reporter 上記はダイアログ中のスクショなので今回の件と関係なかった。タイトルを入れる計算は結構行数あるが、スクショ自体はsurfaceをそのまま書き出してるだけなのでタイミングによって撮れなくなるという可能性は低い。うーんあとはPygameアップデートを試すぐらいか。
-
reporter 多分解決した。Rebootとイベントハンドラを比較したらRebootでは2か3あたりで、ファンクション系のキーにおいては、入力を受け付けるかという判定caninputからcaninput_sysというメソッドに差し替わっていた。こっちではそのままだったのでシステム割り込みができないタイミングが多くなっていたっぽい。つまり、処理が遅いか早すぎるかしている環境では(戦闘中にはイベントが常に走っているため)それらのキーの効きが悪くなっていたっぽい。
自分は画面が動いてるときはあまり撮らないから体感出来なかったけど、確かに戦闘中にカシャカシャ撮りまくるバトル勢にとってはこりゃ致命的かもしれないな。気付けてよかった。
-
reporter 再現できないので完全に解決したかは分からないけど処置は施したので。
これ単体では4.4をアプデするほどではないと思うので、一応5.0αから導入予定。
-
reporter なんで当時移植しなかったかというと、カードが出そろってない状況とか、CWでは出来ないタイミングでF9が出来てしまうからだったか。
F9に関しては単押しではメニューカードアニメ中はできないようにしてRebootと同等の強制F9はShift同時押ししたときに実行するようにした。
フレームスキップすると画面に残像が残るエンバグをしてたのでついでに修正。
-
reporter - changed status to resolved
問題なく動いたようなので解決。 分岐の意味はちゃんと確認しないとダメだな。
- Log in to comment
スクショの実行処理でサイズと毎回WXバージョンを判定して画像サイズ変更アルゴリズムを決めている部分があったので取り除いてみる。
if 20 <= cw.s(pixelsize) or wx.VERSION[0] < 3:
Rebootでは既に取り除かれて
wx.IMAGE_QUALITY_HIGH
に統一されている模様。最高品質モードっぽいがwx.IMAGE_QUALITY_NORMAL
やwx.IMAGE_QUALITY_BILINEARだと問題があるのかな?