It's video 2 then, thanks
Well let's share what made it work
Here is the main sanki commit:
https://github.com/Szybet/sanki/comm...61e09a21fa3b12
Description:
I put the whole qmainwindow ( Maybe there are other ways to do that, propably - findng this one took me 3 weeks ) inside of QGraphicsView which has QGraphicsView::MinimalViewportUpdate:
https://doc.qt.io/qt-6/qgraphicsview...pdateMode-enum
TLDR: It uses Qt built in graphics class and its function to minimase screen updates to save resources for the whole app - which is perfect for eink, because we don't want too much refreshes.
Example: If we change text of a widget, the whole widget text area is gonna update, which can cause unnecessarily using a full screen waveform mode, which will flash. This makes it update only the Rectangle of the text inside of it.
Problems ( found till now... ):
- QMainwindow cannot be added to a layout anymore, it refuses: Just use qwidget
- QDialogs aren't using this render, they cause even more flashing by using full screen flashing: Manually steer flashing option to avoid this
- QGestures are a lot harder to make work, took me 4 hours: Nowyou can just copy the code to make it work
- other code related issues described in sanki source code, can be worked with
Conclusions:
- Worth adding as an option to a new app, to make it work from the ground app, if an app uses too much qdialogs, it's code base is massive then it's not worth it ( InkBox )
- By setting flashing platform option and updateEnabled to a widget manually the result is pretty similar to this
- You can use this only for certain parts in the application, it's not needed for a whole app.
- Could enable zooming in and out of the whole application ( accessibility )
Funny:
I found out Qt has a built in in app window system? This could enable making a lightweight eink window manager more eassly ( at least for Qt apps, for others you would need to create artificiall framebuffers to imit the screen )
Here is the video of it:
Another discord download link ;p