昨日の話を絵にすると
こんな感じになる。ちなみにこれはスクリーンショットにペイントで手書きで追記したものである。ペイントはタッチパネルも考慮しているようである。Windows 8以降のバージョンだけかもしれないが。
昨日は動画テクスチャをプレビュー表示するところでうまくいかなかったわけだ。1280×720の動画テクスチャを640×360のSwapChainPanelに縮小表示する。 表示の仕方は簡単で、画面いっぱいのサイズの四角形のポリゴン一枚に動画テクスチャをテクスチャ・マッピングして表示するだけである。なのでシェーダーも座標変換もない最低レベルのものを作っている。 昨日の問題は動画テクスチャがSwapChainPanelに合わせて縮小されず、等倍で一部のみ表示されるというものだった。これはテクスチャ座標を動画テクスチャとSwapChainPanelの画面比で調整したら直った。 理屈はまだわかっていない。
波形データはDirect2Dで動画テクスチャに描画しようとしているのだけれども、Direct2DはID3D11Texture2DをID2D1Bitmap1にできないのでなんとかする必要がある。こちらの記事でID3D11Texture2DをQueryInterfaceすればIDXGISurfaceが取り出せることを知った。IDXGISurfaceであればこれをベースにID2D1Bitmap1が作れるのでなんとかなりそうだ。