diff options
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 + } +} |