T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« Snapdragon X Elite? | トップページ | β2版の公開を完了 »

β2版の公開を準備中

今は、Mirror-DTC Ver1.4.4の開発フェーズで、既にWindows/macOS用のβ1版を公開中だ。その後、トランスポーターを更新し、追加仕様をサーバーにも適用した。なので、ここでβ2版として公開すべく準備を始めた。

Miror-DTC Ver1.4.4の更新仕様としては、まず、サーバーの対応ディスプレイ数を従来の2から8に増やした事が挙げられる。

また、もう一つの更新仕様として、クライアントがサーバー操作用に発行するマウスポインタ移動コマンドの移動範囲を、従来の最大4096から事実上の制限なしに拡張した事が挙げられる。

二つ目の仕様拡張は、主に、合成ディスプレイを選択した場合に必要になるのだが、これは何故なのかというと、Mirror-DTCの合成ディスプレイというのは、WindowsやmacOSで、ディスプレイの配置を設定する場合に表示される様な全ディスプレイの映像を、そのまま転送する格好になっているからだ。

つまり、フルHD x 2のディアルモニタ構成のPCでは、それらを横に並べると、合成ディスプレイの解像度は、(1920x2)x1080 = 3840x1080になるので、従来仕様で問題は無かったのだが、4kモニターを横に並べると、(3840x2)x2160 = 7680x2169になるので、従来仕様だと、合成ディスプレイの右端までマウスポインタを移動する事が出来なかった。

と、いう事で、Windows PCの場合、4kモニターの普及率は低いと思われるのだが、もし、4kモニターを使用し、かつ、別にもう一台接続してデュアルモニター構成にしている人がいた場合、現行版のMirror-DTCでは、合成ディスプレイ使用時に問題が出る状況だ。

なので、実際の所としては、現行版のMirror-DTCでは、4kモニターを使う場合を想定すると、デュアルモニターにすら、完全には対応できていない状況だったので、対応ディスプレイ数を更に増やすのであれば、合成ディスプレイ使用時を想定すると、マウスカーソルの移動距離を増やす対応は必須だった訳だ。

上記の2点については、既に、β1版で実現できているのだが、その後、8ディスプレイ対応を可能にしたとしても、そんなにディスプレイを繋いでいる人は皆無であろう事を鑑みて、トランスポーターに、8ディスプレイまでの仮想ディスプレイエミュレーション機能を追加した。

つまり、作者的には、8ディスプレイ対応なんて意味がないからやめる! のではなく、8ディスプレイが接続されている環境が皆無なのなら、誰でも利用できる8ディスプレイの仮想環境を提供する! という事で、トランスポーターに相当機能を入れる事にした訳だ。

その結果として、トランスポーターの実装はより複雑化したのだが、何となく、使い勝手は向上したかもしれない。

ただし、トランスポーターでは、4kモニターx8のエミュレーションも可能なので、合成ディスプレイの解像度は(3840x8)x2160 = 30720x2160にもなってしまう。

実際の所、巷には、そんな高解像度のモニターは存在しない筈なので、Windows的にも、そんな解像度のディスプレイに対応できない感じで、実際に、上記解像度で合成ディスプレイを構築して動作させてみると、Windows版Mirror-DTCクライアントはクラッシュしてしまった。

同時に、サーバーについても、GPUベースで行われるDesktop Duplication APIによる高速画面キャプチャーは問題が出る様になったので、合成ディスプレイ用の画面キャプチャー時には、より基本的なBitBlt関数による画面キャプチャーに切り替える様にした。

クライアントについても、描画方式をデフォルトのDirect2Dから、CPUによる画面縮小+GDI描画に切り替えれば、なんとかならない事も無かったのだが、これだけ大きな解像度の画面をネットワーク転送するとなると、その時間も馬鹿にならない訳だ。

なので、Mirror-DTC Ver1.4.4的には、更に仕様拡張を行い、合成ディスプレイの画面転送時には、サーバー側で、自動的に、画面を縮小して転送する機能を追加した。

もっとも、現行版では、デュアルディスプレイまでの対応なので、特に、そんな縮小機能は入れていなかったので、Ver1.4.4では画面を縮小する! という事にしてしまうと、Ver1.4.4の合成ディスプレイの画質は従来版よりも劣化する! という事になってしまう。

このため、合成ディスプレイに対する縮小機能の縮小率は、デフォルト設定では、ディスプレイ数x0.5にしてある。

