react-native-vision-camera/ios
Marc Rousavy 12f850c8e1
feat: Draw onto Frame as if it was a Skia Canvas (#1479)
* Create Shaders.ts

* Add `previewType` and `enableFpsGraph`

* Add RN Skia native dependency

* Add Skia Preview View on iOS

* Pass 1

* Update FrameHostObject.mm

* Wrap Canvas

* Lockfiles

* fix: Fix stuff

* chore: Upgrade RNWorklets

* Add `previewType` to set the Preview

* feat: Add Example

* Update project.pbxproj

* `enableFpsGraph`

* Cache the `std::shared_ptr<FrameHostObject>`

* Update CameraView+RecordVideo.swift

* Update SkiaMetalCanvasProvider.mm

* Android: Integrate Skia Dependency

* fix: Use new Prefix

* Add example for rendering shader

* chore: Upgrade CameraX

* Remove KTX

* Enable `viewBinding`

* Revert "Enable `viewBinding`"

This reverts commit f2a603f53b33ea4311a296422ffd1a910ce03f9e.

* Revert "chore: Upgrade CameraX"

This reverts commit 8dc832cf8754490d31a6192e6c1a1f11cdcd94fe.

* Remove unneeded `ProcessCameraProvider.getInstance()` call

* fix: Add REA hotfix patch

* fix: Fix FrameHostObject dead in runAsync

* fix: Make `runAsync` run truly async by dropping new Frames while executing

* chore: Upgrade RN Worklets to latest

* chore: Upgrade RN Skia

* Revert "Remove KTX"

This reverts commit 253f586633f7af2da992d2279fc206dc62597129.

* Make Skia optional in CMake

* Fix import

* Update CMakeLists.txt

* Update build.gradle

* Update CameraView.kt

* Update CameraView.kt

* Update CameraView.kt

* Update Shaders.ts

* Center Blur

* chore: Upgrade RN Worklets

* feat: Add `toByteArray()`, `orientation`, `isMirrored` and `timestamp` to `Frame` (#1487)

* feat: Implement `orientation` and `isMirrored` on Frame

* feat: Add `toArrayBuffer()` func

* perf: Do faster buffer copy

* feat: Implement `toArrayBuffer()` on Android

* feat: Add `orientation` and `isMirrored` to Android

* feat: Add `timestamp` to Frame

* Update Frame.ts

* Update JImageProxy.h

* Update FrameHostObject.cpp

* Update FrameHostObject.cpp

* Update CameraPage.tsx

* fix: Format Swift
2023-02-21 15:00:48 +01:00
..
Extensions chore: Lint 2021-12-10 09:44:54 +01:00
Frame Processor feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
Parsers feat: Custom Orientation (#715) 2022-01-04 16:57:40 +01:00
React Utils feat: Replace Reanimated with RN Worklets (#1468) 2023-02-13 15:22:45 +01:00
Skia Render Layer feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
VisionCamera.xcodeproj feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
.swift-version Run SwiftFormat in GH Action (#28) 2021-03-09 10:53:29 +01:00
.swiftformat Reformat (#116) 2021-03-31 15:43:29 +02:00
.swiftlint.yml fix: Fix CI for V3 (#1475) 2023-02-15 17:24:33 +01:00
CameraBridge.h feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
CameraError.swift chore: Move to /mrousavy/ (#224) 2021-06-21 22:42:46 +02:00
CameraQueues.swift feat: Sync Frame Processors (plus runAsync and runAtTargetFps) (#1472) 2023-02-15 16:47:09 +01:00
CameraView.swift feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
CameraView+AVAudioSession.swift fix: Fix CI for V3 (#1475) 2023-02-15 17:24:33 +01:00
CameraView+AVCaptureSession.swift feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
CameraView+Focus.swift feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
CameraView+Orientation.swift feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
CameraView+RecordVideo.swift feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
CameraView+TakePhoto.swift chore: Move to /mrousavy/ (#224) 2021-06-21 22:42:46 +02:00
CameraView+Zoom.swift chore: Lint 2021-12-10 09:44:54 +01:00
CameraViewManager.m feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
CameraViewManager.swift fix: Fix CI for V3 (#1475) 2023-02-15 17:24:33 +01:00
PhotoCaptureDelegate.swift chore: Move to /mrousavy/ (#224) 2021-06-21 22:42:46 +02:00
PreviewView.swift feat: Draw onto Frame as if it was a Skia Canvas (#1479) 2023-02-21 15:00:48 +01:00
README.md Add "check-all" script 2021-03-09 12:19:18 +01:00
RecordingSession.swift fix: Set initial timestamp on first frame (#1114) 2022-07-04 14:09:39 +02:00

ios

This folder contains the iOS-platform-specific code for react-native-vision-camera.

Prerequesites

  1. Install Xcode tools
    xcode-select --install
    
  2. Install need SwiftFormat and SwiftLint
    brew install swiftformat swiftlint
    

Getting Started

It is recommended that you work on the code using the Example project (example/ios/VisionCameraExample.xcworkspace), since that always includes the React Native header files, plus you can easily test changes that way.

You can however still edit the library project here by opening VisionCamera.xcodeproj, this has the advantage of automatically formatting your Code (swiftformat) and showing you Linter errors (swiftlint) when trying to build (+B).

Committing

Before committing, make sure that you're not violating the Swift or C++ codestyles. To do that, run the following command:

yarn check-ios

This will also try to automatically fix any errors by re-formatting the Swift code.