0

この質問に対する回答を見ました: Direct2D 共有可能なリソースを再作成する必要がありますか? ですが、理解できないことがあります: 共有リソース A は RT1 によって作成され、RT2 によって使用されました。RT2 の EndDraw が D2DERR_RECREATE_TARGET を返した場合、A と RT1 をどうすればよいですか?</p>

4

1 に答える 1

1

Direct2D 共有リソースは、同じハードウェア デバイスによって割り当てられ、格納されるリソースです。このようなリソースは、同じ基になるデバイスを共有し、同じ D2D1_RENDER_TARGET_USAGE フラグで作成されるレンダー ターゲットによって作成されます。

D2DERR_RECREATE_TARGET エラー コードは、基盤となるデバイスが利用できなくなったことを示します。Direct3D、DXGI、Direct2D デバイス、デバイス コンテキスト、スワップ チェーン、レンダー ターゲット、ビットマップなどは、解放して再作成する必要があります。

あなたの例では、どのレンダー ターゲットがエラーを返すかは問題ではありません。受信したら、両方のレンダー ターゲットを解放する必要があります。また、それらが作成した共有リソースも解放する必要があります。

于 2013-01-25T16:02:34.183 に答える