         
         if _clip.state.isDirty {
             
-            var clip = _clip.image.composited(over: GPContext.black.cropped(to: extent))
+            var clip = _clip._image.applyingFilter("CIColorMonochrome", parameters: [kCIInputColorKey: CIColor.white]).composited(over: GPContext.black)
             
             if #available(macOS 10.14, iOS 12.0, tvOS 12.0, *) {
                 clip = clip.insertingIntermediate()

        var layer = layer
        
        if let clip = current_layer.state.clip {
            layer = layer.applyingFilter("CIBlendWithMask", parameters: [kCIInputBackgroundImageKey: GPContext.clear.cropped(to: extent), kCIInputMaskImageKey: clip])
        }
        
        if blendKernel === CIBlendKernel.sourceOver {
            current_layer.image = layer.composited(over: current_layer.image)
        } else {
            current_layer.image = blendKernel.apply(foreground: layer, background: current_layer.image) ?? current_layer.image
        }
    }
    

    public func clearClipBuffer(with value: Double = 1) {
        switch value {
        case 1: current_layer.state.clip = nil
        case 0: current_layer.state.clip = GPContext.black
        default:
            let color = CIColor(red: CGFloat(value), green: CGFloat(value), blue: CGFloat(value), alpha: 1)
            current_layer.state.clip = CIImage(color: color)
        }
    }
    
