スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 先に不具合修正版を出す | トップページ | 拡大鏡機能の実装は完了 »

for Ubuntu 1.4.1の開発を開始

昨日書いていた様に、今日は、不具合修正版である所のMirror-DTC for Ubuntu Ver 1.4.0.3をリリースした。このリリースで、既存不具合の多くは修正できた筈なので、今日から今回の開発の対象となるVer1.4.1の開発を始めた。

Ver1.4.1では、クライアントに静止画出力機能と拡大鏡機能を追加するのだが、静止画出力機能については、今日の時点で、既に実装が終わっている。

拡大鏡機能についても、半分くらいは実装できたのだが、この機能についても、Windows版のコードを参考にすれば、実装は容易なので、今日は完成させる事はせず、代わりに、トランスポーターの実現性について調査していた。

トランスポーターを実現するために重要になる要素としては、ウインドウ映像のキャプチャーとウインドウを隠す方法がある。

で、ウインドウ映像のキャプチャーについては、既にリリース済みのTiDesktopRecorderのウインドウ録画機能で実現済みなので、Ubuntu環境用のトランスポーターを実現するにあたって問題となりそうなのは、ウインドウを隠す方法、という事になる訳だ。

なので、今日は、どうやって隠そうかなあ、というのを鑑みていたのだが、Ubuntuでも、Windows環境と同様に、WindowIDを指定して、MoveWindow関数みたいなモノを利用すれば、他ソフトのウインドウも移動させる事が出来る。

つまり、転送対象のウインドウを、Windows版と同様に、デスクトップ外に移動させてしまえば、ウインドウ映像をキャプチャーしつつ、そのウインドウをデスクトップからは消せるので、トランスポーターの目的は実現できるのだが、Ubuntuのウインドウマネージャーは要らぬおせっかいをしてくれる訳だ。

具体的には、デスクトップ外に移動させようとしても、デスクトップ内に留まる範囲にしか移動させない様にしてくれる訳だ。

で、Windows版では、転送対象ウインドウをデスクトップ外に移動させるのではなく、そのウインドウの透明度を変更して透明にしてしまう事で、隠す方法を採る場合もあって、作者製のUbuntu版ソフトでは、同様に、半透明ウインドウを使ったりもしているのだが、Ubuntuでは、他ソフトのウインドウの透明度を変更するのは、流石に、無理がありそうな訳だ。

しかし、昨日書いたように、Ubuntuでは、仮想デスクトップ機能がある事を前提に出来るので、転送対象ウインドウは隠すのではなく、作業中ではない別のデスクトップに移動してしまう、という事にしても良い筈な訳だ。

何故なら、トランスポーターの目的は、同時に表示したいウインドウをクライアントPC上で表示しつつ、作業中のデスクトップでは、別のウインドウを操作する事で、作業効率を向上させる事なので、本質的には、転送対象ウインドウを隠す必要は無い訳だ。

もっとも、転送対象ウインドウが同じデスクトップ上にあると、間違ってクリックしてしまったりもするかもしれないので、デスクトップ上での作業効率を向上させる為には、転送対象ウインドウはデスクトップからは消しておきたい。

つまり、転送対象ウインドウは別のデスクトップに移動する、という事にしても問題は無い筈なので、Ubuntu版では、そういう事にしようか、と、考えているのだが、今日は、その辺りの実現性について確認していた訳だ。

具体的には、xdotoolというコマンドラインツールを使うと、ウインドウを移動したり、別のデスクトップに移動したりできるので、TiDesktopRecorderのウインドウ録画機能と、このツールを併用する事で、ウインドウキャプチャー中のウインドウを移動したり、別デスクトップに移動しても、キャプチャーは正しく継続できるか? というのを確認していた。

で、結論から書くと、Ubuntu18.04LTSでは、上記の様に、転送対象ウインドウを別のデスクトップに移動させる事で、目的は達成できそうなのだが、Ubuntu16.04LTSでは、少し事情が異なる。

Ubuntu16.04LTSでも、ワークスペース機能を有効にすれば、仮想デスクトップの様な使い方は出来るのだが、このワークスペースとUbuntu18.04LTSの仮想デスクトップは本質的に別物なので、xdotoolでの扱われ方も異なる訳だ。

もっとも、Ubuntu16.04LTSでは、その関係もあってか、ウインドウを見えない位置に移動させる事が可能なので、Ubuntu16.04LTSでは、そういった手法を使う事にするかもしれない。

ちなみに、Windows環境のAG-デスクトップレコーダーを使ったウインドウ録画時には、タイトルバーが含まれるのだが、Ubuntu環境のTiDesktopRecorderを使ったウインドウ録画時には含まれない。

これは、TiDesktopRecorderを開発した時にタイトルバーを入れ忘れたのか、というと、そうではなくて、Ubuntu環境では、録画対象はXWindowのウインドウになるので、そもそも、ウインドウにはタイトルバーは含まれていないからだ。

なので、同じキャプチャールーチンを使う事になるUbuntu版のトランスポーターでも、キャプチャー時にはタイトルバーは含まれない事になるのだが、それでは、クライアントに表示されるウインドウが何者なのかが判らなくなる場合もある筈だ。

このため、Ubuntu版のトランスポーターでは、クライアント画面を作成する時に、タイトルバーも、追加して合成する格好になる筈だ。

と、言うことなので、Ubuntu版のトランスポーター開発では、Ubuntu16.04LTS/18.04LTSで異なる処理を実装しなければならず、かつ、タイトルバーの合成も必要になる事から、Windows版以上に手間がかかる事になるかもしれない。

しかしまあ、Windows版トランスポーターの開発で最も時間がかかったのは、簡易サーバー相当のDLL開発とソフトの仕様決めになる。

Ubuntu版については、DLL相当のバイナリを分離するかどうかはまだ決めていないのだが、少なくとも、インタフェースはWindows版と同一にする予定だし、ソフトの仕様についても、極力、Windows版に合わせる予定だ。

なので、Ubuntu版のトランスポーターについても、来週中には完成する様な気がしている今日この頃だ。

« 先に不具合修正版を出す | トップページ | 拡大鏡機能の実装は完了 »

2019年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

広告

プライバシーポリシー

  • 当サイトでは、第三者配信による広告(Google Adsense)サービスを利用しています。

    Google を含む第三者配信事業者は、Cookie を使用して、ユーザーのウェブサイトでの閲覧履歴に基づく広告を配信します。 Google 広告 Cookie を使用することにより、Google や Google のパートナーは当サイトや他のサイトへのアクセス情報に基づく広告をユーザーに表示できます。

    収集された情報がGoogleによってどの様に使用されるか、収集される情報をユーザーが管理する方法については、以下のリンクを参照下さい。

    ポリシーと規約 - Google