a0590dccb5
* Setup RN Worklets * Use RN Worklets on iOS * Fix console * Add `installFrameProcessorBindings()` function * Add `FrameProcessorPlugins` proxy (BREAKING CHANGE) * Clean up docs * Update FRAME_PROCESSORS.mdx * Use RN Worklets 0.2.5 * feat: Android build setup * Rewrite Android Frame Processor Part * Update CMakeLists.txt * fix: Add react-native-worklets Gradle dependency * Update Podfile.lock * fix build * gradle:7.4.1 * Init JSI Bindings in method on Android * Fix Folly flags * fix: Init `FrameProcessorRuntimeManager` later * fix: Wrap in `<GestureHandlerRootView>` * Refactor plugins * fix: Remove enableFrameProcessors * Install RN Worklets from current GH master * Update babel.config.js * Update CameraViewModule.kt * Update ImageProxyUtils.java * feat: Upgrade to Reanimated v3 * fix: Fix crash on Worklet init * Update RN Worklets to latest master * fix: Simplify FP Plugins Proxy
46 lines
1.3 KiB
Swift
46 lines
1.3 KiB
Swift
//
|
|
// CameraView+Orientation.swift
|
|
// VisionCamera
|
|
//
|
|
// Created by Marc Rousavy on 04.01.22.
|
|
// Copyright © 2022 mrousavy. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
import UIKit
|
|
|
|
extension CameraView {
|
|
/// Orientation of the input connection (preview)
|
|
private var inputOrientation: UIInterfaceOrientation {
|
|
return .portrait
|
|
}
|
|
|
|
// Orientation of the output connections (photo, video, frame processor)
|
|
private var outputOrientation: UIInterfaceOrientation {
|
|
if let userOrientation = orientation as String?,
|
|
let parsedOrientation = try? UIInterfaceOrientation(withString: userOrientation) {
|
|
// user is overriding output orientation
|
|
return parsedOrientation
|
|
} else {
|
|
// use same as input orientation
|
|
return inputOrientation
|
|
}
|
|
}
|
|
|
|
internal func updateOrientation() {
|
|
// Updates the Orientation for all rotable
|
|
let isMirrored = videoDeviceInput?.device.position == .front
|
|
|
|
let connectionOrientation = outputOrientation
|
|
captureSession.outputs.forEach { output in
|
|
output.connections.forEach { connection in
|
|
if connection.isVideoMirroringSupported {
|
|
connection.automaticallyAdjustsVideoMirroring = false
|
|
connection.isVideoMirrored = isMirrored
|
|
}
|
|
connection.setInterfaceOrientation(connectionOrientation)
|
|
}
|
|
}
|
|
}
|
|
}
|