T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« クライアントの更新を開始 | トップページ | 設定項目が多すぎる? »

β1版向けの作業を開始

今は、Mirror-DTC Ver1.4.4の開発フェーズで、既に、Windows用はβ版を公開中だ。なので、macOS版の更新を行なっていたのだが、大体Okになった。色々やると混乱するので、Ubuntu版の前にβ1版の公開を準備中だ。

現在公開しているMirror-DTC Ver1.4.4のWindows版は、一応、今回の更新内容を全て含んでいるのだが、数日前に書いた様に、利用頻度が低い機能については、まだ未実装に近い状態だった。

なので、そういった機能の完成度を高める必要もあるのだが、macOS版を開発していると、ここの部分はこうした方が良いんじゃないの? みたいな改良案も浮かんできた。

このため、そういった改良も、β1版では適用しようか、と、思ったりもしていたのだが、ユーザーから、Windows10のサーバー側で、マウスカーソルを拡大表示しても、クライアント表示に反映されないのを何とかして欲しい、みたいな要望も貰った。

作者的には、Windows10にマウスカーソルの拡大表示機能が追加された! という事は知らなかった、というか、意識した事は無かった。

なので、Mirror-DTC的にも、Windows7が登場した当時に開発した初版の処理コードをそのままにしてあったのだが、確認してみると、それだと、Windows10のマウスカーソルの拡大表示は完全にスルーする事が判った。

つまり、Windows10でマウスカーソルを拡大表示しても、WindowsのAPI的には、拡大表示していないマウスカーソルサイズをそのまま返してくるので、Mirror-DTCサーバー的には、拡大されていないマウスカーソル画像をそのまま転送する格好になっていた。

しかし、ネットで検索してみると、レジストリを参照すると、Windows10のマウスカーソルサイズは取得可能という事になっていたので、やってみた所、確かに、設定に従った値が取得できた。

具体的には、デフォルト状態では、マウスカーソルサイズは32x32ピクセルなのだが、Windows10の場合、256x256ピクセルまで段階的に拡大可能で、試してみると、レジストリの値は、リアルタイムに設定値を反映していた。

Mirror-DTCクライアントが表示しているマウスカーソルは、サーバー側から透明度指定付きの32Bitビットマップとして転送されていて、そのサイズも可変になっている。

このため、現状、サーバー側が32x32ピクセルのカーソル画像を転送しているので、クライアントでは、その画像が使用されているのだが、サーバー側から256x256ピクセルの画像を転送すれば、現行クライアントでも、普通に、その大きな画像をマウスカーソルとして利用できる仕様になっている。

一応、確認してみた所では、Windows / macOS / Ubuntu版については、現行版クライアントでも問題なく256x256のマウスカーソルまで表示できたのだが、Android版だと、128x128くらいが限界の様で、それを超えるサイズに拡大するとクラッシュしてしまった。

なので、サーバー側では、クライアント側のプロトコルバージョンを確認し、今回アップデートするVer1.4.4以降でのみ、この拡大機能を利用可能にしようか、と、思っている今日この頃だ。

ちなみに、Windows10のマウスカーソルの拡大機能では、マウスカーソルの大きさが拡大されるだけではなく、その元画像についても、より大きなピクセル数の画像が使える様になっているらしい。

なので、Windows10に標準搭載されているマウスカーソルの場合、拡大表示しても、綺麗な拡大画像が表示される。

作者的には、この綺麗な画像を取得できるか? というのが不安だったのだが、従来から使っているDrawIconEx関数で、描画サイズを拡大したマウスポインターと同じサイズにしてみると、綺麗な画像が描画された。

と、いう事なので、一応、ユーザーからのリクエストには、β1版で応えられそうなのだが、Windowsのマウスカーソルで嫌らしいのは、サイズが小さい時には、ハードウェア表示になるので、画面キャプチャーデータの中にはマウスカーソルは含まれないのだが、拡大表示してハードウェア描画が出来なくなると、ソフト的に、画面に描画する様になる事だ。

つまり、ハードウェアカーソルの場合、クライアント側でソフト表示しないとマウスカーソルは表示されないのだが、サーバー側でソフト表示されると、クライアント側でもソフト表示すると、マウスカーソルが二重に表示される事になる。

なので、今回、マウスカーソルの拡大表示に対応する事にすると、同時に、クライアント側のマウスカーソルを表示しないオプションも必要になってくるし、作者的にも、クライアントウインドウを小さく表示して操作する時には、マウスカーソルが見づらくなるので、マウスカーソルを拡大したくなったりする場合もある。

このため、マウスカーソル表示については、クライアント側でも、今回追加した「スケーリング」設定で、表示の有無/拡大率を指定できる様にする事にしている。

また、現行版の仕様が気に入っていたのに! というユーザーは現れるのが常なので、今回のサーバー側でのマウス拡大機能を無効化して従来仕様で利用できる様にするMCSrv.ini設定も追加する事になる筈の今日この頃だ。

« クライアントの更新を開始 | トップページ | 設定項目が多すぎる? »

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