             return
         }
         
-        let commandBuffer:MTLCommandBuffer = controller.commandQueue.makeCommandBuffer()
         let metalFilter:MetalFilter = metalFitlerType.init(device:controller.device)
         
         metalFilter.encode(

        }
        
        let destinationTexture:MTLTexture = drawable.texture
        filterTexture(
            sourceTexture:sourceTexture,
            destinationTexture:destinationTexture)
        commandBuffer.present(drawable)

    
    //MARK: public
    
    func filterTexture(commandBuffer:MTLCommandBuffer, sourceTexture:MTLTexture, destinationTexture:MTLTexture)
    {
        guard
            
