[okular] [Bug 383943] HiDPI: Rendering glitches near the page boundaries

Albert Astals Cid bugzilla_noreply at kde.org
Wed Jul 17 20:54:39 BST 2019


https://bugs.kde.org/show_bug.cgi?id=383943

Albert Astals Cid <aacid at kde.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |FIXED
      Latest Commit|https://invent.kde.org/kde/ |https://invent.kde.org/kde/
                   |okular/commit/dec6923c56a99 |okular/commit/9b34bfb45eee8
                   |dc7bdf59c890c0ee310fb12fc23 |1bf486c02eaed23d20a1ba68446
             Status|REOPENED                    |RESOLVED

--- Comment #6 from Albert Astals Cid <aacid at kde.org> ---
Git commit 9b34bfb45eee81bf486c02eaed23d20a1ba68446 by Albert Astals Cid, on
behalf of Oliver Sander.
Committed on 17/07/2019 at 19:46.
Pushed by aacid into branch 'Applications/19.08'.

Make page boundary rendering more robust

Okular renders a simple 'shadow' at the right and the bottom of each
page.  The code for this is a bit fragile:  After the page is rendered,
Okular paints a black outline, and then the shadow.  The shadow is
a hand-implemented gradient, painted line by line.  Finally, the
remaining area is painted in the background color.  No pixel is
ever touched twice.  Unfortunately, the code is buggy, and in hidpi /
fractional scaling situations, some pixels are never touched.
This results in rendering glitches as reported in

  https://bugs.kde.org/show_bug.cgi?id=383943

Instead of trying to fix the previous approach, this patch makes the
code more robust by changing the order of the painting operations.
After painting the page, the code now first paints the background,
which is now enlarged to cover everything off the page.  Finally,
the black outline and shadow are drawn on the previously drawn
background.  This makes sures that no pixel is ever left uninitialized.
It also allows to simplify the shadow drawing operation a bit.

M  +47   -35   ui/pageview.cpp

https://invent.kde.org/kde/okular/commit/9b34bfb45eee81bf486c02eaed23d20a1ba68446

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Okular-devel mailing list