Delen via


D1120: Ongeldige poging om bitmap te tekenen

Een bewerking is mislukt omdat de bitmap de optie D2D1_BITMAP_OPTIONS_CANNOT_DRAW heeft.

 

Mogelijke oorzaken

Dit bericht treedt op wanneer een toepassing probeert een bitmap te tekenen die is gemarkeerd met D2D1_BITMAP_OPTIONS_CANNOT_DRAW. Dit omvat directe aanroepen naar DrawBitmap, evenals de tekening van primitieven met behulp van een bitmapborstel.

Mogelijke oplossingen

De vlag CANNOT_DRAW wordt gebruikt voor het correct aantekenen van resources die alleen kunnen worden gebruikt als doelen, zoals backbuffers voor wisselketens. Het is echter ook toegestaan om de CANNOT_DRAW vlag voor sommige doel bitmaps weg te laten als ze ook als bron kunnen worden gebruikt. Als dit het geval is, laat u de CANNOT_DRAW vlag weg. Als de bitmap moet worden geannoteerd met CANNOT_DRAW vanwege het exclusieve gebruik als doel of om CPU-vergrendeling mogelijk te maken, kunt u overwegen een faseringspatroon te gebruiken met dezelfde grootte als de gewenste bron, maar zonder de CANNOT_DRAW aanduiding. Kopieer naar het faseringspatroon met id3D11DeviceContext::CopyResource en gebruik het faseringspatroon als bron voor de tekenbewerking. Het gebruik van een faseringspatroon leidt tot gevolgen voor de prestaties; ze kunnen acceptabel zijn als de bron bitmap niet vaak verandert.