Bug 344081 - support incremental rendering of content
Summary: support incremental rendering of content
Status: RESOLVED FIXED
Alias: None
Product: okular
Classification: Applications
Component: PDF backend (show other bugs)
Version: unspecified
Platform: Kubuntu Linux
: NOR wishlist
Target Milestone: ---
Assignee: Okular developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-02-12 14:04 UTC by Leo Savernik
Modified: 2017-11-09 16:29 UTC (History)
1 user (show)

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Leo Savernik 2015-02-12 14:04:08 UTC
When Okular is loading a new page, it usually takes seconds before the final rendering appears, showing nothing but a diagonal cross across the page and sometimes a magnified version of the thumbnail preview -- interrupting the flow of reading.

However, this is not too useable as you cannot start reading the content unless it is fully rendered.

Acrobat Reader and KGhostview take another way which not only makes them "feel" faster but also enables the user to start reading before all of the page has been rendered:

They immediately output the rendering to the screen, even if the page is still being processed.

As most pdf-documents are laid out in reading-order, the upper part of the page (usually the position one starts reading, at least LTR-readers) will be shown virtually immediately, thus enabling the reader to start reading, while the later parts are incrementally displayed as rendering proceeds.

It is to be expected that the reader needs much longer to read the text than the algorithm needs to process the page, hence incremental rendering would be worthwile.

Therefore I propose that Okular be enhanced with an incremental rendering mode, just like kghostview and AR do.

Reproducible: Always




Also applied to kpdf, see bug 130643
Comment 1 Albert Astals Cid 2017-11-09 16:29:05 UTC
Git commit a2f5560c007648ffe753851fbb575d5c8afee6e1 by Albert Astals Cid.
Committed on 09/11/2017 at 16:28.
Pushed by aacid into branch 'master'.

PDF: Support the poppler 0.62 renderToImage with update callback

Summary:
This way pages that take more than 500ms to render get updated every so often so that the
user can see that the program didn't hang, it's just that it's taking long to render

Tags:
incremental rendering, partial updates

Subscribers: #okular

Tags: #okular

Differential Revision: https://phabricator.kde.org/D8379

M  +5    -0    core/document.cpp
M  +22   -0    core/generator.cpp
M  +25   -0    core/generator.h
M  +4    -0    core/generator_p.h
M  +17   -5    core/page.cpp
M  +12   -1    generators/poppler/CMakeLists.txt
M  +3    -0    generators/poppler/config-okular-poppler.h.cmake
M  +66   -2    generators/poppler/generator_pdf.cpp

https://commits.kde.org/okular/a2f5560c007648ffe753851fbb575d5c8afee6e1