Ubuntuの改良に入ったのだが、今日の時点で、既に、当初予定していた改良は終わっていて、かなり良い感じになっている。明後日くらいにはリリースしてしまう様な気がする。Ubuntuは、既に書いてきた様に、Ubuntu18.04LTS上でクライアントを動作させると、マウスカーソルを動かしても引っかかる感じがして、少なくとも気分的には、宜しく無い状況だ。今回の改良の最大の目玉は、上記の様な引っかかりを無くす事だったのだが、この問題については、昨日の時点で、既に、あっさりと解決出来ていた。問題の原因は、サーバーから送られてきた画像はOpenGLで描画しているのだが、Ubuntuの場合、このOpenGL描画はメインスレッドで行わないと正しく動作しないので、画面描画はメインスレッドに要求を発行して行わせているのだが、この要求が詰まってしまっている事だ。マウスカーソルの移動イベントというのも、メインスレッドで発生するので、メインスレッドが処理要求で詰まってしまっていると、マウスカーソルの移動イベントが発生しなくなってしまう訳だ。言う事なので、問題を解決する為には、マウスカーソルの移動イベントなんかの他のメインスレッド処理が割り込める様に、画面描画処理については、要求を行い、その処理が終了するのを待ってから、次の画面描画用の処理に進む格好にした。現行版では、画面描画要求がメインスレッドのタスクキューに連続して積まれる可能性があったのだが、改良版では、最大でも1個しかキューには積まれなくなったので、積まれていない期間に他のメインスレッド処理が遅滞なく行われる様になった訳だ。言う事で、上記の対策によって、マウスカーソルが引っかかる感じになる現象は無くなったのだが、現行版には、クライアントの画面描画が遅い、という問題もあった訳だ。この問題の原因は、昨日の時点では、OpenGLの描画が遅い、と、書いたのだが、更に調べてみると、実際には、遅いのはマウスカーソルの描画処理だという事が判った。具体的には、Ubuntu版ではサーバーのマウスカーソルはOpenGL画面に描画しているので、本当のマウスカーソルは透明カーソルに変更しているのだが、OpenGL描画のタイミングで、毎回、デフォルトカーソルからこのカーソルに変更するためのAPI呼び出しをしていたのだが、このAPI処理が遅かった訳だ。上記の呼び出しをマウスカーソルが別物に変化した場合にのみ行う様に変更した結果、通常は、ずっと透明カーソルなので、API呼び出しは皆無になり、画面描画も高速化された。言う事で、Ubuntu版クライアントも、macOS/Windows版と同様に、60FPS描画が可能になり、マウスカーソルも普通に操作出来る様になった。サーバー側についても、macOS版と同様の問題があったので、修正した。具体的には、画面キャプチャータイミングが不正確だったので、例えば、60FPSの転送指示があっても、16mSec毎に画面キャプチャーできなかったので、50FPSくらいの転送レートになっていたのだが、より細かくキャプチャータイミングを調整可能にしたので、60FPSでの転送も可能になった。その他の変更としては、macOS版で見つかっていた、デスクトップ圧縮で動画を見たりしていると稀にクラッシュする不具合の修正、録画時にモニターモードにしてもクライアント側のマウスカーソルが録画されてしまう不具合の修正も行った。その他には、今のところ問題は無い筈なので、明日は配布パッケージを作成して使い込みを行い、明後日には、リリースする運びとなりそうだ。Ubuntuの改良版のリリースが終わったら、Ubuntu環境用の録画ツールを作る事になる。マウスクリックエフェクターとキーボードビューアについても、Ubuntu環境用に作成しようかと思っている。今日の時点では、それらをmacOS環境のTiExtenderの様な形にするのか、Windows環境の様に別ソフトとして提供するのかは決めていない。何れにしても、本質部分のコードについては、Windows/macOS用からコピーして来れる筈なので、来週いっぱいあれば、これらについても完成する筈ではある。Adsense)サービスを利用しています。使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。パートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。