# Version History

#### 9.1:

- Did 64 bit fixes on Map effects.
- Did fixes on almost all effects on Linux systems where they could cause segmentation fault. This was due to our change to Clang not long ago.

  #### 9.0.2:

- Fixed 64 bit issues with MPImageFilter.CPUCoreCount
- Fixed 64 bit issues with some distort algorithms such as SurfaceWave for example.
- Fixed 64 bit issues with Stretch and scaling.
- Fixed 64 bit issues with Rotation.
- Fixed 64 bit issues with the custom ConvolutionMatrix object.
- Fixed small issues with GaussianBlur destructor. (Its not clear under what circumstances it could cause problems if ever at all but the code was incorrect non the less)

  #### 9.0:

- Added 64 bit compile support for Mac targets.
- Added 64 bit compile support for Windows targets.
- Added 64 bit compile support for Linux targets.
- Added ARM compile support for Linux.
- Fixed color issues in PageCurl effect on Cocoa compiles.
- All global methods have been moved into modules but set with global attribute there.
- Matrix class was renamed to ConvolutionMatrix.
- PictureEffectsChannel constants have been moved to the ImageChannelMixer class.
- RotationMethod constants have been moved to the RotateEffect class.
- GrayScaleType constants have been moved to the GrayscaleEffect class.
- RankOrderMethod constants have moved to RankOrderModule.
- Slightly reduced internal segment count of the plugin.
- The EnsurePictureBits and EnsurePictureCompatible functions have been moved into PictureEffectsUtilities module.
- PictureEffectsConsole and the new upcoming PictureEffectsRaw will now be separate download with separate release dates.

  #### 8.5:

- Added a PictureEffectsConsole plugin that comes with the PictureEffects that does some of the PictureEffects filters in Console mode. (The console plugin is only supported on Xojo).
- Fixed issue which made Cocoa builds never use the multiprocessing unit. Now Cocoa builds will be using
- multiple CPU’s now for first time.
- Phased out a lot of deprecated OS calls as well as deprecated Xojo calls.
- Changed a lot of API’s to prepare for 64 bit Xojo.
- Changed the compile architecture on Windows.
- Fixed some minor bugs and inaccuracy’s.
- Moved Multiprocessing CPU constants from PictureEffectsCPUUsage module to the MPImageFilterConsole class, and added constant for CPU core 5,6,7 and 8.

  #### 8.0.2:

- Fixed issue where some of the Windows segments in the full version were posting demo messages.
- Fixed segment issue in the Xojo plugin which could let cross compiling from one platform to another go bad.
- The included TypeLibF plugin now comes in Xojo format also and is compiled against newer Xojo SDK.

- #### 8.0:

- Now also ships with a Xojo plugin. The Xojo plugin comes in the new Xojo format and is compiled with newer SDK.
- Plugin segments come code signed on MacOS X systems.
- Fixed issue with Grayscale modes in the Grayscale effect.
- Fixed Xojo crash issue with the TrimEffect.
- Added GetTrimBounds function to the TrimEffect class.
- Added GetLastTrimBounds function to the TrimEffect class.
- Documentation now also ships as docset for the awesome Dash viewer from http://kapeli.com/dash. (Including this format is somewhat experimental)

- #### 7.6:

- Added Linux Cairo support, thus making it work on Linux again. (Real Studio 2011r4 or later now needed for Linux builds).
- Fixed linking so it now will work on the most modern Linux distro versions.
- Fixed Cocoa channel mixup in several filers.
- Fixed incorrectness in one of the blend modes when used on MacOS systems.

  #### 7.5.1:

- Fixed some issues with demo protection firing on full versions on Windows platforms.
- Fixed issue with the new Histogram class where it was causing trouble when making REALbasic console applications that were not even using this class.

  #### 7.5:

- Added a LevelsEffect class which inherits from MapEffect. This class can also generate histograms.
- Added a ImageChannelHistogram class.

  #### 7.4.2

- Added support for changed Pixel format in REALbasic 2011 on Cocoa

  #### 7.4:

- Added console support for the newest versions of REALbasic that support Pictures and Graphics in console mode. (REALbasic 2010r3 or later needed for Pictures support in console mode)
- Changed the channel map to support REALbasic 2010r4 and 2010r5 when compiling for Cocoa.

  #### 7.3.6:

