GSoC Final Report: Bookshelf and Tiled Rendering for Evince

Hi Everyone,

It seems like this summer passed by a bit quicker than the rest. I suspect its because of the great time I had, working with you people. Then there was also the week at GUADEC which just flew by.

Now, for the final report for the Google Summer of Code, here is a quick summary of the work that has been done over the summer.

For the Google Summer of Code, I had set up an Evince repo on Gitorious and all the code can be found on it – here. There were two parts to my Google Summer of Code project, and I’ll summarise the work done on both separately as they are quite independent of each other.

Bookshelf-like view for recent documents

  • This has been discussed in Bug 633501 and the brave can head over to the ‘recentView‘ branch on my Gitorious repo to try it out.
  • Sadly, I could not get it ready for 3.10 release since some some changes are needed in the implementation. I had to move on to tiled rendering since that is considerably more important.

Support for tiled rendering

  • The need for this was due to Bug 303365 – increase zooming level
  • The latest implementation, can be tried out from the ‘tiling_clean‘ branch of my Gitorious repo.
  • Rotations, selections, and all the various modes – Dual / Single, Continous/Non-continuous are supported.
  • Some features like preloading need to be reworked as it would work a bit differently for tiles. I have worked on it, in the ‘tiling_clean_experimental‘ branch, but it isn’t complete.
  • Similarly, now that we can render tiles, the limit for maximum zoom needs to be decided differently.
  • Presently, in the implementation, the tile sizes are small. However, in practice they will be at least as big as the screen size. So, some logic needs to be decided for setting the tile size.

Screenshot of page 297 of PDFReference viewed in EvinceScreenshot of page 297 of PDFReference viewed in EvinceIn the above screenshot we can see Evince displaying a page at a quite high zoom level with reasonable memory usage.

Well, that’s pretty much what I’ve been upto, over the summer. A more detailed report can be found on my GSoC Project’s wiki page. I will surely be sticking around and plan to get the work merged in 3.12. With the help from all you people, this Google Summer of Code has been a unique experience for me.

I would like to conclude by thanking the GNOME Foundation for trusting me with this project, and also for the incredible experience I had at GUADEC 2013. Looking forward to seeing all of you again, next year at Strasbourg!

GNOME Foundation sponsorship badge

Thanks to the GNOME Foundation!