Kaynağa Gözat

1,设置为白色背景 2,修改 判断条件

jsonwang 3 yıl önce
ebeveyn
işleme
9eb4d1e3e3

+ 15 - 14
BFFramework/Classes/PQGPUImage/akfilters/PQImageFilter.swift

@@ -71,7 +71,7 @@ open class PQImageFilter: PQBaseFilter {
             }
         }
 
-        if newImage != nil {
+        if newImage?.cgImage != nil {
             BFLog(message: "提前加载图片。。。。timelineIn : \(String(describing: mSticker?.timelineIn)) timelineOut :\(String(describing: mSticker?.timelineOut)) \(String(describing: mSticker?.locationPath))")
             
             imageTexture = PQGPUImageTools.setupTexture(image: newImage!.cgImage!)
@@ -79,16 +79,17 @@ open class PQImageFilter: PQBaseFilter {
         } else { FilterLog(message: "image filter init error image data is nil!") }
     }
 
-    override public func newFramebufferAvailable(_ framebuffer: Framebuffer, fromSourceIndex: UInt) {
-        super.newFramebufferAvailable(framebuffer, fromSourceIndex: fromSourceIndex)
-
-        let currTime = CMTimeGetSeconds(CMTime(value: framebuffer.timingStyle.timestamp!.value, timescale: framebuffer.timingStyle.timestamp!.timescale))
-        if mSticker!.timelineIn != 0, currTime >= mSticker!.timelineIn, currTime <= mSticker!.timelineOut, imageTexture == 0 {
-            if newImage != nil {
-//                imageTexture = PQGPUImageTools.setupTexture(image: newImage!.cgImage!)
-            } else { BFLog(message: "image filter init error image data is nil!") }
-        }
-    }
+//    override public func newFramebufferAvailable(_ framebuffer: Framebuffer, fromSourceIndex: UInt) {
+//        super.newFramebufferAvailable(framebuffer, fromSourceIndex: fromSourceIndex)
+//
+////        let currTime = CMTimeGetSeconds(CMTime(value: framebuffer.timingStyle.timestamp!.value, timescale: framebuffer.timingStyle.timestamp!.timescale))
+////        
+////        if mSticker!.timelineIn != 0, currTime >= mSticker!.timelineIn, currTime <= mSticker!.timelineOut, imageTexture == 0 {
+////            if newImage != nil {
+//////                imageTexture = PQGPUImageTools.setupTexture(image: newImage!.cgImage!)
+////            } else { BFLog(message: "image filter init error image data is nil!") }
+////        }
+//    }
 
     override open func renderFrame() {
         let inputFramebuffer: Framebuffer = inputFramebuffers[0]!
@@ -104,7 +105,7 @@ open class PQImageFilter: PQBaseFilter {
         let textureProperties = InputTextureProperties(textureCoordinates: inputFramebuffer.orientation.rotationNeededForOrientation(.portrait).textureCoordinates(), texture: inputFramebuffer.texture)
 
         renderFramebuffer.activateFramebufferForRendering()
-        clearFramebufferWithColor(backgroundColor)
+        clearFramebufferWithColor(Color.white)
         renderQuadWithShader(shader, uniformSettings: uniformSettings,
                              vertexBufferObject: sharedImageProcessingContext.standardImageVBO, inputTextures: [textureProperties])
         releaseIncomingFramebuffers()
@@ -124,8 +125,8 @@ open class PQImageFilter: PQBaseFilter {
             FilterLog(message: "textureCoordinates is \(textureCoordinates)")
             
             //imageTexture 有可能被析构导致黑屏
-            if(imageTexture == 0){
-                FilterLog(message: "imageTexture is error !!!!!")
+            if(imageTexture == 0 && newImage?.cgImage != nil){
+                FilterLog(message: "imageTexture is error !!!!!重新创建")
                 imageTexture = PQGPUImageTools.setupTexture(image: newImage!.cgImage!)
             }