Delen via


D1159: Ongeldige commandlisttopologie

Een opdrachtlijst kan niet verwijzen naar effecten die deel uitmaken van effectgrafieken die de opdrachtlijst gebruiken.

 

Mogelijke oorzaken

Tijdens het invullen van een opdrachtlijst kan een toepassing een aanroep naar ID2D1DeviceContext::D rawImage bevatten. ID2D1DeviceContext::D rawImage kan worden gebruikt om bitmaps, effecten of opdrachtlijsten te tekenen. Als gevolg hiervan is het syntactisch mogelijk voor een ID2D1DeviceContext::D rawImage-aanroep om een opdrachtlijst te tekenen terwijl dezelfde opdrachtlijst is ingesteld als een doel. Zelfverwijzing van opdrachtlijsten op deze manier is echter niet geldig. Direct2D identificeert gevallen waarin dit optreedt en rapporteert een fout, en de foutopsporingslaag voert dit bericht uit.

Mogelijke oplossingen

Zorg er tijdens het vullen van een opdrachtlijst voor dat een apparaatcontext geen bewerkingen uitgeeft die dezelfde opdrachtlijst gebruiken. De meest voor de hand liggende manier waarop dit kan gebeuren is het aanroepen van ID2D1DeviceContext::D rawImage met dezelfde opdrachtlijst die is ingesteld als het doel. Er zijn echter ook minder duidelijke manieren waarop dit kan gebeuren: een ID2D1DeviceContext::D rawImage kan verwijzen naar een effectgrafiek en één knooppunt in de effectgrafiek kan proberen de lijst met doelopdrachten te gebruiken. Zorg ervoor dat de opdrachtlijsten correct zijn ingevuld voordat u deze gebruikt en dat aanroepen naar ID2D1DeviceContext::SetTarget verwijzen naar het beoogde doel.