|
|
|
@@ -510,11 +510,25 @@ static Image createNSWindowSnapshot (NSWindow* nsWindow) |
|
|
|
{
|
|
|
|
JUCE_AUTORELEASEPOOL
|
|
|
|
{
|
|
|
|
// CGWindowListCreateImage is replaced by functions in the ScreenCaptureKit framework, but
|
|
|
|
// that framework is only available from macOS 12.3 onwards.
|
|
|
|
// A suitable @available check should be added once the minimum build OS is 12.3 or greater,
|
|
|
|
// so that ScreenCaptureKit can be weak-linked.
|
|
|
|
#if defined (MAC_OS_VERSION_14_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_14_0
|
|
|
|
JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations")
|
|
|
|
#define JUCE_DEPRECATION_IGNORED 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
CGImageRef screenShot = CGWindowListCreateImage (CGRectNull,
|
|
|
|
kCGWindowListOptionIncludingWindow,
|
|
|
|
(CGWindowID) [nsWindow windowNumber],
|
|
|
|
kCGWindowImageBoundsIgnoreFraming);
|
|
|
|
|
|
|
|
#if JUCE_DEPRECATION_IGNORED
|
|
|
|
JUCE_END_IGNORE_WARNINGS_GCC_LIKE
|
|
|
|
#undef JUCE_DEPRECATION_IGNORED
|
|
|
|
#endif
|
|
|
|
|
|
|
|
NSBitmapImageRep* bitmapRep = [[NSBitmapImageRep alloc] initWithCGImage: screenShot];
|
|
|
|
|
|
|
|
Image result (Image::ARGB, (int) [bitmapRep size].width, (int) [bitmapRep size].height, true);
|
|
|
|
|