Contributors

(in alphabetical order):

v1.8.x


Mattias Andersson
<mattias@centaurix.com>:

GR32.pas:
- Added fast integer versions of HSLtoRGB and RGBtoHSL
- Added TCustomSampler and TCustomResampler
- Added dmTransparent draw mode
- Added TBitmap32.WrapMode property
- Added TBitmap32.PixelW property

GR32_LowLevel.pas:
- Added clamp, wrap and mirror routines

GR32_OrdinalMaps.pas:
- Initial developer
- Added TBooleanMap, TWordMap and TIntegerMap

GR32_Resamplers.pas:
- Initial developer
- Added TCustomKernel and descendant classes
- Added TBitmap32Resampler and descendant classes
- Added TNestedSampler
- Added TTransformer
- Added TSuperSampler, TAdaptiveSuperSampler and TPatternSampler
- Added TKernelSampler and descendant classes
- Added auxiliary routines for convolution and morphological operations
- Optimized TKernelResampler.GetSample (with Michael)
- Added BlendTransfer routine
- Added CreateJitteredPattern routine

GR32_Rasterizers.pas:
- Initial developer
- Added TRasterizer and descendant classes

GR32_Transforms.pas:
- Updated Transform procedure

GR32_ExtImage.pas:
- Initial developer
- Added TSyntheticImage and TRenderThread
- Added Rasterize auxiliary routine

GR32_Containers.pas:
- Added TClassList

Examples:
- Mandelbrot Example
- Nested Sampling Example
- Resampler Example

 

Andre Beckedorf <andre@metaexception.de>:

GR32.pas:
- Added MeasuringMode and changed area notification required for repaint optimizer (BeginMeasuringMode, EndMeasuringMode, OnAreaChanged)
- Added switchable back-end framework

GR32_Containers.pas:
- Added TPointerMap and TPointerMapIterator
- Added TRectList

GR32_Image.pas:
- Added support for repaint optimization to display components (TCustomPaintBox32, TCustomImage32, TCustomImgView32)
- Added property to control scrollbar visibility (TCustomImgView32.Scrollbars.Visibility)
- Added independent X and Y scale properties in TCustomImage32 along with new OnScaleChange event
- Added additional scale modes smOptimal and smOptimalScaled
- Added RepaintMode property to control whether to use repaint optimizer, direct or full scene repaint

GR32_Layers.pas:
- Replaced CoordXForm property with more flexible GetViewportShift and GetViewportScale methods in TLayerCollection (e.g. for nested layers)
- Added support for repaint optimization to TCustomLayer descendants
- Added new Update methods to TCustomLayer
- Added Options property, proportional resize and OnConstrain event

GR32_LowLevel.pas:
- Initial support for FastCode routines

GR32_MicroTiles.pas:
- MicroTiles and Tiles auxiliary routines
- MicroTiles Repaint optimizer
- Adaptive balancing
- MMX optimization for MicroTileUnion

GR32_Polygon.pas:
- Added additional 2x and 32x supersampling mode
- Performance optimization

GR32_RepaintOpt.pas:
- Abstract Repaint optimizer class

GR32_System.pas:
- Added support for EMMX detection (used in repaint optimizer)
- Added TPerfTimer class along with global performance timer
- Added GetTickCount derivative for Linux
- Fixed AV when using Graphics32 in DLLs on WinXP

Examples:
- Modified Sprites_Ex, ImgView32_Ex, GradLines_Ex, Polygons_Ex and Image32_Ex Example

 

Michael Hansen <dyster_tid@hotmail.com>:

GR32.pas:
- Fixed Math related additions
- Auxiliary rectangle routines
- Misc. array types
- Added TColor32Component, TColor32Components and related routines (TColorEntry updated)
- Optimized TBitmap32.ResetAlpha

GR32_Layers.pas:
- Enhancements to TRubberbandLayer

GR32_Lowlevel.pas:
- MMX optimized FillLongword

GR32_Filters.pas:
- ASM/MMX/EMMX optimized Invert
- Added fast CopyComponents routine for copying selected ARGB components btwn. bitmaps
- Added ASM/MMX/EMMX ApplyBitmask routine for bitwise Xor/Or/And operations using a bitmask

GR32_OrdinalMaps.pas (new unit):
- Minor tweaks for TByteMap

GR32_Resamplers.pas (new unit):
- Added kmTableLinear and kmTableNearest kernel modes
- Optimized TLinearResampler
- Fixed TDraftResampler
- GetSampleFloat optimizations
- New overloaded BlendTransfer routine, supporting TBlendRegEx and MasterAlpha
- New PixelAccessMode pamTransparentEdge as a dynamic and fast alternative to SetBorderTransparent
- Minor tweaks in TPatternSampler
- Minor optimizations in pamTransparentEdge related routines

