funkey / recept

Pen event interception for line smoothing on the reMarkable 2 tablet
MIT License
163 stars 13 forks source link

[Proposed Improvement] Post- instead of Pre-processing #10

Open giorgio-arena opened 3 years ago

giorgio-arena commented 3 years ago

Hi all, and thank you so much for this great software that you're making available for all of us :)

I was thinking about a way to eliminate the delay completely (sort of) while still retaining the desired smoothness, and that's how it would work.

The algorithm I had in mind would get the raw pen events, print them (retaining the jags), and at the same time save their info in memory. Once N events have been cached and printed, another thread (or process) in parallel would start, compute what it needs to compute with those N events and redraw only that part of the screen. All while the main thread/process still collects and draws the raw strokes.

Doing this way, the latency should roughly stay the same and the jags should only be present for a small amount of time after they've been drawn.

I don't know how feasible that would be, but in theory it should work, and it's a solution I would personally adopt in order to have a super clean result without sacrificing latency (if it takes 1s to update what I've written before I don't mind, I'm focused on what I'm writing right now and I'd like a super clean final result)

Let me know what you think and thanks again :)

funkey commented 3 years ago

Hi @giorgio-arena, this would indeed be the best solution! Unfortunately, we would need to have access to xochitl's source code to do that, which reMarkable is not releasing (yet?).