D1159: Ungültige Befehlslistentopologie

Eine Befehlsliste kann nicht auf Effekte verweisen, die Teil von Effektdiagrammen sind, die die Befehlsliste nutzen.

 

Mögliche Ursachen

Beim Auffüllen einer Befehlsliste kann eine Anwendung einen Aufruf von ID2D1DeviceContext::D rawImage enthalten. ID2D1DeviceContext::D rawImage kann verwendet werden, um Bitmaps, Effekte oder Befehlslisten zu zeichnen. Daher ist es syntaktisch möglich, dass ein ID2D1DeviceContext::D rawImage-Aufruf versucht, eine Befehlsliste zu zeichnen, während dieselbe Befehlsliste als Ziel festgelegt ist. Die selbstverweisende Befehlsliste auf diese Weise ist jedoch ungültig. Direct2D identifiziert Fälle, in denen dies geschieht, und meldet einen Fehler, und die Debugebene gibt diese Meldung aus.

Mögliche Korrekturen

Stellen Sie beim Auffüllen einer Befehlsliste sicher, dass ein Gerätekontext keinen Vorgang ausgibt, der dieselbe Befehlsliste verwendet. Die offensichtlichste Methode, wie dies geschehen kann, ist das Aufrufen von ID2D1DeviceContext::D rawImage mit derselben Befehlsliste, die als Ziel festgelegt ist. Es gibt jedoch auch weniger offensichtliche Möglichkeiten, wie dies geschehen kann: ein ID2D1DeviceContext::D rawImage kann auf ein Effektdiagramm verweisen, und ein Knoten im Effektdiagramm kann versuchen, die Zielbefehlsliste zu nutzen. Stellen Sie sicher, dass Befehlslisten vor der Verwendung ordnungsgemäß aufgefüllt werden und dass Aufrufe von ID2D1DeviceContext::SetTarget auf das gewünschte Ziel verweisen.