Condividi tramite


D1159: topologia dell'elenco di comandi non valida

Un elenco di comandi non può fare riferimento agli effetti che fanno parte dei grafici degli effetti che utilizzano l'elenco di comandi.

 

Possibili cause

Durante il popolamento di un elenco di comandi, un'applicazione può includere una chiamata a ID2D1DeviceContext::D rawImage. ID2D1DeviceContext::D rawImage può essere usato per disegnare bitmap, effetti o elenchi di comandi. Di conseguenza, è possibile sintatticamente per una chiamata ID2D1DeviceContext::D rawImage per tentare di disegnare un elenco di comandi mentre lo stesso elenco di comandi è impostato come destinazione. Tuttavia, gli elenchi di comandi di riferimento automatico in questo modo non sono validi. Direct2D identificherà i casi in cui si verifica e segnala un errore e il livello di debug restituirà questo messaggio.

Possibili correzioni

Durante il popolamento di un elenco di comandi, assicurarsi che un contesto di dispositivo non eseva alcuna operazione che utilizza lo stesso elenco di comandi. Il modo più ovvio in cui ciò può verificarsi consiste nel chiamare ID2D1DeviceContext::D rawImage con lo stesso elenco di comandi impostato come destinazione. Tuttavia, esistono anche modi meno evidenti in cui ciò può verificarsi: un ID2D1DeviceContext::D rawImage può fare riferimento a un grafico degli effetti e un nodo nel grafico degli effetti può tentare di utilizzare l'elenco dei comandi di destinazione. Assicurarsi che gli elenchi di comandi vengano popolati correttamente prima dell'uso e che le chiamate a ID2D1DeviceContext::SetTarget facciano riferimento alla destinazione desiderata.