Skip to content

Commit

Permalink
Fix Layer
Browse files Browse the repository at this point in the history
  • Loading branch information
mrousavy committed Jul 19, 2023
1 parent 85486f8 commit 26acf6e
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 16 deletions.
2 changes: 1 addition & 1 deletion example/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ SPEC CHECKSUMS:
RNStaticSafeAreaInsets: 055ddbf5e476321720457cdaeec0ff2ba40ec1b8
RNVectorIcons: fcc2f6cb32f5735b586e66d14103a74ce6ad61f8
SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
VisionCamera: 8d653f1257a1fdc2e04e579d07ab7a51f48eb82d
VisionCamera: b4e91836f577249470ae42707782f4b44d875cd9
Yoga: 65286bb6a07edce5e4fe8c90774da977ae8fc009

PODFILE CHECKSUM: ab9c06b18c63e741c04349c0fd630c6d3145081c
Expand Down
17 changes: 7 additions & 10 deletions ios/Skia Render Layer/SkiaPreviewView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -35,16 +35,11 @@ class SkiaPreviewView: PreviewView {
return SkiaPreviewDisplayLink(callback: { [weak self] timestamp in
// Called everytime to render the screen - e.g. 60 FPS
if let self = self {
self.skiaRenderer.renderLatestFrame(to: self.layer)
self.skiaRenderer.renderLatestFrame(to: self.previewLayer)
}
})
}()
override final class var layerClass: AnyClass {
return SkiaPreviewLayer.self
}
override var layer: SkiaPreviewLayer {
return super.layer as! SkiaPreviewLayer
}
private let previewLayer = SkiaPreviewLayer()

init(frame: CGRect, skiaRenderer: SkiaRenderer) {
self.skiaRenderer = skiaRenderer
Expand All @@ -61,17 +56,19 @@ class SkiaPreviewView: PreviewView {

override func willMove(toSuperview newSuperview: UIView?) {
if newSuperview != nil {
self.layer.addSublayer(previewLayer)
self.displayLink.start()
} else {
previewLayer.removeFromSuperlayer()
self.displayLink.stop()
}
}

override func layoutSubviews() {
let width = self.bounds.size.width
let height = self.bounds.size.height
layer.frame = CGRect(x: 0, y: 0, width: width, height: height)
layer.drawableSize = CGSizeMake(width * layer.pixelDensity,
height * layer.pixelDensity)
previewLayer.frame = CGRect(x: 0, y: 0, width: width, height: height)
previewLayer.drawableSize = CGSizeMake(width * previewLayer.pixelDensity,

Check failure on line 71 in ios/Skia Render Layer/SkiaPreviewView.swift

View workflow job for this annotation

GitHub Actions / SwiftLint

Legacy Constructor Violation: Swift constructors are preferred over legacy convenience functions (legacy_constructor)
height * previewLayer.pixelDensity)
}
}
15 changes: 10 additions & 5 deletions src/CameraProps.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
import type { ViewProps } from 'react-native';
import type { CameraDevice, CameraDeviceFormat, ColorSpace, VideoStabilizationMode } from './CameraDevice';
import type { CameraRuntimeError } from './CameraError';
import type { Frame } from './Frame';
import type { DrawableFrame, Frame } from './Frame';
import type { Orientation } from './Orientation';

export interface FrameProcessor {
frameProcessor: (frame: Frame) => void;
type: 'frame-processor' | 'skia-frame-processor';
}
export type FrameProcessor =
| {
frameProcessor: (frame: Frame) => void;
type: 'frame-processor';
}
| {
frameProcessor: (frame: DrawableFrame) => void;
type: 'skia-frame-processor';
};

export interface CameraProps extends ViewProps {
/**
Expand Down

0 comments on commit 26acf6e

Please sign in to comment.