現在、Direct2D を使用してリアルタイム画像処理を行う Windows ストア用のアプリケーションを開発しています。さまざまなサイズの画像をサポートする必要があります。私が直面した最初の問題は、画像がサポートされている最大テクスチャ サイズよりも大きい場合の状況をどのように処理するかということです。いくつかの調査とドキュメントを読んだ後、解決策として VirtualSurfaceImageSource を見つけました。イメージを IWICBitmap としてロードしてから、CreateWICBitmapRenderTarget でレンダー ターゲットを作成するというアイデアでした (私の知る限り、これはハードウェア アクセラレーションではありません)。いくつかの描画操作の後、VirtualSurfaceImage ソース内の対応する領域を無効にするか、NeedUpdate コールバックが発生したときに結果を画面に表示したいと考えました。ID2D1Bitmap を作成し (ハードウェア アクセラレーション)、CreateWICBitmapRenderTarget で作成したレンダー ターゲットと無効化した領域を境界として CopyFromRenderTarget を呼び出すことで可能だと思っていたのですが、メソッドは結果として D2DERR_WRONG_RESOURCE_DOMAIN を返します。IWICBitmap を使用するもう 1 つの理由は、画像のピクセルを更新するためにアクセスする必要があるアプリケーションに関連するアルゴリズムの 1 つです。
問題は、なぜこのロジックが機能しないのかということです。これは、Direct2D を使用して私の目標を達成する正しい方法ですか? また、CreateWICBitmapRenderTarget で作成されたレンダー ターゲットがハードウェア アクセラレーションされていない限り、最大許容テクスチャ サイズよりも大きい画像を GPU で処理したい場合、これが最適なソリューションですか?
前もって感謝します。