- Tweaked the Cocoa compile to work correctly on the first official Cocoa release in REALbasic 2010r3.

- #### 7.3.5:

- Added a Linear Dodge mode to the Blend Effect. (Special thanks to Sam Rowlands for the ground work)
- Fixed the Saturation mode in the Blend Effect. (Special thanks to Sam Rowlands for the ground work)
- Greatly accelerated blends when using special modes when opacity = 1.0, this new acceleration works for all of the 22 special blend modes)
- The blend effect now implements the IGraphicsEffect interface and some properties were added to fully support that.

  #### 7.3:

- Added a ImageComparer class.
- The NTSCColorFilterEffect now supports the Multi CPU framework and can make full use of up to 8 CPU cores.
- NTSCColorFilterEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- Improved the ShapeDistort example project to demonstrate making a shape distorted image with transparent background by generating mask from a PolygonF object.

  #### 7.2:

- Added a CrystallizeEffect class.
- The PolarCoordinatesEffect now supports the Multi CPU framework and can make full use of up to 8 CPU cores.
- The PolarCoordinatesEffect now supports the IGraphicsEffect interface.
- BrightnessEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- ContrastEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- ColorFilterEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- DesaturateEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- GrayscaleEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- HueSaturationEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- InvertEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- SepiaEffect class now supports the IGraphicsEffect and IGraphicsEffectInPlace interfaces.
- Renamed the ApplyEffect function in the HueSaturationEffect class to Apply to conform to other effects in the plugin.

  #### 7.1:

- Added a GainEffect which inherits from the MapEffect.
- Added a ExposureEffect which inherits from the MapEffect.
- EqualizeEffect now inherits from MapEffect.
- ContrastStretchEffect now inherits from MapEffect.
- Fixed minor memory leak when using mask with EqualizeEffect.
- Fixed minor memory leak when using mask with ContrastStretchEffect.

  #### 7.0:

- Added Cocoa compile support for all segments in the plugin.
- Used a more optimized compiler on Windows systems.
- Fixed issue with Blend overlay mode on Windows and Linux systems.
- Fixed issue with Blend sharp light mode on Windows and Linux systems.
- Fixed issue with Motion Blur with mask in Linear mode on all systems.
- Fixed issue with Motion Blur with mask in Radial mode on all systems.

  #### 6.7:

- All effects that previously supported acceleration by running 4 CPU cores all at once now support running up to 8 cores all at once.
- The TextureRenderer effect now inherits from MPImageFilter and therefore now supports multiprocessing (up to 8 CPU cores).
- The TrimEffect is now a class and inherits from MPImageFilter and therefore now supports multiprocessing (up to 8 CPU cores).
- The ChromaKeyEffect is now a class and inherits from MPImageFilter and therefore now supports multiprocessing (up to 8 CPU cores).
- The GammaEffect is now a class and inherits from MPImageFilter and therefore now supports multiprocessing (up to 8 CPU cores).
- Re-added the TextureRenderer example project which seems to have been missing since version 5.5.
- Added IgnoreAlpha property to the TextureRenderer class.

  #### 6.6:

- Added a low level Map effect, that basically does the same as the REALbasic's built in RGBSurface.Transform except of course using the PictureEffects multiprocessing engine.
- Added a ImageChannel class.
- Added a ImageChannelMixer class.
- Added a PictureEffectsChannel constant module.
- On the RotateEffect and ScaleEffect classes the alpha channel is now also distorted within the same multiprocessing core, previously you had to process the alpha channel separately (REALbasic 2009r1 and later).
- On the following classes the Alpha channel is now passed to the result image. (REALbasic 2009r1 and later): BrignessEffect, ColorFilter, ContrastEffect, ContrastStretch, ConvolutionEffect, DesaturateEffect, EqualizeEffect, GrayscaleEffect, InterlaceEffect, InvertEffect, SepiaEffect.
- Added a IgnoreAlpha property to the following classes: BrightnessEffect, ColorFilter, ContrastEffect, ContrastStretch, ConvolutionEffect, DesaturateEffect, EqualizeEffect, GrayscaleEffect, InterlaceEffect, InvertEffect, SepiaEffect, RotateEffect.
- The EnsurePictureBits and EnsurePictureCompatible functions now preserve the alpha channel when passing the image through. (REALbasic 2009r1 and later).

  #### 6.5:

