This commit is contained in:
dijunkun
2025-10-27 18:10:07 +08:00
parent 73bbf642fa
commit b953dcac88
2 changed files with 30 additions and 66 deletions

View File

@@ -22,10 +22,10 @@
#include "display_info.h"
#include "rd_log.h"
namespace crossdesk {
using namespace crossdesk;
class ScreenCapturerSckImpl;
static const int kFullDesktopScreenId = -1;
class ScreenCapturerSckImpl;
// The ScreenCaptureKit API was available in macOS 12.3, but full-screen capture
// was reported to be broken before macOS 13 - see http://crbug.com/40234870.
@@ -173,6 +173,8 @@ std::string GetDisplayName(CGDirectDisplayID display_id) {
return result;
}
namespace crossdesk {
ScreenCapturerSckImpl::ScreenCapturerSckImpl() {
helper_ = [[SckHelper alloc] initWithCapturer:this];
}
@@ -429,6 +431,7 @@ void ScreenCapturerSckImpl::StartOrReconfigureCapturer() {
std::unique_ptr<ScreenCapturer> ScreenCapturerSck::CreateScreenCapturerSck() {
return std::make_unique<ScreenCapturerSckImpl>();
}
} // namespace crossdesk
@implementation SckHelper {
// This lock is to prevent the capturer being destroyed while an instance
@@ -487,5 +490,4 @@ std::unique_ptr<ScreenCapturer> ScreenCapturerSck::CreateScreenCapturerSck() {
_capturer = nullptr;
}
@end
} // namespace crossdesk
@end