Table of Contents

Namespace PaintDotNet

Classes

AlreadyInitializedException
ArrayExtensions
ArrayUtil
BinaryPixelOp

Defines a way to operate on a pixel, or a region of pixels, in a binary fashion. That is, it is a simple function F that takes two parameters and returns a result of the form: c = F(a, b)

BitmapLayer
BufferUtil
ByteUtil
CloneableExtensions
ComparableExtensions
Disposable

Provides a standard implementation of IDisposable and IIsDisposed.

DisposableExtensions
DisposableUtil
Document
DocumentExtensions
DoubleExtensions
DoubleUtil
EquatableUtil
EventHandlerExtensions
ExceptionUtil

The purposes of these methods is based on the fact that any method that throws an exception is not a candidate for inlining. Instead, you can call a method in this class which may then allow the calling method to be inlined.

ExtentPtr
ExtentPtrExtensions
FileDialogFilter
FileDialogFilterBuilder

A helper class for creating a string to use for the FilterText property of an OpenFileDialog or SaveFileDialog.

FileDialogFilterEntry
FileType

Represents one type of file that PaintDotNet can load or save.

FileTypeExtensions
FileTypeOptions
FileType<TToken, TWidget>

A strongly typed version of FileType.

FileTypesServiceExtensions
FloatExtensions
FloatUtil
HashCodeUtil
ImageResource
IndexEventArgs

Declares an EventArgs type for an event that needs a single integer, interpreted as an index, as event information.

Int32Extensions
Int32Util
Int64Util
InternalErrorException
Layer
LayerBlendModeExtensions
LayerBlendModeUtil
LayerList

Basically an ArrayList, but lets the containing Document instance be notified when the list is modified so it can know that it needs to re-render itself.
This implementation also enforces that any contained layer must be of the same dimensions as the document it is contained within. If you try to add a layer that is the wrong size, an exception will be thrown.

LayerListBase
MathUtil
MemoryBlock

Manages an arbitrarily sized block of memory. You can also create child MemoryBlocks which reference a portion of the memory allocated by a parent MemoryBlock. If the parent is disposed, the children will not be valid.

Metadata

This class exposes two types of metadata: system, and user. It is provided mostly for batching operations: loading all the data, modifying the copy, and then saving back all the data.

MetadataExtensions
NoSaveConfigWidget
NotInitializedException
Pair
PdnBaseForm

This is the base class for all Forms in Paint.NET.

PdnGraphicsPath
PdnRegion

Designed as a proxy to the GDI+ Region class, while allowing for a replacement that won't break code. The main reason for having this right now is to work around some bugs in System.Drawing.Region, especially the memory leak in GetRegionScans().

PixelOp
PluginSupportInfo
PluginSupportInfoAttribute
PluginSupportInfoAttribute<T>
PluginSupportInfoExtensions
PooledEventArgs
PooledEventArgs<TDerivedArgs>
PooledEventArgs<TDerivedArgs, TValue1, TValue2, TValue3, TValue4, TValue5, TValue6, TValue7, TValue8, TValue9>
PooledEventArgs<TDerivedArgs, TValue1>
PooledEventArgs<TDerivedArgs, TValue1, TValue2>
PooledEventArgs<TDerivedArgs, TValue1, TValue2, TValue3>
PooledEventArgs<TDerivedArgs, TValue1, TValue2, TValue3, TValue4>
PooledEventArgs<TDerivedArgs, TValue1, TValue2, TValue3, TValue4, TValue5>
PooledEventArgs<TDerivedArgs, TValue1, TValue2, TValue3, TValue4, TValue5, TValue6>
PooledEventArgs<TDerivedArgs, TValue1, TValue2, TValue3, TValue4, TValue5, TValue6, TValue7>
PooledEventArgs<TDerivedArgs, TValue1, TValue2, TValue3, TValue4, TValue5, TValue6, TValue7, TValue8>
ProgressEventArgs
PropertyBasedFileType
PropertyBasedSaveConfigToken
PropertyBasedSaveConfigWidget
RegionPtr
RegionPtrExtensions
RenderArgs

Encapsulates the arguments passed to a Render function. This way we can do on-demand and once-only creation of Bitmap and Graphics objects from a given Surface object.

SaveConfigToken
SaveConfigWidget
SaveConfigWidget<TFileType, TToken>
ServiceProviderExtensions
StringExtensions
Surface

Implements a BGRA32 bitmap used by classic/legacy plugins.

TypeExtensions
UInt32Util
UnaryPixelOp

Defines a way to operate on a pixel, or a region of pixels, in a unary fashion. That is, it is a simple function F that takes one parameter and returns a result of the form: d = F(c)

UnaryPixelOps

Provides a set of standard UnaryPixelOps.

UnaryPixelOps.AverageChannels

Averages the input color's red, green, and blue channels. The alpha component is unaffected.

UnaryPixelOps.BlendConstant