- Added a Stretch Contrast effect.
- Added a Equalize effect.
- Added a Replace Color effect.
- Added a IGraphicsEffect Interface.
- Added a IGraphicsEffectInPlace Interface.

  #### 6.4.2:

- Added a Linear Burn blend mode to the Blend effect.

  #### 6.4:

- Added a ShapeDistortEffect class.
- Added a CPUCoreCount property to the MPImageFilter base class.
- CPU Core detection is now automated like on the other platforms.

- #### 6.3:

- Multiprocessing is now also supported on Linux systems on all those filters that inherit from MPImageFilter (Note automated core detection is not there for Linux though).
- The Interlace class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- Interlace now has both Apply and ApplyInPlace functions.
- Fixed a memory leak in the Blend class.
- Changed the constructors and did other internal changes to support future REALbasic versions.
- Plugin is now linked against and dependent on libstdc++6 instead of libstdc++5 on Linux systems.

  #### 6.2:

- Added 20 blending modes to the BlendEffect class, Multiply, Screen, Overlay, Darken, Lighten, Color Dodge, Color Burn, Soft Light, Hard Light, Difference, Exclusion, HUE, Saturation, Color, Luminosty, Pin Light, Sharp Light, Vivid Light, Power Light.
- Added a PictureEffectsBlendMode constants module.
- Fixed a issue in the Flip Horizontal effect.

  #### 6.1:

- The Blend class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- The ColorFilter class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- The Grayscale class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- The Invert class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- The HueSaturation class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- ColorFilter, Grayscale, HueSaturation and Invert now all have both Apply and ApplyInPlace functions.
- The Universal Binary is now compiled as Bundle instead of dylib to support the new mechanism in REALbasic to load Mach-O plugins directly into memory.
- Fixed issue where ApplyBoth function in the flip effect would crash on odd number height pictures.
- Fixed several Linux issues.

  #### 6.0:

- The Brightness class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- The Contrast class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- The Sephia class now inherits from the MPImageFilter class, making it support multiple processor acceleration.
- Brightness,Contrast and Sephia now all have both Apply and ApplyInPlace functions.
- Fixed Inaccuracy problem when downscaling pictures.

  #### 5.9:

- Added a MPImageFilter base abstract class which all Multiprocessor Image filters will inherit from.
- The Rotation class now inherits from the MPImageFilter class.
- The Desaturate class now inherits from the MPImageFilter class.
- Added a FlipEffect class. (Accelerated to use up to 4 processors)
- Added a ConvolutionEffect class. (Accelerated to use up to 4 processors)
- Moved FlipHorizonal and FlipVertical to the new FlipEffect class.
- Added a new FlipEffect called FlipBoth.
- Moved Smooth, Sharpen, EdgeDetect, Blur, MeanRemoval, Emboss and ApplyMatrix to the new quad core ConvolutionEffect class.
- FlipHorizontal,FlipVertical and FlipBoth now all have both Apply and ApplyInPlace functions.
- Added a CalculateDestinationSize function to the Rotation class.
- Added a ScaleEffect class. (Accelerated to use up to 4 processors).
- Moved BilinearScale, StretchHorizontal and StretchVertical to the new quad core ScaleEffect class.
- Desaturate, Smooth, Sharpen, EdgeDetect, Blur, MeanRemoval, Emboss and ApplyMatrix will now all accept masks that are larger than the source image.
- Fixed a problem with FlipHorizontal when used with images with odd numbered width.
- Did syntax changes on Rotation and Desaturate classes.

- #### 5.8:

- Re-wrote the Desaturate algorithm. The new version makes full use of machines with multiple CPU cores. The algorithms supports up to 4 CPU cores (On MacOS X and Windows platforms).
- The Desaturate algorithm can work in place on the source image and in non- in place mode.
- Re-wrote the Rotate algorithm. The new version makes full use of machines with multiple CPU cores. The algorithms supports up to 4 CPU cores. (On MacOS X and Windows platforms).
- Added PictureEffectsCPUUsage constants module.
- Added two new example projects that demonstrate experiments with multi-CPU core features.

  #### 5.7.2:

- Fixed a problem on Windows systems where the Wave, SurfaceWave and Pixelate filters would crash when used with certain sizes of images.

  #### 5.7

