Date: 04.06.2020 10:42:01
Да, можете, почему бы и нет? Например так:
IDirect3DSurface9 *surface = nullptr; device->CreateOffscreenPlainSurface(W, H, D3DFMT_A8R8G8B8, D3DPOOL_SYSTEMMEM, &surface, nullptr); IDirect3DSurface9 *buffer = nullptr; device->GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &buffer); HDC targetdc = NULL; surface->GetDC(&targetdc); HDC scrdc = GetDC(srcwnd); BOOL res = BitBlt(targetdc, 0, 0, W, H, scrdc, 0, 0, SRCCOPY); ReleaseDC(srcwnd, scrdc); surface->ReleaseDC(targetdc); device->UpdateSurface(surface, NULL, buffer, NULL); device->Present(NULL, NULL, NULL, NULL);
где device - указатель на устройство IDirect3DDevice9 *
srcwnd - окно, которые вы копируете
W,H - ширина и высота копируемого фрагмента
изображение 1200х800 копируется за 17-18 мс
Автор: VadimTagil