Я использую некоторые из CIFilter
для обработки изображений. Я обнаружил, что UIImageView
слишком медленный для отображения выходного изображения в реальном времени. Я следил за документацию и построил GLKView
. Теперь производительность идеальна, но изображение отображается черным прямоугольником при вращении.
Как установить этот цвет на фон (в данном случае зеленый) или прозрачный?
Вот фрагмент кода рисования. Я вообще не знаком с графической областью.
private class ImageView: GLKView {
override init!(frame: CGRect, context: EAGLContext!) { // Called with `.OpenGLES3` context.
ciContext = CIContext(EAGLContext: context, options: [kCIContextWorkingColorSpace: NSNull()])
super.init(frame: frame, context: context)
}
private let ciContext: CIContext
private var image: CIImage? {
didSet {
setNeedsDisplay()
}
}
private override func drawRect(rect: CGRect) {
// Clear with `glClear`... Here is set color from `backgroundColor` (green) and cleared with it.
if image != nil {
ciContext.drawImage(image!, inRect: { /* returned computed rect */ }(), fromRect: image!.extent())
}
}
private override func layoutSubviews() {
super.layoutSubviews()
setNeedsDisplay()
}
}