默认情况下,在功能EndDraw之后,屏幕上会显示Direct2D图片。
出于调试目的,我需要在绘制任何绘制基元后在屏幕上显示该图片。
这在Direct2D中是可能的吗?在GDI中,出于这些目的,我使用了GdiSetBatchLimit(1)
发布于 2014-04-02 21:55:00
这不可能。你需要对每个原语进行BeginDraw/EndDraw。如果你有图层或剪辑,你也需要在每个图元周围设置和删除它们。
Drawing operations can only be issued between a BeginDraw and EndDraw call.
发布于 2014-04-11 14:28:41
您可以在D2D目标(Direct2D and GDI Interoperability Overview)上呈现GDI内容。
或者你可以尝试一个循环,在Begin/ end中封装一个原语(然后是两个,然后是三个,直到你的绘图代码结束),就像下面的伪代码一样:
for (i=0; i<number of primitives; i++)
{
Begindraw;
Drawprimitive0;
if (i == 0)
{
EndDraw();
continue;
}
Drawprimitive1;
if (i == 1)
{
EndDraw();
continue;
}
Drawprimitive2;
if (i == 2)
{
EndDraw();
continue;
}
etc.
}https://stackoverflow.com/questions/22761594
复制相似问题