Enable HiDPI mode on OSX

Bug #1530209 reported by RJ Skerry-Ryan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mixxx
Fix Released
Low
RJ Skerry-Ryan

Bug Description

RJ Skerry-Ryan (rryan)
Changed in mixxx:
milestone: none → 2.0.1
status: New → Fix Committed
assignee: nobody → RJ Ryan (rryan)
importance: Undecided → Low
Revision history for this message
Daniel Schürmann (daschuer) wrote :

Why is there a need for this change? Where comes the demand from?
For me this looks like an odd short term solution.

Mac OS tries hard to display the applications as desired. The desired Mixxx resolution is tested and designed for up to HD.
So It is desired that one Mixxx pixel is diplayed on 4 pixel on a HiDPI display. (the legacy mode)

The 'NSHighResolutionCapable': 'True', disables the resizing done by the OS and allows the Application to size automatically.
This means if Mixxx runs on a HiDPI it should automatically render all pixmaps and fonts with double size.
The result will be a Mixxx with the same dimention as before, but wit super sharp texts and Hi res cover arts.
Some detail here: https://bugs.launchpad.net/mixxx/+bug/1479037

If we set this flag now, it just allows to use the native solution, which might be desirable for some users.
But it is against the normal policy and it prevents us to switch over to the "right" behaviour later.

If the is a strong need for some users to set this flag, it should be a preference option or something and not the default.

This is done the same way in Gtk.

We have already a pending bug for this with some more details:
https://bugs.launchpad.net/mixxx/+bug/1297242

Changed in mixxx:
status: Fix Committed → In Progress
Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

This is OS X specific and it's the proper way to declare that your app is retina-aware. Mixxx 2.0.0 is "fuzzy" because Qt renders us at 1440x900 and OSX is upscaling us 2x. Qt 4.8 supports retina mode on OS X if you declare this in your plist.

This is described in detail in:
http://blog.qt.io/blog/2013/04/25/retina-display-support-for-mac-os-ios-and-x11/
which you link to in Bug #1297242 :)

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Also, 2.0.0 has some pretty severe library scrolling problems on OS X which seem to be much improved by this plist addition. I have no idea why!

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Is the Mixxx skin still rendered in 1440x900 on a 2880x1800 display after setting this flag?
After cross reading some online resources, it looks like yes and the fix is correct.

What happens with the skin images? Are they still unscaled after setting this flag?
Or do we suffer sings like this: https://github.com/SFML/SFML/pull/388

I would be glad if all looks nicely out of the box, but it would be a surprise for me using Qt4.8.

So we should have a close look at:
* treeview Icons
* library icons like bpm lock
* Preferences Icons
* Spinnies and waveforms
* png skin images
* svg skin images.

Maybe you can provide some screenshots.
Do you have access to a HiDPI screen? Else: http://stackoverflow.com/questions/12124576/how-to-simulate-a-retina-display-hidpi-mode-in-mac-os-x-10-8-mountain-lion-on

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

I'll post some comparison screenshots.

> Do you have access to a HiDPI screen?

If I didn't, I wouldn't be complaining that it looks so bad on a retina display. :)

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

LateNight Mixxx 2.0 on OS X 10.11.2 w/ Qt 4.8.6

Makes me feel like I need glasses :).

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

LateNight with NSHighResolutionCapable on OS X 10.11.2 w/ Qt 4.8.6

So much sharper.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Preferences TreeView Mixxx 2.0 on OS X 10.11.2 w/ Qt 4.8.6

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Preferences TreeView Mixxx 2.0 with Retina Fix on OS X 10.11.2 w/ Qt 4.8.6

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Zooming in on LateNight knobs, Mixxx 2.0

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

Zooming in on LateNight knobs, Mixxx 2.0 with NSHighResolutionCapable fix

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

zoomed in on preferences icons, Mixxx 2.0

Note jagged edge on the top of the Library icon.

Revision history for this message
RJ Skerry-Ryan (rryan) wrote :

zoomed in on preferences icons, Mixxx 2.0 with NSHighResolutionCapable

Revision history for this message
jus (jus) wrote :

Look, hehaz retina :)

Scaling looks pretty legit with the icons, given they are only 48x48.
The improved responsiveness when scrolling is ... unexpected. Nice.

Once svg treeview icons do fully support scaling, i`d prefer to generally switch to svg icons though. Currently SVG icon in library scale according to row height, but they do not scale in tree view (e.g. all root item icons).

see also the related bug lp:1249539

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Cool :-O
I did not notice that this is possible with qt 4.8

I think we still have an blurry issue with Shade, since it has png knobs.
I am hesitating to switch to svg there because booting the svg Deere skin takes ages on my Netbook and it is unlikely that someone has a HiDPI screen on his Netbook.
On the other hand it would make Shade more universal.

Thoughts?

Revision history for this message
Owen Williams (ywwg) wrote :

This change is a win and does not cause any major problems with any of our skins. I say let's do it and then fix individual pixmap issues as they come up. In general a move to SVG everywhere is a good idea, although for very small pixmaps they can look blurry.

As a separate issue, Shade needs a lot of work because it is not scalable (does not get bigger as screen size changes) and does not support 4 decks.

Revision history for this message
Daniel Schürmann (daschuer) wrote :

Shade is optimized for Netbooks. It has two decks by design.
Why it is required to grow? IMHO wee do not need an other general purpose skin.
Instead Mixxx 2.0.0 leaks a good broadcasting skin. If one skin artist has some extra spare time, he should do this instead.

Revision history for this message
richard mccormick (slade752) wrote :

not sure if this is the best place for my comment , if not please remove.. im on ubuntu 16.04 and my laptop has a 2560 x 1440 display, its very hard to see anything. if the HIDPI mode is implemented will linux and windows have this option as well or just OSX?

Revision history for this message
Daniel Schürmann (daschuer) wrote :

There was done some work by Devananda here:
https://github.com/devananda/mixxx/tree/LateNight

IMHO the majority of work is done, but unfortunately the work is stalled.

The discussion and the remaining issues can be found here:
http://www.mixxx.org/forums/viewtopic.php?f=8&t=7098&start=10&hilit=hidpi

I hope someone will pick up the work soon.

Revision history for this message
Be (be.ing) wrote :

What is the status of this?

Changed in mixxx:
milestone: 2.0.1 → none
Revision history for this message
jus (jus) wrote :

Since we have HiDPI/Retina scaling available for all skins, on Win/mac/Linux - marking FIX COMMITTED

Changed in mixxx:
milestone: none → 2.1.0
status: In Progress → Fix Committed
Changed in mixxx:
status: Fix Committed → Fix Released
Revision history for this message
Swiftb0y (swiftb0y) wrote :

Mixxx now uses GitHub for bug tracking. This bug has been migrated to:
https://github.com/mixxxdj/mixxx/issues/8400

lock status: Metadata changes locked and limited to project staff
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.