//
|
// MetalVideoView.swift
|
// LiveProject
|
// 视频绘制
|
// Created by 倪路朋 on 6/26/25.
|
//
|
import SwiftUI
|
import MetalKit
|
|
struct VideoRendererView: UIViewRepresentable {
|
let renderer: MetalRenderer // 自定义 Metal 渲染器,支持传入 RGBA/YUV 数据帧
|
|
func makeUIView(context: Context) -> MTKView {
|
let view = MTKView()
|
view.device = MTLCreateSystemDefaultDevice()
|
view.colorPixelFormat = .bgra8Unorm
|
view.clearColor = MTLClearColor(red: 0.2, green: 0.5, blue: 0.7, alpha: 1.0)
|
view.delegate = renderer
|
view.isPaused = false
|
view.enableSetNeedsDisplay = false
|
renderer.setup(view: view)
|
return view
|
}
|
|
func updateUIView(_ uiView: MTKView, context: Context) {}
|
}
|