View Single Post
Old 10-20-2010, 08:56 AM   #42
Dzha
Member
Dzha began at the beginning.
 
Posts: 15
Karma: 10
Join Date: Aug 2010
Device: kindle dxg
@darron
I hope you are still notified of new messages on this thread.

We are using your screen plugin for the new kindle port of FBReader and currently trying to improve the screen refresh. At this moment we can run the plugin either the flashing mode or in non-flashing mode. I've come up with the idea of having the plugin that will combine them, i.e. on page turning event the app will do the full screen flashing update, in all other cases it will only do partial. If you look at original Kindle firmware you will notice similar behavior, most artifacts are accumulated on the screen if the flashing refresh is not performed when the page has been turned over a few times.
So the app should tell the plugin what kind of refresh to perform. I've only started using qt a few weeks ago, so excuse me if I am not seeing the obvious:! My current idea is the following:
- inherit a new class from QLinuxFbScreen and create blitFull (similar to blit)
- overload blitFull in KindleScreen class with the function that will call ioctl with full refresh
- inherit a new class from QWidget and create fullRepaint() (similar to repaint()) and paintEventFull() (similar to paintEvent())
- inherit a new class from QPainter and link that to blitFull (whole link between repaint of the widget and drawing classes is unclear for me at this point, but I will figure this out )

A widget derived from the new widget class should have repaint() and fullRepaint() available and they will eventually perform partial/full refresh.
Well the whole design looks a little complicated and I am sure there is a simple and straightforward way to accomplish the same task.

What do you think?

Last edited by Dzha; 10-20-2010 at 08:58 AM.
Dzha is offline   Reply With Quote