diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-09-19 22:58:44 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2023-09-19 22:58:44 +0200 |
| commit | 7ee43fb83799abb89a69cfcd4e2146dd4eaa5045 (patch) | |
| tree | 560c7fcb1c408eb46c1517b7197e5543d70814a0 /Captura/Core Extensions | |
| parent | cdc79b7d7c4829ba7a0371826b28f398f267c46a (diff) | |
Add multimonitor support
Diffstat (limited to 'Captura/Core Extensions')
| -rw-r--r-- | Captura/Core Extensions/CVImageBuffer+cgImage.swift | 5 | ||||
| -rw-r--r-- | Captura/Core Extensions/NSScreen+screenWithMouse.swift | 13 |
2 files changed, 16 insertions, 2 deletions
diff --git a/Captura/Core Extensions/CVImageBuffer+cgImage.swift b/Captura/Core Extensions/CVImageBuffer+cgImage.swift index c30cb0c..f8958f2 100644 --- a/Captura/Core Extensions/CVImageBuffer+cgImage.swift +++ b/Captura/Core Extensions/CVImageBuffer+cgImage.swift @@ -3,9 +3,10 @@ import ReplayKit extension CVImageBuffer { + static let sharedContext = CIContext() + var cgImage: CGImage? { let ciImage = CIImage(cvImageBuffer: self) - let context = CIContext() - return context.createCGImage(ciImage, from: CGRect(x: 0, y: 0, width: CVPixelBufferGetWidth(self), height: CVPixelBufferGetHeight(self))) + return CVImageBuffer.sharedContext.createCGImage(ciImage, from: CGRect(x: 0, y: 0, width: CVPixelBufferGetWidth(self), height: CVPixelBufferGetHeight(self))) } } diff --git a/Captura/Core Extensions/NSScreen+screenWithMouse.swift b/Captura/Core Extensions/NSScreen+screenWithMouse.swift new file mode 100644 index 0000000..8c7f566 --- /dev/null +++ b/Captura/Core Extensions/NSScreen+screenWithMouse.swift @@ -0,0 +1,13 @@ +import Cocoa + +extension NSScreen { + static var screenWithMouse: NSScreen? { + let mouseLocation = NSEvent.mouseLocation + for screen in NSScreen.screens { + if NSMouseInRect(mouseLocation, screen.frame, false) { + return screen + } + } + return NSScreen.main + } +} |