スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

RGSSで動画再生 Vol.5

とりあえずの生存報告を兼ねた近況をば。
卒研が片付いても、まだまだ作業が残っているという罠。

しばらく前から無駄に作業してる XP or VX の動画再生。
当初から DirectShow で再生を試みていたのだが、2日ほど前に
めんどくさい事実に気付いてしもうた。
(「気付くのOSEEEEE!!」とか言わないで)

VX では、フルスクリーン時に DirectShow だけをぐりぐりと呼び出して
動画を再生するのはミリ。


要は、フルスクリーン時は排他モード(DirectX が描画関連を占有するらしいモード)
になっているので、普通の GDI 関数とか使って描いても消されてしまう。
VideoWindow を作って動画を流しても当然ダメと。
で、ウィンドウモードなら VideoWindow を最前面にしてやればおkだが、
フルスクリーンだと消されちゃうのね (´・ω・`)

DirectX のことはよく分からないので、激しく的外れなのかもしれんが、
つまりは普通に DirectShow を使う DLL を作って VX に呼ばせても、
DirectX に邪魔されてうまくイカネーヨというのが結論。

だが、そこはM$クオリティ。
IDirect3DDevice9::SetDialogBoxMode を使えば、フルスクリーンでも
ダイアログが出せるという素敵仕様。
そして都合の良いことに、VX の動作環境は「DirectX 9.0 以上」。
これを呼べば、普通にいけるんじゃまいか?

なんだか長くなったので、残りは「続きを読む」にて。
というわけで、d3d9.dll のラッパーDLLを作ってみるテスト。
・・・?動かない。
それ以前に DLL_PROCESS_ATTACH すら飛んでこない。
つまりは VX で d3d9.dll を呼んでいない。なにー?
最近は2Dでも Direct3D を使うらしいので、VX もそうだと踏んだのだが・・・。

少し調べた結果、どうやら ddraw.dll (DirectDraw。以下 DD)を呼んでいるらしい。
ん? DD って DirectX7 じゃね?
つまり描画には DirectX9 使ってないと?
今回は弄らないが、DSound とか DInput で 9 を使ってるということか。

だがそうすると、例の IDirect3DDevice9::SetDialogBoxMode が使えない。
どうしたもんか・・・。
と思いきや、MSDN で IDDrawExclModeVideo なんてものを発見。
このインターフェイスを利用すると、Microsoft® DirectDraw® 排他フルスクリーン モードになっている間でもビデオを再生できる。ゲーム アプリケーションは、DirectDraw を排他フルスクリーン モードで使いながらビデオ再生を継続できる。たとえば、バックグラウンドでビデオを再生しながら、その上にグラフィックをのせることができる。アプリケーションは、DirectDraw オブジェクトとプライマリ サーフェイスを渡し、それらがフィルタ グラフのオーバーレイ ミキサ フィルタに渡される。

なんという素敵仕様。
これってやりたい機能そのまんまじゃねーか。

しかし、使うには DD オブジェクトとサーフェイスを持ってこないといけないのか。
試しに DLL で無理矢理 DD オブジェクトとプライマリサーフェイスを作って
IDDrawExclModeVideo を取得してみたら、何だか知らないが取れた。
ところが、案の定動画を流した途端 VX ごと落ちた。
やっぱ VX 側で使ってる DD オブジェクトを直接貰ってくるしかないか。

仕方なく ddraw.dll のラッパー作成に着手。
おお、今度はちゃんと DLL_PROCESS_ATTACH が飛んできた。
あとは DirectDrawCreate に来れば・・・。

KONEEEEEEEE!!

どうやら DirectDrawCreate も DirectDrawCreateEx もお呼びでないという罠。
また懲りずに調べたら、DllGetClassObject が呼ばれているという。

なんだか物凄いデスマに陥ってる悪寒。
スポンサーサイト

コメントの投稿

非公開コメント

別所の素材サイトがついに作ってしまったようですね・・・

Re: タイトルなし

このデスマ以来卒論やら何やらで放置していたので、
今ソースを見ても何がしたかったのか理解不能です (´・ω・` )
アクセスカウンタ
プロフィール

TOMY

  • Author:TOMY
  • Kamesoft

    ・社会人見習い Lv3
    ・ミク廃
    ・ほむらー
    ドット絵はちゅねミク (C)袴っ娘推進委員会
カレンダー
05 ≪│2017/06│≫ 07
- - - - 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 -
最近の記事
カテゴリー
最近のコメント
RSSフィード
ブログ内検索
Clover Days
ALcot『Clover Day's』応援中!
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。