There is an issue with the current approach; everything that does drawing needs to know to check StelProjectorParams and apply devicePixelsPerPixel.
 


On Fri, Oct 4, 2013 at 4:11 AM, Fabien Chéreau <fabien.chereau@gmail.com> wrote:
Great thanks!



On Fri, Oct 4, 2013 at 1:25 AM, Reaves, Timothy <treaves@silverfieldstech.com> wrote:
That seems to have done it; I'll do some more testing tomorrow, but it looks good.


On Thu, Oct 3, 2013 at 3:03 PM, Fabien Chéreau <fabien.chereau@gmail.com> wrote:
Mmm, I was hoping the code I added in StelApp::update() would do it, but apparently it's not enough. Could you please try again?
Fabien


On Thu, Oct 3, 2013 at 1:39 AM, Reaves, Timothy <treaves@silverfieldstech.com> wrote:
I notice you removed the code I had added that detected when the screen has changed; without that, how do you expect the new pixel ratio to be picked up and used, when moving from screen-to-screen?


On Wed, Oct 2, 2013 at 7:31 PM, Timothy Reaves <treaves@silverfieldstech.com> wrote:
Unfortunately, it's now worse.  It behaves the same when Retina is the primary display; it shows 
fine, but, moving to non-Retina shows at 200% (it's not re-scaled).  However,when non-Retina is the primary, the app starts, but no UI is displayed (this was the same behavior before I added code to resize the screen at start).

On Oct 2, 2013, at 3:14 PM, Fabien Chéreau <fabien.chereau@gmail.com> wrote:

Hi Tim, thanks for the feedback, could you please try again?
Fabien



On Wed, Oct 2, 2013 at 2:38 PM, Reaves, Timothy <treaves@silverfieldstech.com> wrote:
The code in trunk works correctly under every tested scenario.

When the Retina screen is the primary screen, the app does start correctly.  When moved to a non-Retina screen, it is now 200% too large.

In looking at your changes, you also removed the code I had that detected screen changes of the apps position; I think if you re-create that, with the manor you are scaling, it may work fine.


On Wed, Oct 2, 2013 at 4:33 AM, Fabien Chéreau <fabien.chereau@gmail.com> wrote:
I see, is this use-case working with the current trunk code? I.e. is it managing moving from 1 screen to another right? Also, could you please tell me what happens with the GUI fonts (like the button labels), are they twice smaller after you move the app from one screen to the next?

For the openGL canvas, the solution may be to re-detect screen density each time the windows is resized.

Fabien



On Wed, Oct 2, 2013 at 2:07 AM, Reaves, Timothy <treaves@silverfieldstech.com> wrote:
No, it does not work.  When the screen is moved from a non-HIDPI to a HIDPI, the glWidget only consumes 25% of the screen.  I will try to tomorrow morning on opening to a HIDPI instead of moving to one.


On Tue, Oct 1, 2013 at 6:33 PM, Fabien Chéreau <fabien.chereau@gmail.com> wrote:
Tim, could you try the deviceindependentfont branch?
Thanks,
Fabien


On Tue, Oct 1, 2013 at 8:44 PM, Reaves, Timothy <treaves@silverfieldstech.com> wrote:
That's fine.

I had tried (although very possibly incorrectly) to do as you say and use @2x at init time, but, it didn't work.  I'll try your code once pushed, and see what happens.

As for point/pixel, the Qt docs explicitly state that when using pixel instead of point, they are then device-dependent.  But it's really not worth arguing about.




On Tue, Oct 1, 2013 at 2:05 PM, Fabien Chéreau <fabien.chereau@gmail.com> wrote:
Hi Tim,
From http://blog.qt.digia.com/blog/2013/04/25/retina-display-support-for-mac-os-ios-and-x11/ it seems that when Info.Plist contains the necessary options, most of Qt code doesn't need to be changed.
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHighResolutionCapable</key>
<string>True</string>
Currently we have this already set (excepted that we have a "YES" instead of "true". I hope it's fine).

With this settings, all QWidgets and Qml stuff should be properly scaled already. The only problem we have is for OpenGL rendering: for a retina screen OpenGL pixels are twice smaller than the device-independent pixels used by Qt. What still needs to be done then is the following:

 - the OpenGL viewport need to be 2x larger. It's what you did although I think a cleaner implementation should not touch the internals of the StelProjector class. It's enough to apply x2 factor at init time.
 - text rendered directly in openGL, using StelPainter::drawText. For this it should be enough to set the proper pixelRatio to the QOpenGLPaintDevice used locally in this function. The ratio can be obtained in the method simply using QOpenGLContext::currentContext().screen().devicePixelRatio().

And most importantly, I don't really like the fact that we move to Point size instead of pixel size because it's not backward compatible (a user with an existing config.ini will get large fonts), and also because usually devices with higher screen density use smaller font size (in point) because we stay closer to the screen, the opposite also applies to large screens like a TV. In Qt they created the notion of "Device-Independent Pixel" for this reason.

If it's OK with you, I will do some cleanup in the code and revert the commit where all setPixelSize are converted to setPointSize. The pixels will really be "Device-Independent Pixel", which means that the behavior should be fine on mac retina as well.
Fabien


On Sat, Sep 28, 2013 at 3:23 AM, Reaves, Timothy <treaves@silverfieldstech.com> wrote:
On Linux, the fonts aren't huge; they are 13 point.  As-in the same size as 13 point fonts in other applications. And the code now shows fonts the same relative size on all devices, instead of device-dependent pixels.  So I'm not sure what you mean by 'pretty broken'.  If you mean that you would prefer the fonts to be smaller than 13 point, I understand that; but a better solution is still to specify them in device-independent points instead of device-dependent pixels.

If on the other had you mean the changes to the StelProjector & StelProjectorParams, my code was an attempt to fix what was broken by your merge to trunk.  Where I had pointed out twice that your branch was - well, broken.  So, again, an attempt to fix what is already broken on trunk makes perfect sense to perform on trunk.

But thanks for finally noticing.


On Fri, Sep 27, 2013 at 3:09 PM, Fabien Chéreau <fabien.chereau@gmail.com> wrote:
It's also pretty broken here (huge fonts). I'll try to have a look this WE. In general I think this kind of changes should be done first in a branch so that we can merge only working code (this kind of device-dependent stuff is hard to get right). Fabien


On Fri, Sep 27, 2013 at 7:47 PM, Reaves, Timothy <treaves@silverfieldstech.com> wrote:
Corrected.


On Fri, Sep 27, 2013 at 1:23 PM, Alexander Wolf <alex.v.wolf@gmail.com> wrote:
Hi,

2013/9/27 Reaves, Timothy <treaves@silverfieldstech.com>

This is working on my machine, in all scenarios (it has one Retina & one non- screen).
Please let me know of any issues, or feel free to do something different.

I'm checked it on linux and found wrong size of display.

--
With best regards, Alexander

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60133471&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk

_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel


------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk_______________________________________________



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel



------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
Stellarium-pubdevel mailing list
Stellarium-pubdevel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/stellarium-pubdevel