Compartir a través de


D1159: Topología de lista de comandos no válida

Una lista de comandos no puede hacer referencia a efectos que forman parte de gráficos de efectos que consumen la lista de comandos.

 

Causas posibles

Al rellenar una lista de comandos, una aplicación puede incluir una llamada a ID2D1DeviceContext::D rawImage. Id2D1DeviceContext::D rawImage se puede usar para dibujar mapas de bits, efectos o listas de comandos. Como consecuencia, es sintácticamente posible que una llamada ID2D1DeviceContext::D rawImage intente dibujar una lista de comandos, mientras que la misma lista de comandos se establece como destino. Sin embargo, las listas de comandos de autorreferencia no son válidas. Direct2D identificará los casos en los que esto ocurre y notificará un error, y la capa de depuración generará este mensaje.

Posibles correcciones

Al rellenar una lista de comandos, asegúrese de que un contexto de dispositivo no emite ninguna operación que consuma esa misma lista de comandos. La manera más obvia en la que esto puede ocurrir es llamar a ID2D1DeviceContext::D rawImage con la misma lista de comandos que se establece como destino. Sin embargo, también hay formas menos obvias en las que esto puede ocurrir: un ID2D1DeviceContext::D rawImage puede hacer referencia a un gráfico de efectos y un nodo del gráfico de efectos puede intentar consumir la lista de comandos de destino. Asegúrese de que las listas de comandos se rellenan correctamente antes de su uso y que las llamadas a ID2D1DeviceContext::SetTarget hacen referencia al destino previsto.