我已经使用C ++为Windows桌面应用程序实现了Direct2D应用程序,在模拟过程中我会显示图形结果(包括点,线和椭圆)。只要模拟仍在运行,我就会保留一个缓冲区来存储模拟值,每个时间间隔我只是绘制值。现在,情况是,我直接在Hwnd
(ID2D1HwndRenderTarget
)上绘制,如
pRenderTarget->BeginDraw()
for(values of simulation results)
pRenderTarget->DrawLine(....)
pRenderTarget->EndDraw()
现在我想使用Bitmap进行屏幕外渲染/绘图,因为我需要将位图作为图像存储在计算机上(相当于拍摄/捕获截图以存储模拟结果)。在这种情况下我应该如何处理(使用/不使用Direct2D IWICBitmapFactory
- 以便以后进行屏幕捕获)?
使用ID2D1HwndRenderTarget pHwndRenderTarget
pD2DFactory->CreateHwndRenderTarget()
使用ID2D1BitmapFactory pBitmapFactory
pHwndRenderTarget->CreateCompatibleRenderTarget()
使用ID2D1Bitmap ID2D1Bitmap pBmp
pBitmapFactory->CreateBitmap()
??在这个位图上我应该画线吗?如果没有,我应该在哪里画线
最后,在BeginDraw()
和EndDraw()
之间,我应该放置位图吗?
稍后,我会捕获此位图的屏幕截图。没有IWICBitmapFactory
我可以实现吗?任何代码示例都将受到赞赏。