     
     func setClip<Image: ImageProtocol>(image: Image, transform: SDTransform)
     
+    func setClip<P>(texture: Texture<P>, transform: SDTransform) where P.Model == GrayColorModel
+    
     func draw<Image: ImageProtocol>(image: Image, transform: SDTransform)
     
     func draw<C: ColorProtocol>(shape: Shape, winding: Shape.WindingRule, color: C)

    associatedtype Model: ColorModelProtocol
    
    var colorSpace: ColorSpace<Model> { get }
    
    var renderingIntent: RenderingIntent { get set }
    
    var chromaticAdaptationAlgorithm: ChromaticAdaptationAlgorithm { get set }
    
    func setClip<P>(texture: Texture<P>, transform: SDTransform) where P.Model == GrayColorModel
    
    func draw<P>(texture: Texture<P>, transform: SDTransform) where P.Model == Model
    

    
    var resamplingAlgorithm: ResamplingAlgorithm { get set }
    
    var renderingIntent: RenderingIntent { get set }
    
    var chromaticAdaptationAlgorithm: ChromaticAdaptationAlgorithm { get set }
    
    func saveGraphicState()
    
    func restoreGraphicState()
