D1120: Ungültiger Versuch, Bitmap zu zeichnen

Ein Vorgang ist fehlgeschlagen, da die Bitmap über die Option D2D1_BITMAP_OPTIONS_CANNOT_DRAW verfügt.

 

Mögliche Ursachen

Diese Meldung tritt auf, wenn eine Anwendung versucht, eine Bitmap zu zeichnen, die mit D2D1_BITMAP_OPTIONS_CANNOT_DRAW gekennzeichnet ist. Dies umfasst direkte Aufrufe von DrawBitmap sowie das Zeichnen von Grundtypen mit einem Bitmappinsel.

Mögliche Korrekturen

Das flag CANNOT_DRAW wird verwendet, um Ressourcen ordnungsgemäß zu kommentieren, die nur als Ziele verwendet werden können, z. B. Swapchain-Backbuffer. Es ist jedoch auch zulässig, das CANNOT_DRAW-Flag für einige Zielbits wegzulassen, wenn sie auch als Quelle verwendet werden können. Wenn dies der Fall ist, lassen Sie einfach das Flag CANNOT_DRAW weg. Wenn die Bitmap aufgrund ihrer exklusiven Verwendung als Ziel oder zur Zulässigkeit der CPU-Sperrbarkeit mit CANNOT_DRAW versehen werden muss, sollten Sie eine Stagingtextur mit der gleichen Größe wie die gewünschte Quelle, aber ohne die bezeichnung CANNOT_DRAW verwenden. Kopieren Sie mit ID3D11DeviceContext::CopyResource in die Stagingtextur, und verwenden Sie die Stagingtextur als Quelle für den Zeichnungsvorgang. Die Verwendung einer Stagingtextur führt zu Leistungsauswirkungen; Sie können akzeptabel sein, wenn sich die Quellbitbitbitbit nicht häufig ändert.