v0.0.6: drop GDI/GetDC cursor path + extract shared dda_capture crate. The cursor=True bottleneck (47 fps on realistic moving content because IDXGISurface1::GetDC stalled behind DWM composition work) is fixed by compositing the cursor in software using DDA's own PointerPosition + GetFramePointerShape, with three blend modes: color alpha-blend, masked-color XOR, and monochrome AND+XOR for the inverting I-beam. mover.py cursor=True went from 47 fps to ~175 fps, matching cursor=False to within noise. Same code now lives in the shared dda_capture crate at github.com/zen-ham/dda_capture so zentape (and any future DDA-using Rust consumer) can pull it in directly. Bench rewrite too: controlled-bench harness with HWND save+restore, subprocess-per-capturer isolation, median of 3 runs; removed the bettercam/dxcam .grab() rows because the tight-loop mode isn't real usage. New honest perf table: rustcam ~175 fps both stimuli, bettercam.start ~148-153, dxcam.start ~157-159, mss ~54-56.