windows — Direct2D / внеэкранный рендеринг с использованием растрового изображения

Я уже реализовал приложение Direct2D для настольного приложения Windows, используя C ++, где я показываю графические результаты (с точками, линиями и эллипсами) во время моделирования. Я сохраняю буфер для хранения значений симуляции до тех пор, пока симуляция продолжается, и каждый интервал времени я просто отображаю значения. Сейчас ситуация такова, я рисую прямо на Hwnd (ID2D1HwndRenderTarget) лайк

pRenderTarget->BeginDraw()

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

pRenderTarget->EndDraw()

Теперь я хочу использовать внеэкранный рендеринг / рисование с использованием растрового изображения, поскольку мне нужно сохранить растровое изображение как изображение на компьютере (эквивалентно снятию / захвату снимка экрана для сохранения результатов моделирования). Как мне поступить в этом случае (с / без Direct2D IWICBitmapFactory — для последующего захвата экрана)?

  1. Создайте ID2D1HwndRenderTarget pHwndRenderTarget — с помощью pD2DFactory->CreateHwndRenderTarget()

  2. Создайте ID2D1BitmapFactory pBitmapFactory — с помощью pHwndRenderTarget->CreateCompatibleRenderTarget()

  3. Создать пустое растровое изображение ID2D1Bitmap ID2D1Bitmap pBmp — с помощью pBitmapFactory->CreateBitmap()

  4. ?? На этом растровом изображении я должен рисовать линии? если нет, то где рисовать линии

  5. В конце концов, между которыми BeginDraw() а также EndDraw()Я должен разместить растровое изображение?

  6. Позже, в какой-то момент, я сделаю снимок экрана этого растрового изображения. Без IWICBitmapFactory могу ли я достичь этого? Любые примеры кода будут оценены.

7

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]