[digikam] [Bug 337231] New: use high resolution pixmaps on retina displays [patch]

classic Classic list List threaded Threaded
52 messages Options
123
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Robert Zeller
https://bugs.kde.org/show_bug.cgi?id=337231

Robert Zeller <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |robert.zeller@robert-zeller
                   |                            |.org

--- Comment #20 from Robert Zeller <[hidden email]> ---
This patch that has been introduces into Digikam 4.2.0 has a significant
disadvantage on my system (Linux, openSUSE 13.1, Flat Panel BenQ resolution
1920x1080). When "Preview Load Full Image Size" is set to true, I am getting on
some photos strange patterns in the preview, which vanish only when I am
increasing the preview to 50 or more percent. My photos have a size of 36 Mpx.
Obviously the algorithm that reduces the image to the screen size, creates some
kind of a moiree structure if the underlying picture has a regular pattern e.g.
a brick wall. This did not happen with DK 4.1.0. Also I can confirm the grainy
picture in the preview. These effects disappear if I set "Preview Full Image
Size" to false. BUT in that case I am loosing almost totally the high
resolution of the photos when taking a 100% view. I am downgrading to DK 4.1.0
.

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #21 from Gilles Caulier <[hidden email]> ---
Axel,

Others report in digiKam announcement page are here :

https://www.digikam.org/node/715#comment-20800

Perhaps a solution can to wrap specific code for OSX using pre-processor and
branch older implementation for Linux ?

Note : I cannot reproduce this problem here on Windows, Linux (Mageia), and OSX

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Axel
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #22 from Axel <[hidden email]> ---
Yes, preprocessor branching might be an option, it actually just needs to fix
the scaling factor to 1 to get the old behavior, I think. I am right now a bit
busy, but should be done soon.

The reason of the reported problems might be that the patch relies on the Qt
renderer to scale the pixmap. And that seems to perform very well on Mac OS X,
but I can imagine that some renderers are worse. That might also explain why it
only looks bad under some Linux versions - maybe one uses the native renderer,
another the GL renderer or similar.

Axel

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Veaceslav Munteanu-2
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

Veaceslav Munteanu <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[hidden email]

--- Comment #23 from Veaceslav Munteanu <[hidden email]> ---
*** Bug 338138 has been marked as a duplicate of this bug. ***

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Christoph Feck
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

Christoph Feck <[hidden email]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[hidden email]

--- Comment #24 from Christoph Feck <[hidden email]> ---
Should we reopen this bug as a reminder? Or reopen bug 338138?

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #25 from Gilles Caulier <[hidden email]> ---
Christoph,

You are right.

I reopened bug 338138 which is more appropriate...

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #26 from Gilles Caulier <[hidden email]> ---
Axel,

We waiting your patch to reopened bug 338138 including preprocessor wrap for
OSX.

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Marcel Wiesweg
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #27 from Marcel Wiesweg <[hidden email]> ---
You mean that at some place you call drawPixmap with a target rectangle that
has a different size than the pixmap? And that is necessary for proper display
on MacOS?
Indeed, on Linux we absolutely avoid that technique. Pixmaps are never scaled,
images are scaled as DImg or QImage and converted to QPixmap readily scaled.

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Axel
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #28 from Axel <[hidden email]> ---
Yes, indeed, see
http://blog.qt.digia.com/blog/2013/04/25/retina-display-support-for-mac-os-ios-and-x11/
. Basically, MacOSX reports only have of the physical resolution on retina
displays, so that applications that were not build for high resolution screens
work. At the same time, the system's renderer accepts higher resolution bitmaps
and draws them at full resolution.

There is something to that approach, since e.g. Chrome under Linux is hardly
usable on a HiDPI monitor, as the menu font pixel sizes are fixed. Most KDE
applications work fairly well, but even there I encounter pixel-based layout
from time to time. Often, menus are too small to display all text, and so on.

The problem is that you are depending on the backend scaling. Apple's
implementation does a pretty good job, but it seems some Linux backends don't.

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Axel
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #29 from Axel <[hidden email]> ---
Created attachment 88275
  --> https://bugs.kde.org/attachment.cgi?id=88275&action=edit
patch to use the Qt scaling only in MacOSX

Here is a patch that should use pixmaps of logical screen pixel size for any
other platform than MacOSX. It simply sets the pixel ratio to 1 for non-MacOSX,
which results in the old behavior. If we ever get digikam on iOS/Android, we
would need some more complex logic, though...

However, I don't have a Linux box to test. I tested that the introduced define
USE_QT_SCALING works as intended, but cannot really check that it is not set
under Linux. Would be great if someone under Linux can test the patch.

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Robert Zeller
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #30 from Robert Zeller <[hidden email]> ---
Axel,
I would be happy to test the patch on my system (Linux openSUSE 13.1).
Unfortunately I don't know how to apply the patch. I just downloaded
digikam-4.0.0.tar.bz2 from the kde repository, untared it and compiled
the stuff. Can you give me instructions on how to apply the patch ?
Regards,
 Robert