つまり、デュアルディスプレイ時には、2x0.5 = 1.0なので、縮小は行われず、3台目以降を接続した場合に、初めて、縮小される格好になるのだが、実際の所、フルHDx8程度の合成ディスプレイなら、少なくとも作者環境では、クライアントがクラッシュする事はなかった。

なので、この縮小率については、MCSrv.iniでユーザー設定可能にもしてあるので、トリプルディスプレイ環境で合成ディスプレイの画質を劣化させたくない! みたいな場合には、MCSrv.iniで設定を変更すれば、縮小させずに動作させる事も可能だ。

上記以外の更新仕様としては、クライアントの画面拡大率をユーザー指定可能にした、というのがある。

これは、作者的にはmacOSで動作させているメイン環境では、テキスト表示が綺麗になるので、4kモニターを使用する様になったのだが、Windows用の開発環境なんかは、処理負荷を鑑みて、フルHD解像度で利用し続ける事にした、というのが動機になっている。

つまり、そんな環境だと、Windows用の開発環境をMirror-DTC接続で使っていると、2倍表示なんかが、実質的に、出来なくなるからだ。

具体的には、macOS環境下で4kモニターを普通に使うと、1920x1080 (HiDPI)表示になるので、テキストサイズ的には、フルHD解像度と同じ大きさになるものの、解像度は縦横共に2倍になるので、Mirror-DTCクライアント的には、フルHD画面の等倍表示というのは、縦横共に画面の半分の大きさになってしまう。

なので、2倍表示にして、やっと、画面全体に表示してくれる様になる訳なので、2倍表示までしかできないMirror-DTCクライアントでは、実質的に、サーバー画面を拡大表示する事が出来ない訳だ。

このため、上記の様なDPIの違いを埋められる様に、Ver1.4.4では、クライアントの「表示」メニューに「スケーリング」という項目を追加して、例えば、上記の様な場合には、「2.0」を指定しておけば、クライアントとサーバーの双方がフルHDモニターだった場合と同じ感覚で、画面の拡大/縮小が行える様にした。

もう一つの更新仕様としては、Windowsサーバーでは、Windows10以降で採用されたOSのマウスポインターの拡大機能に対応させると同時に、Mirror-DTC的にも、マウスカーソルの表示サイズを自前でも変更できるようにした。

これは、特に、合成ディスプレイなんかの表示時には、普通は、画面表示サイズは小さくする事になるので、画面表示サイズに合わせてサイズ変更されるMirror-DTCのマウスポインタ表示も、小さくなってしまうからだ。

特に、Ver1.4.4で追加した、8ディスプレイ対応時に、全モニターを画面内に表示してしまうと、デフォルト状態では、まず、マウスポインターは小さくなりすぎるので見えなくなる。

なので、あるモニター内にあるウインドを別モニター領域に移動させようと思っても、マウスポインタが見えないので、簡単には出来なくなってしまうのだが、マウスカーソルの表示サイズを自前で調整できるのなら、こんな状況でも、普通にポインタが見える様にできるので、作業が可能になる訳だ。

と、いう事で、Ver1.4.4では、上記の様な仕様追加と同時に、macOS版トランスポーターでは、現行版では実現できていなかった、転送中ウインドウを隠す処理も追加した。

これにより、トランスポーターについても、Windows / macOS / Ubuntuで同等の使い勝手が実現される感じになったので、今後、その存在感は増す事になる筈だ。

ちなみに、今日の時点で、Windows版トランスポーターの更新作業も終わったので、明日はβ2版用の配布パッケージを作成し、作者環境に適用する事になる筈だ。

それで問題が出ない様なら、β2版として公開する格好にするので、β2版の公開は明日か明後日くらいになる筈だ。

その後、まだ手付かずのUbuntu版の更新作業に入るのだが、仕様的には、今回のβ2版で完成形になった様な気がしているので、Ubuntu版の更新は、それほど難しくはない筈だ。

Ubuntu版の更新作業が終わったら、Android版の更新も行うのだが、Android版については、元々、画面の拡大/縮小処理はデスクトップ版よりも柔軟性が高い。

なので、今回、デスクトップ版に追加したスケーリング機能だとかマウポインタの拡大処理なんかの追加は不要の筈なので、仕様追加するのは、最初に書いた8ディスプレイ対応とマウスポインタの移動距離拡張だけ、になる様な気がしている。

と、書いた後に思い出したのだが、Ver1.4.4では、接続オプションとしてスロースタート機能と音声安定化機能も追加していたので、これらについても、追加する事になる筈だ。

« Snapdragon X Elite? | トップページ | β2版の公開を完了 »

2024年5月
      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