GR32_Transforms.pas:
- Added following transformation types:

- TTwirlTransformation
- TBloatTransformation
- TDisturbanceTransformation
- TFishEyeTransformation
- TRemapTransformation

- Additional performance tuning

GR32_VectorMaps.pas (new unit):
- Initial developer
- Added TVectorMap, supporting loading and saving in Photoshop .msh format

Examples:
- Image Warping Example
- Visualization Example
- Resample Example
- Texture blend Example
- Additional updates to various examples (see sources)

v1.7 and v1.6


Mattias Andersson <mattias@centaurix.com>:

GR32.pas:
- Tweaks
- PixelF/X property
- Some minor CLX/Kylix tweaks
- Added CombineMode

GR32_Image.pas:
- Ported to CLX/Kylix

GR32_Polygons.pas:
- Added TPolygon32.ContainsPoint method

GR32_Transforms.pas:
- Added sfCosine resampling filter

GR32_Blend.pas
- Pascal and MMX version of Merge algorithm
- Added MMX versions of almost all PixelCombine functions

Andre Beckedorf <andre@metaexception.de>:

GR32.pas:
- Added Unicode text methods
- Ported to CLX/Kylix
- Added CombineMode
- Added clipping rect support
- pixel-perfect line drawing methods (LineS, LineTS, LineAS)

GR32_Image.pas:
- Some part of the CLX/Kylix related changes in this unit
- Added new overrideable Mouse* methods with Layer information
- Added OverSize property in TCustomImgView32

GR32_Layers.pas:
- enhancements to TRubberbandLayer

GR32_Polygon.pas:
- Added option for dynamic antialias level adjustment at runtime along with 4x supersampling mode
- Added support for custom polygon fillings (TCustomPolygonFiller, TBitmapPolygonFiller) and transformations
- Added support for clipping to rect
- Added PolylineXSP and PolyPolylineXSP
- Additional performance tuning

GR32_RangeBars.pas:
- Ported to CLX/Kylix

GR32_System.pas:
- Added support for SSE, SSE2, 3DNow and 3DNow Ext detection

GR32_Transforms.pas:
- Update to transformation classes to make them suited for general usage

Michael Hansen <dyster_tid@hotmail.com>:

GR32.pas:
- PixelF/X property
- MMX optimized GetPixelF/X FS/XS functions

GR32_Blend.pas:
- Added Difference and Exclusion PixelCombine functions (Pascal)
- Added PixelCombine function setup, to support non MMX cpus
- Worked out bugfix for "not fully opaque" problem in some blendroutines

GR32_Transforms.pas:
- Added sfDraft resampling routines
- MMX optimized sfLinear and sfDraft
- Updated Transform to use PixelX and PixelXS


Contributors:

Arioch /BDV/:

GR32.pas
- Added WinPalette function. (merged by Mattias with some modifications)

Thomas Bauer:

GR32.pas:
- Some bugfixes (merged by Andre)

GR32_Transforms.pas:
- FullEdge related bugfixes (merged by Andre)

Soumitra Bhattacharjee:

GR32_Polygons.pas:
- Added PtInPolygon function. (merged by Mattias with some modifications)

Greg Chapman:

GR32_Filters.pas:
- Report and bugfix for the CheckParams problem in ApplyLUT. (merged by Andre)

Cleber:

GR32.pas:
- Added Color32ToRGB(A). (merged by Andre)

Dieter Köhler:

GR32_Layers.pas:
- TLayerCollection.LocalToViewport
- TLayerCollection.ViewportToLocal
- TPositionedLayer.GetAdjustedRect (all merged by Andre)

Marc Lafon:

GR32_Image.pas:
- Custom color properties for the bars (merged by Andre)

Peter Larson:

GR32_Polygons.pas:
- Initial work on polygon transformation and bitmap pattern filling.
- Some optimizations in polygon setup.

GR32_Transforms.pas:
- TransformPoints routine.

Gerd Platl :

Documentation:
- Illustration for TPolyFillMode

Andrew P. Rybin:

GR32_Image.pas:
- MouseEnter/MouseLeave (merged by Andre with some changes to match structure)

J. Tulach:

GR32.pas:
- Additional handling of chroma transperancy in TBitmap32.Assign (merged by Andre with some modifications and comments).

GR32_Transforms.pas:
- C++ Builder workaround (merged by Andre)

Bob Voigt:

GR32_Blend.pas:
- ColorMul and ColorDiv (merged by Andre)

Jens Weiermann:

GR32_Filters.pas:
- enhancements to ApplyLUT and ColorToGrayscale that preserve alpha channel (merged by Andre)

Norbert Witternigg:

- updated the example project files to Borland C++ Builder 6.

Peter Wichenthaler-Sternbach:

- implemented clipping for the AggLite renderer.

See Also

Back-Ends, Repaint Optimization