View Single Post
Old 10-20-2023, 11:14 AM   #11
Szybet
Connoisseur
Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.Szybet can teach chickens to fly.
 
Posts: 90
Karma: 3892
Join Date: Feb 2022
Device: Kobo nia
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

Last edited by Szybet; 02-15-2024 at 03:39 PM. Reason: typo
Szybet is offline   Reply With Quote