D1159: Topologia de lista de comandos inválida

Uma lista de comandos não pode referenciar efeitos que fazem parte de grafos de efeito que consomem a lista de comandos.

 

Possíveis causas

Ao preencher uma lista de comandos, um aplicativo pode incluir uma chamada para ID2D1DeviceContext::D rawImage. ID2D1DeviceContext::D rawImage pode ser usado para desenhar bitmaps, efeitos ou listas de comandos. Como consequência, é sintaticamente possível que uma chamada ID2D1DeviceContext::D rawImage tente desenhar uma lista de comandos enquanto essa mesma lista de comandos é definida como um destino. No entanto, as listas de comandos de autorreferência dessa maneira não são válidas. Direct2D identificará os casos em que isso ocorre e relatará um erro e a camada de depuração produzirá essa mensagem.

Possíveis correções

Ao preencher uma lista de comandos, verifique se um contexto de dispositivo não emite nenhuma operação que consuma essa mesma lista de comandos. A maneira mais óbvia em que isso pode acontecer é chamar ID2D1DeviceContext::D rawImage com a mesma lista de comandos definida como o destino. No entanto, também há maneiras menos óbvias em que isso pode ocorrer: um ID2D1DeviceContext::D rawImage pode se referir a um grafo de efeito e um nó no grafo de efeito pode tentar consumir a lista de comandos de destino. Verifique se as listas de comandos estão preenchidas corretamente antes do uso e se as chamadas para ID2D1DeviceContext::SetTarget se referem ao destino pretendido.