跟踪Direct2D渲染

时间:2014-03-31 12:30:32

标签: directx win32gui direct2d

默认情况下,在EndDraw功能之后,屏幕上会显示Direct2D图片。

出于调试目的,我需要在绘制任何绘图基元后在屏幕上显示图片。

这在Direct2D中是否可行? 在GDI中出于这些目的,我使用了GdiSetBatchLimit(1)

2 个答案:

答案 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.
}