On 08/16/2014 09:31 PM, Axel wrote:

> https://bugs.kde.org/show_bug.cgi?id=337231
>
> --- Comment #29 from Axel <[hidden email]> ---
> Created attachment 88275
>   --> https://bugs.kde.org/attachment.cgi?id=88275&action=edit
> patch to use the Qt scaling only in MacOSX
>
> Here is a patch that should use pixmaps of logical screen pixel size for any
> other platform than MacOSX. It simply sets the pixel ratio to 1 for non-MacOSX,
> which results in the old behavior. If we ever get digikam on iOS/Android, we
> would need some more complex logic, though...
>
> However, I don't have a Linux box to test. I tested that the introduced define
> USE_QT_SCALING works as intended, but cannot really check that it is not set
> under Linux. Would be great if someone under Linux can test the patch.
>

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #31 from Gilles Caulier <[hidden email]> ---
Robert,

The patch must be applied only against current code from git/master (next
4.3.0).

I do it on my core computer used to develop :

[gilles@localhost core]$ pwd
/mnt/devel/GIT/4.x/core
[gilles@localhost core]$ ls -al
total 9100
drwxr-xr-x 14 gilles gilles    4096 août  17 12:09 ./
drwxr-xr-x  9 gilles gilles    4096 août   8 18:54 ../
-rw-rw-r--  1 gilles gilles    4842 août  17 12:05
0001-Use-Qt-scaling-only-under-MacOSX.patch
-rw-r--r--  1 gilles gilles   13544 août  16 18:01 AUTHORS
-rw-r--r--  1 gilles gilles 9012678 août   4 14:39 ChangeLog
drwxr-xr-x  4 gilles gilles    4096 juil. 17 11:06 cmake/
-rw-r--r--  1 gilles gilles   85044 août   8 18:54 CMakeLists.txt
-rw-r--r--  1 gilles gilles   18011 janv.  4  2014 COPYING
-rw-r--r--  1 gilles gilles    1327 janv.  4  2014 COPYING-CMAKE-SCRIPTS
-rw-r--r--  1 gilles gilles   26527 janv.  4  2014 COPYING.LIB
drwxr-xr-x  8 gilles gilles    4096 juil. 17 11:06 data/
drwxr-xr-x  2 gilles gilles    4096 janv.  4  2014 databaseserver/
-rw-r--r--  1 gilles gilles     911 janv.  4  2014 DESIGN
drwxr-xr-x 14 gilles gilles    4096 août  16 14:30 digikam/
drwxr-xr-x  8 gilles gilles    4096 août  17 12:09 .git/
-rw-r--r--  1 gilles gilles      52 janv.  4  2014 .gitignore
-rw-r--r--  1 gilles gilles   17372 mars  24 11:10 HACKING
drwxr-xr-x  7 gilles gilles    4096 mai   10 14:34 imageplugins/
-rw-r--r--  1 gilles gilles      87 janv.  4  2014 INSTALL
drwxr-xr-x  2 gilles gilles    4096 juin   2 14:44 kioslave/
-rw-r--r--  1 gilles gilles      79 janv.  4  2014 .krazy
drwxr-xr-x 18 gilles gilles    4096 janv. 28  2014 libs/
-rw-r--r--  1 gilles gilles     101 janv.  4  2014 Mainpage.dox
-rwxr-xr-x  1 gilles gilles     267 janv.  4  2014 Messages.sh*
-rw-r--r--  1 gilles gilles    1115 août  16 17:32 NEWS
drwxr-xr-x  4 gilles gilles    4096 août   4 14:39 project/
-rw-r--r--  1 gilles gilles    9456 août  16 14:30 README
drwxr-xr-x  5 gilles gilles    4096 août  16 14:30 showfoto/
drwxr-xr-x  8 gilles gilles    4096 juil. 17 11:06 tests/
-rw-r--r--  1 gilles gilles    3073 juil. 17 11:06 TODO
-rw-r--r--  1 gilles gilles     279 janv.  4  2014 TODO.FACE
-rw-r--r--  1 gilles gilles     713 janv.  4  2014 TODO.MYSQLPORT
-rw-r--r--  1 gilles gilles    1348 janv. 14  2014 TODO.TABLEVIEW
-rw-r--r--  1 gilles gilles    2391 janv.  4  2014 TODO.TAGMNGR
drwxr-xr-x 20 gilles gilles    4096 juil. 17 11:06 utilities/
[gilles@localhost core]$ patch -p1 <
0001-Use-Qt-scaling-only-under-MacOSX.patch
patching file CMakeLists.txt
patching file digikam/utils/config-digikam.h.cmake.in
patching file libs/widgets/graphicsview/graphicsdimgitem.cpp
patching file utilities/imageeditor/widgets/imagepreviewitem.cpp
patching file utilities/slideshow/slideshow.cpp
[gilles@localhost core]$

