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