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