Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retina Display Support #310

Closed
curttasker opened this issue Nov 14, 2012 · 2 comments
Closed

Retina Display Support #310

curttasker opened this issue Nov 14, 2012 · 2 comments
Assignees

Comments

@curttasker
Copy link
Member

We've been discussing this for a while on the developer mailing list, but I thought it deserved to be brought out into a persistent issue here. All my testing has been done at an Apple store, but @UrsKR hopes to have a Retina mac available for development around 01/2013.

Summary

Apple's Java 1.6 works well with the Retina display, and automatically works with most of Anathema. It simply requires adding the following flag to the Info.plist file:

<key>NSHighResolutionCapable</key>
<true/>

Oracle's Java 1.7 does not, and may not ever, support this flag.

The 'just works' parts are the fonts throughout the application, the vectors, and the bitmaps (provided they are high enough resolution, it will use all the detail). This pretty much covers everything, but we should probably create higher resolution bitmaps to get rid of the last hint of blurriness (in particular, our splash screen needs to be redone).

Anathema 4.5.5 vs Anathema 5.0.1

Click on these to open in a new tab, then zoom in; they're rather large.



In-Depth

Apple rewrote a lot of the rendering code for Java 1.6, passing the workload off to their own Quartz 2D layer, rather than relying on Oracle's graphics library. Because of this, Java 1.6 supports HiDPI mode, which is basically what the Retina display is. It simply requires that flag in the Info.plist file to let the OS know that this application has been optimized for HiDPI.

Oracle, on the other hand, does not seem to care for the idea of rewriting its graphics layer to take advantage of HiDPI. In particular, the issue seems to be that they'd rather not touch the old graphics stuff (AWT, Swing), and would rather people develop for JavaFX, which should work fine with Retina.

Retina support for Java 1.7 is actively being discussed, but I don't forsee it being added anytime in the near future. Its just something we'll have to keep an eye on.

Resources:

@ghost ghost assigned curttasker Nov 14, 2012
@UrsKR
Copy link
Member

UrsKR commented Apr 2, 2013

We spoke about Java/Retina at work today, prompting me to look at the issue again.
From what I heard on the JavaFX mailing list lately, Oracle won't update their Swing implementation to support HiDPI of any kind. JavaFX 8 will support it.
Since we're slowly migrating to JavaFX anyway, let's just use the feature there when it is ready.

@UrsKR
Copy link
Member

UrsKR commented Jun 9, 2013

I have created #334 for the UI overhaul, this will be fixed along with it once we get to use JavaFX 8 somewhen 2014.
Closing.

@UrsKR UrsKR closed this as completed Jun 9, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants