Camera and editor improvements

This commit is contained in:
Ilya Laktyushin
2023-06-03 01:19:23 +04:00
parent 3df2d3cad5
commit ab69b9e982
48 changed files with 2154 additions and 557 deletions

View File

@@ -14,7 +14,19 @@ public final class MediaEditorPreviewView: MTKView, MTKViewDelegate, RenderTarge
}
var drawable: MTLDrawable? {
return self.currentDrawable
return self.nextDrawable
}
var nextDrawable: MTLDrawable? {
if #available(iOS 13.0, *) {
if let layer = self.layer as? CAMetalLayer {
return layer.nextDrawable()
} else {
return self.currentDrawable
}
} else {
return self.currentDrawable
}
}
var renderPassDescriptor: MTLRenderPassDescriptor? {
@@ -46,13 +58,8 @@ public final class MediaEditorPreviewView: MTKView, MTKViewDelegate, RenderTarge
self.colorPixelFormat = .bgra8Unorm
self.isPaused = true
self.enableSetNeedsDisplay = false
}
func scheduleFrame() {
Queue.mainQueue().justDispatch {
self.draw()
}
self.enableSetNeedsDisplay = true
self.framebufferOnly = true
}
public func mtkView(_ view: MTKView, drawableSizeWillChange size: CGSize) {
@@ -61,10 +68,14 @@ public final class MediaEditorPreviewView: MTKView, MTKViewDelegate, RenderTarge
}
}
public func redraw() {
self.setNeedsDisplay()
}
public func draw(in view: MTKView) {
guard self.frame.width > 0.0 else {
return
}
self.renderer?.renderFrame()
self.renderer?.displayFrame()
}
}