Untitled
unknown
plain_text
5 months ago
1.5 kB
4
Indexable
In [70]: class Screenshot_WindowsGraphicsCapture: ...: def __init__(self, hwnd: HWND) -> None: ...: self.device = get_direct3d_device() ...: self.item = create_for_window(hwnd) ...: ...: async def get_frame(self) -> cv2.Mat: ...: event_loop = asyncio.get_running_loop() ...: # create frame pool ...: self.frame_pool = Direct3D11CaptureFramePool.create_free_threaded( ...: self.device, ...: DirectXPixelFormat.B8_G8_R8_A8_UINT_NORMALIZED, ...: 2, ...: self.item.size, ...: ) ...: # create capture session ...: self.session = self.frame_pool.create_capture_session(self.item) ...: self.session.is_border_required = False ...: self.session.is_cursor_capture_enabled = False ...: ...: # callback ...: def frame_arrived_callback( ...: frame_pool: Direct3D11CaptureFramePool, event_args: Object ...: ): ...: frame = frame_pool.try_get_next_frame() ...: print(frame) ...: ...: # set callback ...: self.frame_pool.add_frame_arrived( ...: lambda fp, o: event_loop.call_soon_threadsafe(frame_arrived_callback, fp, o) ...: ) ...: ...: # start capture ...: self.session.start_capture()
Editor is loading...
Leave a Comment