默认情况下,在EndDraw功能之后,屏幕上会显示Direct2D图片。
出于调试目的,我需要在绘制任何绘图基元后在屏幕上显示图片。
这在Direct2D中是否可行? 在GDI中出于这些目的,我使用了GdiSetBatchLimit(1)
答案 0 :(得分:0)
这是不可能的。每个基元周围都需要BeginDraw / EndDraw。如果您有图层或剪辑,则需要在每个图元周围设置和删除它们。
Drawing operations can only be issued between a BeginDraw and EndDraw call.
答案 1 :(得分:0)
您可以在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.
}