スポンサード リンク

T.Ishii's Software Library

HTML5 レトロ風ゲーム館

無料ブログはココログ

« AGMエンコーダーの性能向上 | トップページ | ボチボチと始めた »

Windows版からにする

今は、Windows用AmuseGraphicsの開発フェーズなのだが、他ソフトのリリースも必要なので、中々、先には進まない。もっとも、今日は、TiExtender Ver1.2.1をVectorに公開依頼したので、次はmacOS版AGMPlayerの予定だったのだが、Windows版を先に作る事にする。

数日前にリリースしたWindows版Mirror-DTC Ver1.3.1では、最初にアップロードしたバイナリには、ファイル転送コマンドの最後に表示している確認ダイアログで、「キャンセル」ボタンを押してもキャンセルされない、という大問題があった。

で、何故、そんな単純明快なバグが入り込んだのか、というと、Mirror-DTC Ver1.3.1については、macOS版を最初に作り、そのコードを使ってUbuntu版、そして、更にそのコードを使ってWindows版を開発していたからだ。

つまり、Windows版はmacOS/Ubuntu版で実績のあるコードを使いつつ、更に時間をかけて改良したので、更に良いソフトになる筈だったにも関わらず、実際には、そうはならなかったのだが、これは、macOS/Ubuntu版とWindows版では微妙にコード上での互換性が無かったからだ。

具体的には、Windows版では、単純な確認ダイアログなんかについては、MFCアプリである所のMirror-DTCでは、AfxMessageBox関数が使えるのだが、当然の事ながら、macOSやUbuntuでは、こんな関数は使えない。

なので、作者的には、同等の機能を持った関数を自前で用意してある訳なのだが、別に、Windows互換ライブラリとして売り出そうと思っている訳でもないので、作ってある関数は似て非なるモノな訳だ。

具体的には、AfxMessageBoxでキャンセルボタンを押された場合と、作者製関数でキャンセルボタンを押された場合では、関数からの戻り値が異なっていた訳だ。

にも関わらず、Windows版Mirror-DTC Ver1.3.1では、Ubuntu版のコードを流用していたので、Ubuntu版用のメッセージダイアログ関数を、AfxMessageBox関数に、そのまま置き換えてしまっていた訳だ。

その結果として、Windows版では、キャンセルが押された事を検出できずに、キャンセルを無視する格好になってしまっていた。

更に書いておくと、作者的には、ファイル転送機能についての動作確認はmacOS版で十分に行ったので、Ubuntu/Windows版では、あまり真面目に評価しなかった訳だ。

と、いう事で、最初にmacOS版を開発し、そのコードをUbuntu版に適用し、最後にWindows版を開発する格好にすると、Windows版はより洗練されたモノになるかなあ、と、思っていたのだが、どうも、そうでもないみたいなので、AmuseGraphics Ver1.3.2に関しては、まず、Windows版から開発する事にした訳だ。

ちなみに、現状、AmuseGraphicsには、アップデートパックをリリースしていて、次バージョンは、このアップデートパックを改変する事で開発する。

なので、今日は、それらのビルド環境をコピーする事で、Ver1.3.2用のビルド環境を構築していたのだが、そんな作業をやっている最中に、AmuseGraphics本体にあるツールバーがWindows10環境では、微妙に変な事に気が付いた。

具体的には、それをマウスドラッグで移動すると、その残像が残るのだが、他環境でどうなるのかを確認してみた所、Windows10 Creators Update状態のParallelsにインストールしたWindows10環境では、そんな問題は発生しなかった。

また、Windows8.1環境でも問題は発生しないのだが、Windows7環境では、Aeroが有効なデザインにすると、現象は異なるのだが、移動時の表示は乱れた。

と、いう事で、作者的には、何故、そんな所の互換性を無くすのかは理解しがたいのだが、Windowsの描画系は、昔から、バージョンによってコロコロと変わる感じだ。

更に言えば、前述のツールバーというのは、MFCのライブラリを使って構築してあるにも関わらず、ちゃんと動作しない訳なので、作者以外にも、困っている人は多いかもしれない。

もっとも、MFCというのはソースコードが提供されているので、作者的には、今日、そのソースコードを確認し、特にWindows10 Fall Creators Updateでマトモに動作しなくなった処理を突き止めた。

そして、MFCが使っている移動時の描画用クラスを自前のクラスに置き換え、Windows 10 Fall Creators Updateで正しく描画されなくなった処理を別処理に置き替える事で、見た目上の問題を無くした。

と、いう事なので、AmuseGraphics Ver1.3.2では、ツールバーの描画問題も解決される筈ではあるのだが、そもそも、Windowsに互換性があれば、こんな作業は必要ないのに、みたいな話は、Windows7がリリースされた時にMasterReversiの描画系を変更する必要に迫られた時にも書いた様な気がする。

« AGMエンコーダーの性能向上 | トップページ | ボチボチと始めた »

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/534482/66013349

この記事へのトラックバック一覧です: Windows版からにする:

« AGMエンコーダーの性能向上 | トップページ | ボチボチと始めた »

2017年11月
      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    

広告

プライバシーポリシー

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

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

    Cookieを無効にする設定およびAdsenseに関する詳細については、以下のリンクを参照下さい。

    広告 - ポリシーと規約 - Google