If you want to do it, forget official release tarball and checkout code from
git KDE serveur, as explained here :

https://www.digikam.org/download?q=download/GIT

Note : using last code, you will be able to test fixes quickly and you will use
last improvements/features before official release.

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #32 from Gilles Caulier <[hidden email]> ---
Axel,

Last patch compile and run fine on my Linux box, but as i said in others place,
you original patch never introduce a dysfunction on my computer.

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #33 from Gilles Caulier <[hidden email]> ---
Robert,

I will commit changes in git/mast with Axel patch. Like this you will be able
to run current code with all modification as well...

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #34 from Gilles Caulier <[hidden email]> ---
Git commit 2e03ccdb9319e40b8e40cabea569c8656053171f by Gilles Caulier.
Committed on 17/08/2014 at 10:24.
Pushed by cgilles into branch 'master'.

apply new patch #88275 from Axel Arnold about Retina display support will be
only managed under OSX, not Linux or Windows.
Related: bug 338138

M  +7    -0    CMakeLists.txt
M  +3    -0    digikam/utils/config-digikam.h.cmake.in
M  +5    -0    libs/widgets/graphicsview/graphicsdimgitem.cpp
M  +5    -0    utilities/imageeditor/widgets/imagepreviewitem.cpp
M  +5    -1    utilities/slideshow/slideshow.cpp

http://commits.kde.org/digikam/2e03ccdb9319e40b8e40cabea569c8656053171f

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Robert Zeller
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #35 from Robert Zeller <[hidden email]> ---
Gilles, sounds good to me.
Can I download the patched version somewhere; I mean the complete
patched digikam source code? I would like to use 4.2.0 patched as
production code on my box. Thanks.

Robert

On 08/17/2014 12:24 PM, Gilles Caulier wrote:

> https://bugs.kde.org/show_bug.cgi?id=337231
>
> --- Comment #33 from Gilles Caulier <[hidden email]> ---
> Robert,
>
> I will commit changes in git/mast with Axel patch. Like this you will be able
> to run current code with all modification as well...
>
> Gilles Caulier
>

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Gilles Caulier-4
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #36 from Gilles Caulier <[hidden email]> ---
next 4.3.0 source source is 4.2.0 + some fixes including this one. There is no
huge changes with 4.3.0.

Checkout source code from Git repository, as explained in this page :

https://www.digikam.org/download?q=download/GIT

Gilles Caulier

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Robert Zeller
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #37 from Robert Zeller <[hidden email]> ---
Thanks, I just compiled the patched 4.3.0 on my box (openSUSE 13.1)
without any problems. The strange artifacts and also the grainy preview
are gone away. So I will stay with DK 4.3.0 from git.
On 08/17/2014 03:23 PM, Gilles Caulier wrote:

> https://bugs.kde.org/show_bug.cgi?id=337231
>
> --- Comment #36 from Gilles Caulier <[hidden email]> ---
> next 4.3.0 source source is 4.2.0 + some fixes including this one. There is no
> huge changes with 4.3.0.
>
> Checkout source code from Git repository, as explained in this page :
>
> https://www.digikam.org/download?q=download/GIT
>
> Gilles Caulier
>

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Axel
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #38 from Axel <[hidden email]> ---
Ok, so the problem seems to be the Qt scaling, which sometimes works well and
sometimes doesn't.

Out of curiosity, could the Linux users try out which Qt engine causes the
problem? The engine can be chosen by "export QT_GRAPHICSSYSTEM <system>", where
system is either "native", "raster" or "GL". To get the higher resolution
pixmaps even with my latest patch, just manually define USE_QT_SCALING in
digikam/utils/config-digikam.h.cmake.in.

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
Reply | Threaded
Open this post in threaded view
|

[digikam] [Bug 337231] use high resolution pixmaps on retina displays [patch]

Robert Zeller
In reply to this post by Axel
https://bugs.kde.org/show_bug.cgi?id=337231

--- Comment #39 from Robert Zeller <[hidden email]> ---
Axel, on my system echo $QT_GRAPHICSSYSTEM delivers raster. open GL
(experimental) screws up the kde system.

On 08/17/2014 04:06 PM, Axel wrote:

> https://bugs.kde.org/show_bug.cgi?id=337231
>
> --- Comment #38 from Axel <[hidden email]> ---
> Ok, so the problem seems to be the Qt scaling, which sometimes works well and
> sometimes doesn't.
>
> Out of curiosity, could the Linux users try out which Qt engine causes the
> problem? The engine can be chosen by "export QT_GRAPHICSSYSTEM <system>", where
> system is either "native", "raster" or "GL". To get the higher resolution
> pixmaps even with my latest patch, just manually define USE_QT_SCALING in
> digikam/utils/config-digikam.h.cmake.in.
>

--
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Digikam-devel mailing list
[hidden email]
https://mail.kde.org/mailman/listinfo/digikam-devel
123