From 7b3ecfffc59d2d980d9f7628365b64c20fe015be Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Sun, 27 Jul 2025 09:42:03 +0000
Subject: [PATCH] 多个小窗缩放问题修复

---
 LiveProject/tool/MetalRenderer.swift |   25 +++++++++++++++++++++++--
 1 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/LiveProject/tool/MetalRenderer.swift b/LiveProject/tool/MetalRenderer.swift
index 61bd769..7b73029 100644
--- a/LiveProject/tool/MetalRenderer.swift
+++ b/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;
+    }
+    
 }

--
Gitblit v1.9.1