Reimplemented DXGrab with improvements; it no longer depends on