D1120:绘制位图的尝试无效

作失败,因为位图具有D2D1_BITMAP_OPTIONS_CANNOT_DRAW选项。

 

可能的原因

当应用程序尝试绘制带有D2D1_BITMAP_OPTIONS_CANNOT_DRAW标记的位图时,将发生此消息。 这包括直接调用 DrawBitmap,以及使用位图画笔绘制基元。

可能的修复方法

CANNOT_DRAW标志用于正确批注仅可用作目标的资源,例如交换链后退器。 但是,如果某些目标位图也可用作源,则还允许它省略某些目标位图的CANNOT_DRAW标志。 如果是这种情况,只需省略CANNOT_DRAW标志。 如果位图必须使用CANNOT_DRAW进行批注,因为其独占用途是作为目标或允许 CPU 锁定性,请考虑使用大小与所需源相同的暂存纹理,但没有CANNOT_DRAW指定。 使用 ID3D11DeviceContext::CopyResource 复制到暂存纹理,并使用暂存纹理作为绘图作的源。 使用暂存纹理会产生性能影响;如果源位图不经常更改,则它们可以接受。