Я уже реализовал приложение Direct2D для настольного приложения Windows, используя C ++, где я показываю графические результаты (с точками, линиями и эллипсами) во время моделирования. Я сохраняю буфер для хранения значений симуляции до тех пор, пока симуляция продолжается, и каждый интервал времени я просто отображаю значения. Сейчас ситуация такова, я рисую прямо на Hwnd
(ID2D1HwndRenderTarget
) лайк
pRenderTarget->BeginDraw()
for(values of simulation results)
pRenderTarget->DrawLine(....)
pRenderTarget->EndDraw()
Теперь я хочу использовать внеэкранный рендеринг / рисование с использованием растрового изображения, поскольку мне нужно сохранить растровое изображение как изображение на компьютере (эквивалентно снятию / захвату снимка экрана для сохранения результатов моделирования). Как мне поступить в этом случае (с / без Direct2D IWICBitmapFactory
— для последующего захвата экрана)?
Создайте ID2D1HwndRenderTarget pHwndRenderTarget
— с помощью pD2DFactory->CreateHwndRenderTarget()
Создайте ID2D1BitmapFactory pBitmapFactory
— с помощью pHwndRenderTarget->CreateCompatibleRenderTarget()
Создать пустое растровое изображение ID2D1Bitmap ID2D1Bitmap pBmp
— с помощью pBitmapFactory->CreateBitmap()
?? На этом растровом изображении я должен рисовать линии? если нет, то где рисовать линии
В конце концов, между которыми BeginDraw()
а также EndDraw()
Я должен разместить растровое изображение?
Позже, в какой-то момент, я сделаю снимок экрана этого растрового изображения. Без IWICBitmapFactory
могу ли я достичь этого? Любые примеры кода будут оценены.
Задача ещё не решена.