Partilhar via


D1159: Topologia de lista de comandos inválida

Uma lista de comandos não pode fazer referência a efeitos que fazem parte de gráficos de efeitos que consomem a lista de comandos.

 

Causas Possíveis

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 destino. No entanto, a autorreferência de listas de comandos dessa maneira não é válida. O Direct2D identificará os casos em que isso ocorre e relatará um erro, e a camada de depuração exibirá essa mensagem.

Possíveis correções

Ao preencher uma lista de comandos, certifique-se de que um contexto de dispositivo não emita 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 que é 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 gráfico de efeitos, e um nó no gráfico de efeitos 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.