aboutsummaryrefslogtreecommitdiff
path: root/Captura/Core Extensions
diff options
context:
space:
mode:
Diffstat (limited to 'Captura/Core Extensions')
-rw-r--r--Captura/Core Extensions/CVImageBuffer+cgImage.swift5
-rw-r--r--Captura/Core Extensions/NSScreen+screenWithMouse.swift13
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
+ }
+}