> The screensaver animation in macOS is reliant on the engine that drives it. 
> Recently that changed from an older engine to what we can only guess is a 
> newer one, but some of them still run in what is known as a newly named 
> legacyScreenSaver, yet ScreenSaverEngine still fits in there somehow. We 
> don't know how it works and we don't *need* to know.

Agreed.

Currently, AFAICS, all third-party screen savers run under the 
legacyScreenSaver.
But the name suggests that could change some day.

> Screensaver engines run in a very controlled and limited environment.

yes.

> They need to be efficient. They need to treat user input differently.

Actually, as of Catalina, there is NO user input to screen savers any more - at 
all :-(
Which is the main reason for this whole effort of making a stand-alone app (in 
addition to the "crippled" screen saver).

> They treat activation totally differently. When you start trying to force 
> such an engine to

I don't and I can't force the engine itself.

All I am doing is to include my subclass of ScreenSaverView in an app.

> run in a normal app that can deactivate, hide, minimize, etc, you're throwing 
> it all kinds of things it isn't designed to handle.
> 
> If you really want to run your screensaver animation in a non-screensaver 
> app, you'll need to control the animation,

That is what I'm doing. 
I start my own timer, which periodically calls -animateOneFrame.
I call -stopAnimation when the app is hidden, etc.

Do you see any problems with that approach?


Best regards, Gabriel


_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to