On Sep 5, 2017, at 4:08 AM, Charlie Fenton <charl...@ssl.berkeley.edu> wrote:
> The BOINC default screen saver and project screen savers do not work under 
> any of the beta versions of Mac OS 10.13 High Sierra. I have filed a bug 
> report with Apple. The bug is still open, so I hope that Apple will resolve 
> the problem before public release of OS 10.13.


Apple has made the Golden Master (public release) candidate available to 
developers, and they have not fixed this problem. No project graphics 
applications will work as screensavers on OS 10.13 High Sierra (though they can 
still be used from the BOINC Manager via the Show Graphics button.)

According to Apple's web site, OS 10.13 will be released to the general public 
on September 25. 

The current method BOINC uses to display project screensavers (as well as the 
"default" screensaver) is to launch the graphics app from the real (Apple) 
screensaver, but setting the window's z-level higher than that of the Apple 
screensaver window. As of OS 10.13, applications can no longer make their 
windows appear over the screensaver window. The only clue regarding the reason 
for this change was the response another developer with a similar problem 
received from Apple:
> Setting the window level to 2002 is no longer sufficient to pretend to be a 
> screen saver. There is now a proper view hierarchy that includes ScreenSaver, 
> LoginWindow, Notifications, and probably others.
> 
> Thank you for your feedback. Engineering has determined that this issue 
> behaves as intended.
 
I am fairly sure I have found a solution, but it will require all projects to 
rebuild their graphics applications with a new BOINC library, as well as my 
releasing a new version of the BOINC installer with modified screensaver code.

But I still have a lot of work to do to finish the changes and test them before 
making them available to projects, which then need to update their graphics 
applications.

My workaround / solution is to use inter-process communication to allow BOINC's 
Apple-based screensaver code to share the graphics generated by the project 
graphics applications and display it in the real screensaver's window. Apple 
does provide a mechanism called IOSurfaceBuffer for sharing OpenGL generated 
graphics using IPC. I plan to modify our existing code to use this method only 
on OS 10.13 and beyond, but continue doing things the way we always have on 
older versions of OSX. But this undertaking is far from trivial, and time is 
short.

Cheers,
--Charlie

_______________________________________________
boinc_dev mailing list
boinc_dev@ssl.berkeley.edu
https://lists.ssl.berkeley.edu/mailman/listinfo/boinc_dev
To unsubscribe, visit the above URL and
(near bottom of page) enter your email address.

Reply via email to