- Added a GaussianBlur effect.
- Added PictureEffectsError constants module.
- Accelerated the SurfaceWave filter on all platforms.
- The following filters now use 32bit blend masks instead of 1bit on/off masks: Invert, SurfaceWave, Wave, RankOrder, Pixelate, NTSCColorFilter, ChromaKey, Interlace, Motion Blur.
- The following filters now use 32bit non blend masks instead of 1bit on/off masks: Diffuse.
- The following filters were accelerated on Windows systems: Invert, Twirl, PageCurl, FlipHorizontal, FlipVertical, Wave, Pixelate, NTSCColorFilter, ChromaKey.
- Fixed a problem where the following filters could get unwanted artifacts when used with REALbasic 2006r4 on Windows systems: Invert, SurfaceWave, Twirl, PageCurl, FlipHorizontal, FlipVertical, Wave, Pixelate, NTSCColorFilter, ChromaKey.
- Added a new example project for the Gaussian Blur.
- Added a new example project for the Water drops filter.
- Added a new example project for the Oil Paint filter.
- Updated many of the example projects for the 32 bit blend masks.
- Legacy one bit masks that were never properly supported in REALbasic have been phased out.

  #### 5.5:

- Added support for MacOS X Universal Build.
- Added Sepia filter.
- Added Clouds texture renderer.
- Added Wood texture renderer.
- Added Marble texture renderer.
- Added Textile texture renderer.
- Added Labyrinth texture renderer.
- Added support for TypeLib 5.5.

  #### 5.0:

- Added a OilPaint Filter.
- Added a WaterDrops filter.
- The Grayscale filter now uses 32bit blend masks instead of 1bit on/off masks.
- The Brightness filter now uses 32bit blend masks instead of 1bit on/off masks.
- The Contrast filter now uses 32bit blend masks instead of 1bit on/off masks.
- The ColorFilter now uses 32bit blend masks instead of 1bit on/off masks.
- The Desaturate filter now uses 32bit blend masks instead of 1bit on/off masks.
- The Gamma filter now uses 32bit blend masks instead of 1bit on/off masks.
- The Hue/Saturation filter now uses 32bit blend masks instead of 1bit on/off masks.
- Fixed a problem in the Grayscale filter where both NTSC_PAL and ITU_R where actually giving NTSC_PAL result.
- Fixed a problem when using the Linux IDE where the PictureEffects constants could not be used.
- Added two new example projects.
- Updated many of the example projects.

  #### 4.7:

- Added support for 32 bit masks in the Blend effect since REALbasic does not handle one bit images well.
- The Blend effect now can do fade-in masking by using a Grayscale mask.
- Improved the Blend example project to demonstrate Grayscale masking.

  #### 4.6:

- Added a BarrelDistortion filter.

  #### 4.5:

- Added a Interlace filter.
- Added a Polar Coordinates filter.
- Added InterlaceType constants.
- Windows segments are now compiled with a different compiler to support future roadmap and long term goals for the plugin.

  #### 4.1:

- Added a Diffuse function.
- Fixed a problem on Windows systems where the Rotate algorithm was rotating in incorrect direction when used with modern REALbasic versions.

  #### 4.0:

- All matrix filters (Smooth, Sharpen, EdgeDetect, Blur, MeanRemoval, Emboss and ApplyMatrix) are now 5-6% faster than before.
- All matrix filters now handle the one pixel frame around the picture.
- All matrix filters now can take 32 bit Grayscale mask to accomplish blending with the original.
- Added a TrimPicture function.

  #### 3.9.4:

- Added support for more yellowish-green Chroma background in the CreateChromaKeyMask function.
- Fixed a problem where Mach-O applications would only be usable to MacOS X 10.3.9 and later user. (Because of using GCC 4.0).
- Added support for users of the plugin to decide on if using more optimized GCC 4.0 Mach-O segment or a more backward compatible Mach-O segment. (Can be configured by using Plugin Tool 2.5 or later).

  #### 3.9:

- Added a CreateChromaKeyMask function.
- Ported the Mach-O target to use Xcode to prepare for upcoming Mac Intel targets.
- Fixed a problem where Desaturate, GammaFilter and Hue/Saturation were crashing on Linux systems.
- Improved the documentation.

  #### 3.8:

- Added high quality Rotation mode.
- Added RotationMethod constant module to choose rotation method.

