|
@@ -73,6 +73,10 @@ class OJADecoder: NSObject {
|
|
|
|
|
|
//初始化的时候要设置一次filter链,因为可能最开始currentInputArray和lastInputArray都是0
|
|
|
self.lastInputArray = self.currentInputArray()
|
|
|
+ /// 如果有前景添加前景素材
|
|
|
+ if let fgInput = fgMovieInput {
|
|
|
+ self.lastInputArray.append(fgInput)
|
|
|
+ }
|
|
|
self.buildChain()
|
|
|
}
|
|
|
|
|
@@ -83,6 +87,10 @@ class OJADecoder: NSObject {
|
|
|
|
|
|
//初始化的时候要设置一次filter链,因为可能最开始currentInputArray和lastInputArray都是0
|
|
|
self.lastInputArray = self.currentInputArray()
|
|
|
+ /// 如果有前景添加前景素材
|
|
|
+ if let fgInput = fgMovieInput {
|
|
|
+ self.lastInputArray.append(fgInput)
|
|
|
+ }
|
|
|
self.buildChain()
|
|
|
}
|
|
|
|
|
@@ -96,6 +104,10 @@ class OJADecoder: NSObject {
|
|
|
|
|
|
//初始化的时候要设置一次filter链,因为可能最开始currentInputArray和lastInputArray都是0
|
|
|
self.lastInputArray = self.currentInputArray()
|
|
|
+ /// 如果有前景添加前景素材
|
|
|
+ if let fgInput = fgMovieInput {
|
|
|
+ self.lastInputArray.append(fgInput)
|
|
|
+ }
|
|
|
self.buildChain()
|
|
|
}
|
|
|
|
|
@@ -117,6 +129,7 @@ private extension OJADecoder {
|
|
|
func buildChain() {
|
|
|
// 牛逼了!!!午睡做梦时想到的,必须要removeAllTargets才行,否则原来的target不会被释放,导致屏幕会闪等诸多问题
|
|
|
timeMovieInput.removeAllTargets()
|
|
|
+ fgMovieInput?.removeAllTargets()
|
|
|
for input in lastInputArray {
|
|
|
input.removeAllTargets()
|
|
|
}
|
|
@@ -135,11 +148,6 @@ private extension OJADecoder {
|
|
|
blendFilter.setBackgroundColorRed(GLfloat(cr), green: GLfloat(cg), blue: GLfloat(cb), alpha: GLfloat(ca))
|
|
|
var tempArray = lastInputArray
|
|
|
|
|
|
- /// 如果有前景添加前景素材
|
|
|
- if let fgInput = fgMovieInput {
|
|
|
- tempArray.append(fgInput)
|
|
|
- }
|
|
|
-
|
|
|
if self.templateDataModel.blend == 1 {
|
|
|
tempArray = tempArray.sorted(by: { (input1, input2) -> Bool in
|
|
|
return input1.zIndex < input2.zIndex
|