directx input done right