WindowModePatch 0.56 Alphaを公開

これ以外記事が無いのか?と自分に問いかけたくなりますが、思いつかないということとちょうど更新したくなったので更新しました。一部バグフィックスも含まれています。というよりWindowModePatchの場合は何がバグで何が仕様なのかかなり曖昧なので。

 

強制フルスクリーン機能を暫定的に実装

前の記事で書いたとおり、強制フルスクリーン機能を暫定的に実装しました。設定画面からは設定できませんが、直接設定ファイルを書き換えると機能が使えるようになっています。一応設定画面にもそれに対応した部分がありますが今回は非表示としています。

一応実装したのはいいのですが、問題は「ウィンドウモードでのみ起動できるゲーム」がどういうものなのか未だに不明という点です。フリーソフトの簡単なゲームなんかではもしかしてあるのかもしれませんが、それをフルスクリーン化すると良いのか悪いのかよく分からないな~と思っています。

 

DirectShow関係をいろいろと修正

きっかけは「VMR(VideoMixingRenderer)+Windowlessの場合再生サイズが変更されない」ということです。今のところはフィルタの作成部分から操作部分までとりあえず上書きするような構造になっています。Windowlessではない場合は処理をスルーさせるようになっているので問題は出ないと思います。

それを修正している間に見つけたまた微妙な点。DirectShowの管理インターフェイスにIGraphBuilderというものが存在するのですが、これには前後に継承関係(機能を含む/含まれる)を持つものがあり、それの名称が「IFilterGraph」=>「IGraphBuilder」=>「IFilterGraph2」=>「IFilterGraph3」とさりげに挟まったIGraphBuiderが何ともいえない立場のように見えます。よくあるDirectShowのサンプルではこのうちのIGraphBuilder以外は見かけないのですが、一応継承関係なので全部含ませることにしてそれを考慮した実装に変更しました。

 

いつのまにかてんてこ舞いがはじかれた・・・

だからてんてこ舞いじゃないと何度言ったら・・・。というわけで某有名なADVシステムがまたもや非対応状態になってしまっていたので修正です。今回の予定外は描画ウィンドウの検知処理の変更でできた隙で、WinAPIのとある機能を呼び出すとこちらが乗っ取っていた一部の動きを内部的に乗っ取り返される、という現象によるものです。その部分がちょうど描画ウィンドウの検知に使っていたので・・・。システム内部にあるのでこちらから処理を行うことができず。ここまでくると私も笑えばいいのか泣けばいいのか・・・。今回のバージョンでなんとかしましたし、Direct3D9を使ったフレーム描画モードがあるのでそれを使うと結構うまく描画できるのがいいところですね。

 

説明書も一部修正

機能を追加したので説明書を再度頭から読み直して今のバージョンにあっていない説明や過剰説明を修正しました。これで少しはすっきりしたと思います。特にパッチ処理で選択肢を選ぶことで何が変わるのか、をわかりやすく説明するのにちょっと苦労しました。元の説明がかなり分かりづらかったと思いますが、今回の説明なら分かるはずです。

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この記事のトラックバック用URL