D1159 : Topologie de liste de commandes non valide
Une liste de commandes ne peut pas référencer des effets qui font partie des graphiques d’effets qui consomment la liste de commandes.
Causes possibles
Lors du remplissage d’une liste de commandes, une application peut inclure un appel à ID2D1DeviceContext::D rawImage. ID2D1DeviceContext::D rawImage peut être utilisé pour dessiner des bitmaps, des effets ou des listes de commandes. Par conséquent, il est possible syntaxiquement qu’un appel ID2D1DeviceContext::D rawImage tente de dessiner une liste de commandes alors que cette même liste de commandes est définie comme cible. Toutefois, l’autoréférence des listes de commandes de cette manière n’est pas valide. Direct2D identifie les cas dans lesquels cela se produit et signale une erreur, et la couche de débogage génère ce message.
Correctifs possibles
Lors du remplissage d’une liste de commandes, vérifiez qu’un contexte d’appareil n’émet aucune opération qui consomme cette même liste de commandes. La façon la plus évidente d’appeler ID2D1DeviceContext::D rawImage avec la même liste de commandes que la cible. Toutefois, il existe également des façons moins évidentes de se produire : un ID2D1DeviceContext::D rawImage peut faire référence à un graphique d’effets, et un nœud du graphique d’effets peut tenter d’utiliser la liste de commandes cible. Vérifiez que les listes de commandes sont remplies correctement avant l’utilisation et que les appels à ID2D1DeviceContext::SetTarget font référence à la cible prévue.