///////////////////////////////////////////////////////////////////////////////// // Paint.NET // // Copyright (C) dotPDN LLC, Rick Brewster, Tom Jackson, and contributors. // // Portions Copyright (C) Microsoft Corporation. All Rights Reserved. // // See license-pdn.txt for full licensing and attribution details. // ///////////////////////////////////////////////////////////////////////////////// using System; using Cairo; namespace Pinta.Core { /// /// Provides a standard interface for allowing an object to draw itself on to a given Surface. /// public interface ISurfaceDraw { /// /// Draws the object on to the given Surface. /// /// The Surface to draw to. void Draw(ImageSurface dst); /// /// Draws the object on to the given Surface after passing each pixel through /// the given pixel operation as in: dst = pixelOp(dst, src) /// /// The Surface to draw to. /// The pixelOp to use for rendering. void Draw(ImageSurface dst, PixelOp pixelOp); /// /// Draws the object on to the given Surface starting at the given (x,y) offset. /// /// The Surface to draw to. /// The value to be added to every X coordinate that is used for drawing. /// The value to be added to every Y coordinate that is used for drawing. void Draw(ImageSurface dst, int tX, int tY); /// /// Draws the object on to the given Surface starting at the given (x,y) offset after /// passing each pixel through the given pixel operation as in: dst = pixelOp(dst, src) /// /// The Surface to draw to. /// The value to be added to every X coordinate that is used for drawing. /// The value to be added to every Y coordinate that is used for drawing. void Draw(ImageSurface dst, int tX, int tY, PixelOp pixelOp); } }