Runt
2025-07-27 7b3ecfffc59d2d980d9f7628365b64c20fe015be
LiveProject/tool/MetalRenderer.swift
@@ -16,6 +16,7 @@
    private var currentPixelBuffer: CVPixelBuffer?
    private let textureCache: CVMetalTextureCache
    private var rotate:Int = 0;
    init(mtkView: MTKView) {
        guard let device = MTLCreateSystemDefaultDevice(),
@@ -62,8 +63,23 @@
        let drawableSize = view.drawableSize
        guard drawableSize.width > 0, drawableSize.height > 0 else { return }
        // 加方向修正:顺时针旋转90度
        var ciImage = CIImage(cvPixelBuffer: pixelBuffer).oriented(.right)
        // 加方向修正
        var orien:CGImagePropertyOrientation = .up;
        switch self.rotate{
        case 90:
            orien = .right;
            break;
        case 180:
            orien = .down;
            break;
        case 270:
            orien = .left;
            break;
        default:
            orien = .up;
        }
        //print(" roate = \(rotate)")
        var ciImage = CIImage(cvPixelBuffer: pixelBuffer).oriented(orien)
        // 等比缩放后居中
        let sourceExtent = ciImage.extent
@@ -99,4 +115,9 @@
        //刷新
        
    }
    func updateRotate(angle:Int){
        rotate = angle;
    }
}