默認情況下,Direct2D圖片在功能EndDraw後顯示在屏幕上。跟蹤Direct2D渲染
爲了調試的目的,我需要在繪製任何繪製圖元后在屏幕上顯示圖片。
這是可能的Direct2D? 在GDI用於這些目的我使用GdiSetBatchLimit(1)
默認情況下,Direct2D圖片在功能EndDraw後顯示在屏幕上。跟蹤Direct2D渲染
爲了調試的目的,我需要在繪製任何繪製圖元后在屏幕上顯示圖片。
這是可能的Direct2D? 在GDI用於這些目的我使用GdiSetBatchLimit(1)
這是不可能的。你需要在每個基元周圍的BeginDraw/EndDraw。如果您有圖層或剪輯,則需要在每個基元周圍設置和移除它們。
Drawing operations can only be issued between a BeginDraw and EndDraw call.
可以渲染在D2D目標GDI含量(Direct2D and GDI Interoperability Overview)
要不然你可以用一個循環,將封裝一個原語(然後二,然後是三個,直到你的繪圖結束嘗試代碼)在開始/結束。就像下面的僞代碼:
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.
}
雖然它不會顯示在屏幕上,您可以通過定期調用來隔離錯誤['ID2D1RenderTarget :: Flush'(http://msdn.microsoft。 COM/EN-US /庫/窗/臺式機/ dd316801%28V = vs.85%29.aspx)。 –