Version 0

Lecture: Okular tiled-based engine

Event_large

When displaying a document Okular used to render the entire page at once, even if only part of the page was shown. For this reason the zoom level was limited to 400% so the memory consumption would remain at sane levels.

This talk will cover how the Okular new tiled-based engine works, from the tiles requisition to how we manage to store and delete cached tiles.

For a long time users asked for more zoom support on Okular[1], however this issue was kind of hard to solve. Since the entire page were rendered despite of the visible region, zooming to a high percentage could use more resources than a user expected of a document viewer. That's why the zoom level was capped at 400%.

The main problem is that we couldn't just allow more zoom and expect things to work fine. As said before, the whole page would be rendered even though a small (and highly zoomed) portion of the page was shown. We couldn't also just render the visible region because scrolling the page would be very expensive, since we wouldn't be saving frequently visited regions.

The solution to that matter was to create a tiled-based engine to work with Okular and manage sections of the page that could be reused. Also the tiled-engine take some care so that the tile rendering is smooth and unnoticed by the user.

In this talk I plan to show how the tiled-engine works and how we manage to save already visited tiles and remove less visited ones to lower memory consumption.

[1] https://bugs.kde.org/show_bug.cgi?id=148527

Info

Day: 2013-07-14
Start time: 17:10
Duration: 00:30
Track: New Ideas

Links

Files

Feedback

Click here to let us know how you liked this event.