Pre-Rendering the next page (for the iLiad)

0 views
Skip to first unread message

Adam B.

unread,
Jan 14, 2008, 4:09:57 PM1/14/08
to FBReader
Again, I'm working on my iLiad port of FBReader.

I'm attempting to speed up the screen refreshes. Right now, it takes
about 2.5 seconds to turn to the next page. While this is usable, it
feels very slow. I'd like to speed this up to the limits of the e-ink
technology.

Right now the doPaint function has the following:

static void doPaint(GtkWidget*, GdkEventExpose *event, gpointer data)
{
// Start Rendering the next page
((ZLGtkViewWidget*)data)->doPaint();
// Turn on the busy LED
erIpcStartClient(ER_BUSYD_CHANNEL, &erbusyChannel);
//Refresh the display after everything has painted
display =
gdk_x11_display_get_xdisplay(gdk_display_get_default());
XSync(display, 1);
dmDisplay(dmCmdPriorUrgent, dmQFull);
//Turn off the busy LED
busySetBusy(erbusyChannel, ccBusyState_Off);
}

However, if I enter "((ZLGtkViewWidget*)data)->doPaint();" at the very
end of this function, the refreshes will be much faster (less than a
second). However, the page displayed on the screen is not what
FBReader believes it is. Paging forward, this is not that big of a
deal, but paging backwards and exiting is problematic.

I wonder if it is possible to put some kind of pre-rendering logic in
the program, so the a page can be ready, but then painted as needed.

Also, I've heard that iRex is willing to send out loaner units to
developers. If you contact them in regards to a proper port, they may
be willing to send out a loaner to a developer for free...

Thanks,

Adam

Adam B.

unread,
Jan 21, 2008, 9:55:48 AM1/21/08
to FBReader
Anyone have any ideas on this?

It seems that the "view()->paint();" line is what is taking the most
time to render on the iLiad. Is this an internal or GTK function? I
seem to be a bit lost in the code when it comes to this.
Reply all
Reply to author
Forward
0 new messages