Add retina display support for BOINC Manager#3473
Conversation
|
@CharlieFenton, @brevilo, could you please build and test this fix? |
|
I have no build infrastructure for that so it will take some time... |
Are these errors already logged anywhere? |
|
@brianclinkenbeard : see this to get (at least) your wxWidgets building again. |
There was a problem hiding this comment.
Back to topic: I'm sorry, but the change seems to be ineffective. I don't see any improvement.
I'm wondering, though. Should this template be reflected in the Manager's application bundle's Info.plist? If so, the new key/value pair can't be found. OTOH, the CFBundleVersion also differs from the template which might hint at the template not being used at all...?
Update:
The template didn't get used after I pulled your changes because it just isn't updated if it already exists in the build directory! IMHO, that's another flaw in the build system.
Anyhow, your change is in fact effective - YEAH!
But it probably breaks things anyway - BOOO!
Apparently the changed resolution triggers an assertion at BOINCTaskBar.cpp:451. Since that's related to pixel formats and anti-aliasing I think this could indeed be related to your change, not the wxWidgets 3.1.3 upgrade et al. This needs to be looked into by someone more knowlegable in that area.
Cheers
PS: The in-app icons might need a refresh as well now that the main window elements and fonts are rendered nicely again.
brevilo
left a comment
There was a problem hiding this comment.
So, I re-checked this after @CharlieFenton patched the build to get wx 3.1.0 working again. With wx 3.1.0 I don't see the assertion triggered, so that's a problem for later when we upgrade wxWidgets to >=3.1.3. Until then I'm fine merging this PR.
@CharlieFenton : do you want to sign-off on this one yourself? Otherwise I'd merge it.
|
I will merge now. @brianclinkenbeard: I'm impressed that you studied the code enough to understand that the plist files are generated dynamically at run time by clientgui/mac/setversion.cpp so as to properly update the BOINC version number. As I have been stepping away from BOINC (or at least trying to) after many years, I welcome your help. Thank you. (Don't forget to delete your patch-1 feature branch.) |
|
Hm, I just tried to check simple view and it doesn't work for me. @CharlieFenton can you test that on your rig as well please? If it's broken due to this PR we need to revert the merge and reopen the PR... Update: By "doesn't work" I mean that the manager seems to close itself when switching to simple view. I somehow managed to get it working once (and it looked ok) but know the manager can't be started anymore as it closes itself right away which is consistent with switching. |
|
Also, while improving the wx GUI it doesn't fully fix #3383 in my opinion. The contents of the "Statistics" and "Disk" tabs as well as all in-app icons are still blurry |
|
Ok, this PR definitely causes a segfault in wx itself: relevant stacktrace: I'll revert the merge... |
|
|
|
Ok, sorry for the confusion but looking further into this it seems that this PR IS NOT the culprit. Reverting it DOES NOT get rid of the assertion/segfault. My current working hypothesis is that the earlier patch against wx 3.1.0 is insufficient and we probably need to revert (or fix) that one instead. @CharlieFenton can you please confirm that? |
|
@brevilo: you are seeing the asserts because you are running a development build of wxWidgets. Those asserts have been there for years, and are due to minor inconsistencies in the use of sizers. Those inconsistencies don't seem to cause any operational problems, so no one has ever bothered to fix them; we've been treating them as warnings rather than errors. But I've never seen the asserts cause a segfault. I've been testing a release (deployment) build with @brianclinkenbeard's patch and SimpleVView works correctly. Note that this patch is expected to only fix the rendering of text. The link @brianclinkenbeard provided says:
Fixing graphic elements such as icons requires providing high-resolution artwork and takes considerably more effort. So I agree that we have only partially satisfied #3383. I was surprised that GitHub says I closed #3383; I did not do this explicitly so someone else must have linked these 2 PRs. |
Ok, I see. Never mind then. This should really be fixed as it's obviously tribal knowledge only and confuses those unchristened.
Ok, as long as that includes your latest Catalina/Xcode 11 patches for wx 3.1.0 we should be good.
That's done automatically because of the "Fixes" tag in the PR's description. |
|
I just tried running a development build with @brianclinkenbeard's patch. I get the wxWidgets assert as usual. The resulting dialog offers 3 options:
Pressing yes stops the program, though I did not get a backtrace. Pressing cancel brings up the Simple View. |
|
I wouldn't expect this change to cause any build or assert errors, since it simply changes the Indeed, this change will not have any effect on graphics. High DPI images would have to be added to render correctly on newer Mac displays. |
Fixes #3383
Please note: I am currently unable to build BOINC using Xcode 11.4 for Catalina due to a build error with WxWidgets, so I cannot test this change. Until I can fix this issue, if anyone with retina hardware is able to build and test this I would appreciate it.
Description of the Change
This simply adds the
NSPrincipleClasskey toInfo.plistto allow retina support as described here.Alternate Designs
This may need to be added to other
.plistfiles in clientgui/mac/templates to offer retina support for the installer, screensaver, etc. Without being able to test this I don't know.Release Notes
Add support for macOS retina displays.