GDI InvertRect的Direct2D等效项

时间:2018-12-12 09:59:00

标签: winapi gdi direct2d

我需要将相对复杂的程序的GDI方法调用转换为等效的Direct2D代码。对于大多数GDI功能,我可以编写等效的代码。但是我还没有找到InvertRect的任何等效代码。由于绘图是动态完成的,因此我无法创建WICBitmap(否则将成为性能瓶颈)以获取像素并反转颜色。

有人可以建议我一个好的解决方案吗?

2 个答案:

答案 0 :(得分:1)

如果您想反转已经绘制的区域,我相信您可以使用CreateEffect(CLSID_D2D1Flood)来创建用纯色填充的效果,然后将效果的color参数设置为白色,然后使用{{ 1}},并使用ID2D1DeviceContext::DrawImage作为D2D1_COMPOSITE_MODE_XOR参数。

(现在我想到了,您可能还需要使用透明白 ...假设XOR也可以在alpha通道上运行。您可能需要进行实验。而且,它可能不会工作,我还没有尝试过。)

答案 1 :(得分:-1)

您可以使用Direct2D Effect

Built-in Effects,您可以使用Invert effect