次の方法で共有


D1159: コマンド リスト トポロジが無効です

コマンド リストは、コマンド リストを使用するエフェクト グラフの一部である効果を参照できません。

 

考えられる原因

コマンド リストの設定中に、アプリケーションに ID2D1DeviceContext::D rawImage の呼び出しを含めることができます。 ID2D1DeviceContext::D rawImage は、ビットマップ、効果、またはコマンド リストを描画するために使用できます。 その結果、ID2D1DeviceContext::D rawImage 呼び出しで、同じコマンド リストがターゲットとして設定されている間にコマンド リストを描画しようとする構文的な可能性があります。 ただし、この方法でコマンド リストを自己参照することは無効です。 Direct2D は、これが発生したケースを識別し、エラーを報告し、デバッグ レイヤーはこのメッセージを出力します。

考えられる修正方法

コマンド リストを設定するときに、デバイス コンテキストが同じコマンド リストを使用する操作を発行しないようにします。 これが起こり得る最も明白な方法は、ターゲットとして設定されている同じコマンド リストを使用して ID2D1DeviceContext::D rawImage を呼び出す方法です。 ただし、ID2D1DeviceContext::D rawImage はエフェクト グラフを参照する可能性があり、エフェクト グラフ内の 1 つのノードがターゲット コマンド リストの使用を試みる場合もあります。 使用する前にコマンド リストが正しく設定されていること、および ID2D1DeviceContext::SetTarget の呼び出しが目的のターゲットを参照していることを確認します。