Udostępnij przez


D1159: Nieprawidłowa topologia listy poleceń

Lista poleceń nie może odwoływać się do efektów, które są częścią grafów efektów korzystających z listy poleceń.

 

Możliwe przyczyny

Podczas wypełniania listy poleceń aplikacja może zawierać wywołanie id2D1DeviceContext::D rawImage. ID2D1DeviceContext::D rawImage może służyć do rysowania map bitowych, efektów lub list poleceń. W konsekwencji jest to składniowo możliwe dla id2D1DeviceContext::D rawImage wywołanie, aby spróbować narysować listę poleceń, podczas gdy ta sama lista poleceń jest ustawiona jako docelowa. Samonależące listy poleceń w ten sposób nie są jednak prawidłowe. Funkcja Direct2D zidentyfikuje przypadki, w których wystąpi ten błąd i zgłosi błąd, a warstwa debugowania zwróci ten komunikat.

Możliwe poprawki

Podczas wypełniania listy poleceń upewnij się, że kontekst urządzenia nie wystawia żadnej operacji, która korzysta z tej samej listy poleceń. Najbardziej oczywistym sposobem, w jaki może się to zdarzyć, jest wywołanie identyfikatora ID2D1DeviceContext::D rawImage z tą samą listą poleceń, która jest ustawiona jako docelowa. Jednak istnieją również mniej oczywiste sposoby, w których może się to zdarzyć: id2D1DeviceContext::D rawImage może odwoływać się do grafu efektu, a jeden węzeł na wykresie efektowym może próbować korzystać z docelowej listy poleceń. Upewnij się, że listy poleceń są poprawnie wypełniane przed użyciem, a wywołania metody ID2D1DeviceContext::SetTarget odwołują się do zamierzonego obiektu docelowego.