主題がすべてを物語っていると思います。しかし、詳細には、ビットマップを読み込んで操作し、表示しており、GDIでそれを行っていました。繰り返し発生するため、スピードを追加したいと思います。
何年も前に、私は DirectX を他の目的で使用していましたが、私が見たものはすべて、DirectX をやめて Direct2D に移行するように言っています。そのため、その知識をすべて捨てて、最初からやり直す時が来ました。本当にMSのやり方です;-)
ビットマップを操作するために、レンダリングに入る前に、'Lock()' で取得できることがわかりました。また、インターフェイスの関数もサイズを教えてくれます。しかし、BBP とストライドも知る必要があります。
誰かが「なぜ ::GetBBP()... DUH を使用しないのですか」と言う前に、MSDN やその他のソースを何時間も検索した後、そのようなものをリモートで見つけることができませんでした。そして、非常に紛らわしい COM インターフェイスがたくさんあります。
私が見つけることができる唯一のものは、GUID を返す GetPixelFormat() であり、それを比較するために約 150 の "if (...)" ステートメントを記述します。3 つの値についてテストし、それらのいずれでもない場合は拒否できるようにするためです (1,8,32) これを処理する効率的な方法はほとんどありません。
また、GetPixelFormat() もストライドを教えてくれません。
これを行う方法はありますか?
(ビットマップも圧縮されていないため、IWICBitmapDecoder で実行する必要さえありませんが、IWICBitmap に「ここにブロブがあるので、サイズ xy のビットマップとして使用してください」と単純に伝える方法をまだ解明していません)
ご協力ありがとうございます。
-スコット