什么是Direct2d命令模拟OpenGl的SwapBuffers?我在VCL环境中使用它,例如Delphi和CPP Builder。感谢
答案 0 :(得分:1)
d3ddev->Present(NULL, NULL, NULL, NULL);
答案 1 :(得分:1)
有两种方法可以在Direct2D中执行等效操作。最简单的方法是创建ID2D1HwndRenderTarget。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/dd371275(v=vs.85).aspx。您将对D2D1_HWND_RENDER_TARGET_PROPERTIES参数感兴趣。它有一个D2D1_PRESENT_OPTIONS字段,可以根据您想要的行为设置为不同的值。有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/dd368144(v=vs.85).aspx。有了这个,SwapBuffers的粗略等价物是ID2D1RenderTarget :: EndDraw。
另一种选择是使用Direct3D互操作。在这种情况下,您将创建一个DXGI曲面渲染目标。 (我发布了一个指向文档的链接,但我没有足够的StackOverflow信誉来发布两个以上的超链接。谷歌“ID2D1Factory :: CreateDxgiSurfaceRenderTarget”为文档)。这允许您使用Direct2D向曲面发出2D渲染命令,但随后使用Direct3D / DXGI呈现。这更复杂,但为您提供了更大的灵活性。