スポンサーリンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« 何とかなった感じ | トップページ | 「基本無料」扱いは終了 »

拡大鏡も動作した

今は、Mirror-DTC Ver1.4.1の開発中で、今日は、クライアントに「拡大鏡」機能を実装した。同時に、現行版にある「録画」機能にある不具合も修正したので、クライアントについても、大体は完成した事になる筈だ。

Ver1.4.1でクライアントに追加した機能は、「静止画出力」機能と「拡大鏡」機能の二つ、という事になる。

上記の機能は、実は、Ver1.4.0で追加した「録画」機能と密接な関係があって、実装にあたっては、「録画」機能用に使っている処理コードを参考にした。

つまり、双方共に、サーバーから送られてくる映像をメイン画面に表示するのとは別の形で利用する、という意味では、「録画」機能と同じなので、内部的には、「録画」機能で使用している処理コードと同じ様な処理を行っている部分がある訳だ。

もっとも、「静止画出力」機能については、マウスカーソルを合成していない分、「録画」機能ほど複雑にはなっていないのだが、「拡大鏡」機能については、マウスカーソル画像の合成も行っているので、処理コード的には、結構、「録画」機能と似ている訳だ。

なので、「拡大鏡」機能を実装し、その動作確認を行った時に思い出したのだが、現行版の「録画」機能には、モニターモードで動作させている場合にも、クライアント側のマウス画像を合成してしまう、という不具合があった訳だ。

この不具合は、macOS版かUbuntu版の開発時に判明し、それらについては修正済みだったのだが、普通、録画機能はモニターモードでは使用しないだろう、という事もあり、Windows版については放置していた。

しかしまあ、修正は容易なので、Ver1.4.1ではWindows版でも、この問題は修正したのだが、現行版の録画機能には、もう一つ、問題がある事が判明したので、修正した。

その問題というのは、XOR形式で描画されるタイプのマウスカーソルは正常には描画されない、というモノだ。

もっとも、通常のマウスカーソルの多くはXOR形式で描画されていないので、影響が出るケースは限られるのだが、例えば、メモ帳のテキスト領域に描画されるビームカーソルはXOR形式で描画されるので、現行版では、正しく録画されない訳だ。

と、いう事で、上記についても、拡大鏡機能の作り込み時に判明した不具合なので、当然の事ながら、拡大鏡については、最初から、上記の様な問題はない状態になっている。

ただし、XORカーソルの画像が正しく合成されない、という問題は、macOS / Ubuntu版の録画機能でも同様なので、これらについては、やはり、Ver1.4.1の開発時には、修正する必要がある。

まあ、XORカーソルなんてものは、Windowsにしか存在しないので、macOS / Ubuntuだけを使用している分には、問題は発生しないのだが。

ちなみに、サーバー側については、クライアントからの接続/切断時にユーザー指定のコマンドを実行できる機能を追加しようか、どうしようか、という話を書いていたのだが、やはり、今回も、見送りにすることにした。

その理由は、既に書いてきた様に、今時、こんな機能を追加しても、利用しようとする人は少ない筈で、利用方法としても、通常は、画面解像度の変更くらいしか思い浮かばない筈なのだが、考えてみると、画面解像度の変更は可能でも、Windows10なんかでは、同時に、DPIの変更も行えないと意味は無いかもしれない訳だ。

そして、DPIの変更用のAPIというのは、少し調べてみた所では、存在していない感じな訳だ。

つまり、Windows10では、解像度の変更だけをプログラム的に行えても不十分で、DPIの変更も同時に行えなければ、トラブるだけ、みたいな感じなのだが、そのDPI変更用のAPIは見つからないし、あったとしても、この辺の仕様はコロコロと変わってきているので、下手に、そんなAPIを使ってしまうと、次のWindows10の大型アップデートで動作しなくなる可能性も高いかもしれない訳だ。

と、いう事で、殆ど利用者がいない筈の機能の為に、危険な香りがする解像度変更関連の処理に手を出すのは、愚の骨頂、という事で、解像度変更関連のプログラムを提供するのはヤメにしたので、それ以外に一般ユーザー的には使い道がなさそうな、接続/切断時のコマンド実行機能も提供しない事にした訳だ。

なので、サーバー側については、既に変更済みの機能のみが新規機能、という事になるので、実際には、色々と便利にはなっているのだが、機能的には、殆ど、無変更、みたいな感じになってしまうかもしれない。

もっとも、既に書いてきた様に、Ver1.4.1のウリは、先行リリースしているTransporterなので、現行版にあるクライアントやサーバーの変更が少ないのは、当初からの予定通りではある。

« 何とかなった感じ | トップページ | 「基本無料」扱いは終了 »

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