Direct2D / C ++ - 使用位图进行屏幕外渲染

时间:2014-08-08 09:14:08

标签: c++ windows direct2d off-screen

我已经使用C ++为Windows桌面应用程序实现了Direct2D应用程序,在模拟过程中我会显示图形结果(包括点,线和椭圆)。只要模拟仍在运行,我就会保留一个缓冲区来存储模拟值,每个时间间隔我只是绘制值。现在,情况是,我直接在HwndID2D1HwndRenderTarget)上绘制,如

pRenderTarget->BeginDraw() 

for(values of simulation results)
pRenderTarget->DrawLine(....)

pRenderTarget->EndDraw()

现在我想使用Bitmap进行屏幕外渲染/绘图,因为我需要将位图作为图像存储在计算机上(相当于拍摄/捕获截图以存储模拟结果)。在这种情况下我应该如何处理(使用/不使用Direct2D IWICBitmapFactory - 以便以后进行屏幕捕获)?

  1. 使用ID2D1HwndRenderTarget pHwndRenderTarget

  2. 创建pD2DFactory->CreateHwndRenderTarget()
  3. 使用ID2D1BitmapFactory pBitmapFactory

  4. 创建pHwndRenderTarget->CreateCompatibleRenderTarget()
  5. 使用ID2D1Bitmap ID2D1Bitmap pBmp

  6. 创建空位图pBitmapFactory->CreateBitmap()
  7. ??在这个位图上我应该画线吗?如果没有,我应该在哪里画线

  8. 最后,在BeginDraw()EndDraw()之间,我应该放置位图吗?

  9. 稍后,我会捕获此位图的屏幕截图。没有IWICBitmapFactory我可以实现吗?任何代码示例都将受到赞赏。

0 个答案:

没有答案