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 复制到过渡纹理,并使用暂存纹理作为绘图操作的源。 过渡纹理的使用会产生性能影响:如果源位图不经常更改,则它们可能是可接受的。