- #### 3.7.2:

- The plugin was altered so it could pass tests for next generation of REALbasic.

  #### 3.7:

- Added a red eye reduction algorithm.
- Added a red eye reduction example project.

  #### 3.6.6:

- Fixed a bug with down scaling which caused a part of the picture to get cut off in BilinearScale, StretchHorizontal and StretchVertical.

  #### 3.6.4:

- Fixed a critical error that could lead to crashes in some cases with the RankOrderFilter.
- Fixed a critical error with all Matrix filters (Smooth, Sharpen, EdgeDetect, Blur, MeanRemoval and Emboss) then could lead to crashes in some cases on Windows Systems.

- #### 3.6:

- Added a RankOrderFilter.
- Added RankOrderMethod constants to be used with the RankOrderFilter (Min, Max and Median).

  #### 3.5:

- Added high quality StretchVertical function.
- Added high quality StretchHorizontal function.
- Improved the BilinearScale function by adding high quality down-sampling which is used when scaling down.
- Improved the GrayScale function by adding 4 algorithm modes, NTSC/PAL, ITU R, Average and Weighted average.
- Added GrayScaleType constants.
- Improved the scaling example project.
- Added a new GrayScale example project.
- Improved the documentation.

- #### 3.4:

- Added a Desaturate effect.
- Added Mach-O support for all effects and filters in the plugin.
- The plugin now comes with high quality HTML documentation instead of a RB Plugin Plunger documentation.

  #### 3.3:

- Accelerated the following algorithms greatly on Win32 systems when used on REALbasic 5.5.2 or later: Blend, Rotate, BilinearScale, MotionBlur, Brightness, Contrast, GrayScale, ColorFilter, Smooth, Sharpen, EdgeDetect, Blur, MeanRemoval, Emboss, ApplyMatrix.
- Accelerated the utility functions greatly on Win32 systems when used on REALbasic 5.5.2 or later: EnsurePictureBits, EnsurePictureCompatible.
- Did speed optimizations in the MotionBlur algorithm for all target platforms.

  #### 3.2:

- Made the Blend effect five times faster than it was before.
- The plugin is now protected against version conflicts on Windows and Linux systems.

  #### 3.1:

- Added high quality Bilinear Scaling.
- Accelerated the Contrast effect to make it almost 2x faster than it was before.
- Accelerated the Motion Blur effect to make it slightly faster than it was before.

  #### 3.0:

- Added Linux compile for all effects.
- Added support for Win32 upside down pixmaps in the blend effect.
- All the Matrix effects, Smooth, Sharpen, EdgeDetect, Blur, MeanRemoval, Emboss and ApplyMatrix, now have a valid RGBSurface when compiled for WIN32.
- SurfaceWave no longer attempts to mutate the original.
- SurfaceWave now has valid RGBSurface when compiled for Win32.
- Made the SurfaceWave effect faster than it was before.
- Twirl no longer attempts to mutate the original.
- Twirl now has valid RGBSurface when compiled for Win32.
- PageCurl no longer attempts to mutate the original.
- PageCurl now has a valid RGBSurface when compiled for Win32.
- Made the PageCurl effect faster than it was before.
- FlipHorizontal no longer attempts to mutate the original.
- FlipHorizontal now has valid RGBSurface when compiled for Win32.
- FlipVertical no longer attempts to mutate the original.
- FlipVertical now has valid RGBSurface when compiled for Win32.
- Pixelate now has valid RGBSurface when compiled for Win32.
- Wave now has valid RGBSurface when compiled for Win32.
- HueSaturation now has valid RGBSurface when compiled for Win32.
- GammaFilter now has valid RGBSurface when compiled for Win32.

- #### 2.9:

- Added a NTSCColorFilter function.
- Greatly Improved accuracy in the PageCurl effect which eliminates unwanted black dots in the curl.
- Added AutomaticCurlBackShading and CurlBackShadingOpacity properties to the PageCurl effect to give better control over the curl back shading.

  #### 2.8:

