Поделиться через


D1159: недопустимая топология командного списка

Список команд не может ссылаться на эффекты, которые являются частью графов эффектов, использующих список команд.

 

Возможные причины

При заполнении списка команд приложение может включать вызов ID2D1DeviceContext::D rawImage. ID2D1DeviceContext::D rawImage можно использовать для рисования растровых изображений, эффектов или списков команд. В результате для вызова ID2D1DeviceContext::D rawImage можно синтаксически выполнять попытку рисования списка команд, а тот же список команд задан в качестве целевого объекта. Самонаправляющиеся списки команд таким образом недопустимы. Direct2D определит случаи, в которых это происходит и сообщить об ошибке, а уровень отладки выводит это сообщение.

Возможные исправления

При заполнении списка команд убедитесь, что контекст устройства не выдает никаких операций, которые используют тот же список команд. Самый очевидный способ, в котором это может произойти, заключается в вызове ID2D1DeviceContext::D rawImage с тем же списком команд, который задается в качестве целевого объекта. Однако существуют также менее очевидные способы, в которых это может произойти: id2D1DeviceContext::D rawImage может ссылаться на граф эффектов, а один узел в графе эффектов может попытаться использовать целевой список команд. Убедитесь, что списки команд заполняются правильно перед использованием, и вызовы id2D1DeviceContext::SetTarget ссылаются на предполагаемый целевой объект.