feat(Metal): Add support to disable display sleep (no screen saver)

This commit is contained in:
Stuart Carnie 2018-07-04 13:13:03 -07:00
parent a19ea2ed07
commit c7b21d5bd6
2 changed files with 26 additions and 0 deletions

View File

@ -60,6 +60,10 @@ typedef enum apple_view_type {
/*! @brief setCursorVisible specifies whether the cursor is visible */
- (void)setCursorVisible:(bool)v;
/*! @brief controls whether the screen saver should be disabled and
* the displays should not sleep.
*/
- (bool)setDisableDisplaySleep:(bool)disable;
@end
extern id<ApplePlatform> apple_platform;

View File

@ -53,6 +53,8 @@ id<ApplePlatform> apple_platform;
NSWindow* _window;
apple_view_type_t _vt;
NSView* _renderView;
id _sleepActivity;
}
@property (nonatomic, retain) NSWindow IBOutlet* window;
@ -337,6 +339,26 @@ static char** waiting_argv;
[NSCursor hide];
}
- (bool)setDisableDisplaySleep:(bool)disable
{
#if MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_9
if (disable && _sleepActivity == nil)
{
_sleepActivity = [NSProcessInfo.processInfo beginActivityWithOptions:NSActivityIdleDisplaySleepDisabled reason:@"disable screen saver"];
}
else if (!disable && _sleepActivity != nil)
{
[NSProcessInfo.processInfo endActivity:_sleepActivity];
_sleepActivity = nil;
}
return YES;
#else
return NO;
#endif
}
- (void) rarch_main
{
do