- Replaced Ensure32BitPicture with a more flexible function called EnsurePictureBits.
- Added a EnsurePictureCompatible function.
- Images returned by the following effects function now have a valid RGBSurface object on Win32 systems: Rotate, MotionBlur, Brightness, Contrast, Blend, GrayScale, ColorFilter, Invert.
- The MotionBlur filter now corrects the angle to stay in sync with the Mac angle on Windows systems when the bitmap is internally upside down which it is most of the time on Windows systems.
- The following effects now support 24 bit images in addition to the 32 that they did before: MotionBlur, Brightness, Contrast, Blend, GrayScale, ColorFilter, Invert.
- The following Effects no longer attempt to mutate the original image: Brightness, Contrast, Blend, GrayScale ColorFilter, Invert.

  #### 2.7.2:

- Added support to overcome QuickDraw limitation to handle Images that are wider than 4096 pixels.
- Tweaked class offsets to support REALbasic 5.5 alphas.

  #### 2.7:

- Made improvements in a base algorithm which delivers speed improvements to all of the algorithms in the plugin.

  #### 2.6:

- Added a MotionBlur filter.
- Added a MotionBlur example.
- Improved many of the examples.

  #### 2.5:

- Made the plugin work on REALbasic 5 (5.1 and 5.2).
- Made the plugin work with the REALbasic Windows IDE (5.2 and later).
- Fixed byte offset when doing crosstalk with TypeLib types in REALbasic 5.1 and later.
- Added a IProgressProc Interface which enables early bind progress procs.
- Removed the old late bind ProgressProc class
- Fixed incorrect color mapping on Win32 systems with the Pixelate Effect.
- Fixed incorrect color mapping in the back color handling for the Wave effect on Win32 systems.
- Fixed incorrect color mapping in the back color of the Rotation.

  #### 2.0:

- Added a Wave effect.
- Added a Pixelate effect.
- Added a Gamma Effect.
- Added a HueSaturation Class which can do Hue, Saturation and Lightness for all hue channels, and individual hue channels.
- Added a example project for the HueSaturation class.
- Added a example project for the Pixelate effect.
- Added a example project for the Wave effect.

- #### 1.7:

- Added a Matrix class to define custom Matrixes.
- Added a ApplyMatrix filter to execute custom 3x3 matrixes.

  #### 1.6:

- Added a Ensure32BitPicture function to speed up picture preparations before a effect is used. (This may only be used with effects that do not alter the original image).
- The Edge Detect filter will no longer alter the original image.
- The Emboss filter will no longer alter the original image.
- The Blur filter will no longer alter the original image.
- The Smooth filter will no longer alter the original image.
- The Sharpen filter will no longer alter the original image.
- The Mean Removal filter will no longer alter the original image.
- Cleaned up all the sample projects.

  #### 1.5:

- Added a Rotation function which will automatically switch between the following modes: Native 90 degree rotation, Native 180 degree rotation, Native 270 degree rotation and Free rotation.
- Added a sample project for rotation.

- #### 1.4:

- Added a Blend effect.
- Added a Page Curl effect.
- Added a PageCurlParams class to set advanced features for the Page Curl effect.
- Added a sample project to show most of the features in the Page Curl effect.
- Added a sample project to show most of the features in the Blend effect.

  #### 1.2:

- Added a Twirl effect.
- The InvertPicture now also can invert 1 bit pictures (Intended to invert masks)
- Added a mask parameter to the InvertPicture function.
- Added a mask parameter to the Brightness function.
- Added a mask parameter to the Contrast function.
- Added a mask parameter to the ColorFilter function.
- Added a mask parameter to the GrayScale function.
- Added a mask parameter to the Sharpen function.
- Added a mask parameter to the Smooth function.
- Added a mask parameter to the Blur function.
- Added a mask parameter to the EdgeDetect function.
- Added a mask parameter to the Emboss function.
- Added a mask parameter to the MeanRemoval function.
- Added a mask parameter to the SurfaceWave function.
- Added a example project that demonstrates usage of masks.
- Added a more error checks to many of the filters.

  #### 1.0:

- Added a Brightness function.
- Added a Contrast function.
- Added a ColorFilter function.
- Added a FlipHorizontal function.
- Added a FlipVertical function.
- Added a GrayScale function.
- Added a InvertPicture function.
- Added a Sharpen function.
- Added a Smooth function.
- Added a Blur function.
- Added a EdgeDetect function.
- Added a Emboss function.
- Added a MeanRemoval function.
- Added a SurfaceWave function.
- Added a ProgressProc class.
- Added PPC, Carbon and Win32 support for all functions and the ProgressProc class.

  ####