View Single Post
Old 12-26-2018, 09:12 PM   #483
el-sahef
Junior Member
el-sahef began at the beginning.
 
Posts: 5
Karma: 10
Join Date: Dec 2018
Device: PB 840
First of all thank you for this great application!

It is almost perfect for me. However, there is one thing that I really would like to see added:
Can you include an option to turn the screen completely white between two images when turning to the next or previous image?

I found out that the ghosting discussed in post 279 to 282 is completely eliminated on the pocketbook inkpad 1 when this is done. The page update setting is already set to "full update for every page" but this is not enough. Only when I put a white image between every manga page there was no more ghosting. The ghosting is sometimes really annoying and I would not mind if the page update takes longer when I can get rid of it.

I peeked into the code and I suppose this is the place that would need to be modified:

Code:
void show_image(ibitmap *img) {
	if (img) {
		/* Auto-rotate new images if desired. */
		if (autorot_idx && v.CheckForNewImage(img) &&
		    (layout_mode != LAYOUT_DOUBLE) &&
		    !(QueryGSensor() && GetGlobalOrientation() == -1))
			// If the default orientation is set to 180, use it for portrait
			// on devices that are rotated for left/right-handed use
			rotate_screen((img->width > img->height) ? autorot_idx :
			              (caps.lr_rotate && (default_or == 3)) ? 3: 0);
		v.SetImage(img);
		draw();
		if (!mng.IsBuffered()) {
			mng.Buffering();
			if (do_draw_panel) {
				draw_panel(pagemap);
				PartialUpdate(0, cliprect_height(), ScreenWidth(), PanelHeight());
			}
		}
	}
}
Could you do something like this?

Code:
void show_image(ibitmap *img) {
	if (img) {
		/* Auto-rotate new images if desired. */
		if (autorot_idx && v.CheckForNewImage(img) &&
		    (layout_mode != LAYOUT_DOUBLE) &&
		    !(QueryGSensor() && GetGlobalOrientation() == -1))
			// If the default orientation is set to 180, use it for portrait
			// on devices that are rotated for left/right-handed use
			rotate_screen((img->width > img->height) ? autorot_idx :
			              (caps.lr_rotate && (default_or == 3)) ? 3: 0);
                if(page_update_workaround){    // new config_option
                    v.SetImage(white_img);     // white_img = completely white ibitmap as a constant
                    draw();
                }
                v.SetImage(img);
		draw();
		if (!mng.IsBuffered()) {
			mng.Buffering();
			if (do_draw_panel) {
				draw_panel(pagemap);
				PartialUpdate(0, cliprect_height(), ScreenWidth(), PanelHeight());
			}
		}
	}
}
el-sahef is offline   Reply With Quote