Blends pixels with the specified constant color.

UnaryPixelOps.Constant

Always returns a constant color.

UnaryPixelOps.Desaturate
UnaryPixelOps.HueSaturationLightness
UnaryPixelOps.Identity

Passes through the given color value. result(color) = color

UnaryPixelOps.Invert

Inverts a pixel's color, and passes through the alpha component.

UnaryPixelOps.InvertWithAlpha

Inverts a pixel's color and its alpha component.

UnaryPixelOps.SetAlphaChannel

Specialization of SetChannel that sets the alpha channel.

UnaryPixelOps.SetAlphaChannelTo255

Specialization of SetAlphaChannel that always sets alpha to 255.

UnaryPixelOps.SetChannel

Used to set a given channel of a pixel to a given, predefined color. Useful if you want to set only the alpha value of a given region.

UnsafeExtentPtr
UserBlendOp

Abstract base class that all "user" blend ops derive from. These ops are available in the UI for a user to choose from in order to configure the blending properties of a Layer. See UserBlendOps.cs for guidelines on implementation.

UserBlendOps

This class contains all the render ops that can be used by the user to configure a layer's blending mode. It also contains helper functions to aid in enumerating and using these blend ops. Credit for mathematical descriptions of many of the blend modes goes to a page on Pegtop Software's website called, "Blend Modes" http://www.pegtop.net/delphi/articles/blendmodes/

UserBlendOps.AdditiveBlendOp
UserBlendOps.ColorBurnBlendOp
UserBlendOps.ColorDodgeBlendOp
UserBlendOps.DarkenBlendOp
UserBlendOps.DifferenceBlendOp
UserBlendOps.GlowBlendOp
UserBlendOps.LightenBlendOp
UserBlendOps.MultiplyBlendOp
UserBlendOps.NegationBlendOp
UserBlendOps.NormalBlendOp
UserBlendOps.OverlayBlendOp
UserBlendOps.ReflectBlendOp
UserBlendOps.ScreenBlendOp
UserBlendOps.XorBlendOp
ValueChangedEventArgs
ValueChangedEventArgs<T>
ValueChangedEventHandlerExtensions
ValueEventArgs
ValueEventArgs<T>
ValueEventHandlerExtensions
WaitCursorChanger

Simply sets a control's Cursor to the WaitCursor (hourglass) on creation, and sets it back to its original setting upon disposal.

WrongStateException

Structs

ColorBgra

Defines a 32-bit BGRA color value. This is mostly used by legacy "classic" plugins, and is has been superceded by ColorBgra32.

ExtentPtr<T>
ExtentPtr<T>.Enumerator
LayerList.Enumerator
Pair<T1, T2>

A struct containing two elements.

ReadOnlySpanChunkEnumerable<T>
ReadOnlySpanChunkEnumerator<T>

Affords the traversal of a large memory region (64-bit length) in terms of ReadOnlySpan.

RegionPtrOffsetView<T>
RegionPtr<T>
RegionRowPtrCollection<T>
RegionRowPtrEnumerator<T>
RegionRowPtrEnumerator<T1, T2>
RegionRowPtrEnumerator<T1, T2, T3>
RegionRowPtrEnumerator<T1, T2, T3, T4>
RegionRowPtr<T>
RegionRowPtr<T>.Enumerator
Resolution
Scanline
SpanChunkEnumerable<T>
SpanChunkEnumerator<T>

Affords the traversal of a large memory region (64-bit length) in terms of Span.

UIScaleFactor

Interfaces

IArrayPoolBuffer<T>
IFileType

An interface that some built-in FileTypes implement.

IFileTypeFactory
IFileTypeFactory2
IFileTypeHost
IFileTypeInfo
IFileTypeSaveToken

A base interface for SaveConfigToken wrappers that provides a simpler interface for manipulating the token's properties.

IFileTypesService
IInternalImpl

Implemented by interfaces that may be consumed publicly but only implemented internally.

IIsDisposed
IJpegFileType
IJpegFileTypeSaveToken

Provides the ability to read and write the properties for the built-in JPEG FileType's save token.

IPixelOp

Provides an interface for the methods that UnaryPixelOp and BinaryPixelOp share. For UnaryPixelOp, this produces the function, "dst = F(src)" For BinaryPixelOp, this produces the function, "dst = F(dst, src)"

IPluginSupportInfo
IPluginSupportInfoProvider
IPngFileType
IPngFileTypeSaveToken

Enums

FitSurfaceOptions
LayerBlendMode
MeasurementUnit

Specifies the unit of measure for the given data.

MemoryBlockAllocFlags
PngBitDepth
PngQuantizationAlgorithm
ResamplingAlgorithm
SurfaceCreationFlags

Delegates

IndexEventHandler

Declares a delegate type for an event that needs a single integer, interpreted as an index, as event information.

ProgressEventHandler
ValueChangedEventHandler<T>
ValueEventHandler<T>