-
Notifications
You must be signed in to change notification settings - Fork 2
meanderix/vpr
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Vectorial Polygon Rasterizer for Graphics32 1.23 ================================================ Description: A new polygon rasterizer that computes exact coverage values in floating point precision. The rendering quality is on par with other high quality rasterizers, such as AGG and FreeType. Homepage: <http://vpr.sourceforge.net> Advantages: - Coverage values are computed with exact sub-pixel accuracy; - Support for rectangular clipping; - Support for non-zero and even-odd fill modes; - Supports poly-polygons; - High performance - does not require oversampling; - Supports the GR32 polygon fillers; - Possible to implement custom renderers for different render targets; - Support for General Polygon Clipper for performing polygon set operations. Acknowledgements: - Thanks to Angus Johnson and Anders Melander for helping me track down bugs. - Thanks to Sanyin for providing SSE2 optimized CumSum implementation. - Thanks to Michael Hinrichs for reporting about a buffer overflow bug. Change log: Version 1.00 (28 January 2009): - First version. Benchmark demo included. Version 1.01 (29 January 2009): - Added {$I GR32.INC} to units to avoid range check errors; - PolygonFS/PolyPolygonFS now have default parameter values for FillMode and RasterMode; - Fixed bug when using polygon filler (EMMS was not called); - Fixed problem when passing zero length polygon arrays; - Updated to correct dates in license preambles. Version 1.02 (1 February 2009): - Added Single precision version of Round (somewhat faster); - Fixed a problem in the MakeAlpha*P functions that would result in incorrect alpha values. Version 1.04 (4 February 2009): - Support for gamma correction (by defining USEGR32GAMMA symbol); - Minor tweaks and optimizations. Version 1.05 (11 February 2009): - Added PolyFillline routine to GR32_PolygonsEx; - Fixed vertical clipping problem; - Minor tweaks and optimizations. Version 1.06 (12 February 2009): - Fix: scanlines that were completely filled were not painted. Version 1.10 (25 February 2009): - Changed the clipping mechanism. Clipping is now handled by the ClipPolygon routine in GR32_VectorUtils.pas; - Fix: coordinates were in some instances outside the clipping rectangle; - Removed the RasterMode parameter (rmOptimize <> improved performance); - Added support for open polylines; - Added TJoinStyle and TEndStyle in PolyLine routines; - Added LibArt to the benchmark tool. Version 1.11 (26 February 2009): - Added GR32_VectorGraphics unit, which includes auxiliary classes for drawing paths. Version 1.12 (28 February 2009): - Added BuildDashedLine routine, for creating dashed strokes; - Added Cairo Graphics to the benchmark tool; - Minor tweaks and bugfixes. Version 1.13 (2 Mars 2009): - Changed naming of TEndStyle enumeration types, to avoid confusion; - Changed MiterLimit parameter to conform with the SVG specification; - Added TRenderSpanEvent type and changed declaration of TRenderSpanProc; - Fixed bug in ClipPolygon routine. Version 1.14 (3 Mars 2009): - Fixed bug when rendering closed polylines; - Fixed bug that caused coordinates outside the clipping rectangle to be processed by the renderer. Version 1.15 (4 Mars 2009): - Fixed problem with line joins when polygon included zero-length segments. Version 1.16 (4 Mars 2009): - Fixed problems with line ends and open polylines. Version 1.17 (16 Mars 2009): - Fixed problem with line ends; - Addded GR32_CFDG.pas -- a renderer for CFDG commands. Version 1.18 (18 May 2009): - Fixed problem in BuildPolyLine. Thanks to Dirk Carstensen for reporting. Version 1.19 (25 May 2009): - Fixed BuildPolyLine problem again. Thanks to Angus Johnson. Version 1.20 (16 June 2009): - Added support for LCD sub-pixel rendering (PolygonFS_LCD); - Added TransformPolygon function to GR32_VectorUtils; - Added AggLite library to the benchmark demo (thanks to Dmitry Gultyaev). Version 1.21 (16 June 2009): - Fixed D7 compilation problem; - Fixed problems in LCD rendering routine. Version 1.22 (17 June 2009): - Added PolygonFS_LCD2 routine that performs an additional filtering pass. The result is smoother, but the performance hit is bigger. Version 1.23 (28 February 2010): - Added General Polygon Clipper (gpc.pas) [covered by separate license]; - Added a GPC test project (originally written by Richard B. Winston); - Added SSE2 optimized CumSum routine by Sanyin <[email protected]>; - Fix: BuildDashedLine could return faulty line segments; - Minor tweaks and optimizations. Version 1.24 (30 April 2010): - Maintenance update -- fixes a potential buffer overflow problem; - Improved CumSum implementation by Sanyin. Version 1.25 (6 November 2010): - Maintenance update -- renaming/fixing broken packages. Included files: GR32_VPR.pas this unit includes the core routines for computing coverage values for each scanline. GR32_PolygonsEx.pas an interface to the GR32 library, with designated polygon routines. GR32_VectorUtils.pas misc. auxiliary routines used by the rasterizer. demo\VPR_Benchmark.dpr benchmark demo (comparison with GR32_Polygons). License: This work is copyright Centaurix Interactive Designs / Mattias Andersson. It is licensed under the terms of the Mozilla Public Licene 1.1 (MPL 1.1, available from http://www.mozilla.org/MPL/MPL-1.1.html) 3rd-party licenses: - The General Polygon Clipping library is copyright (C) Advanced Interfaces Group, University of Manchester and is free for non-commercial use only: <http://www.cs.man.ac.uk/~toby/alan/software/gpc.html> - AggPas and AggLite is copyright (C) Maxim Shemanarev: <http://www.antigrain.com> Contact Details: Snailmail: Mattias Andersson Stranden 19 475 31 Öckerö Sweden E-mail: [email protected] Donations: If you find this software useful, the best way to show your support would be through a donation. See this page for more info: <http://graphics32.org/donation/> Copyright (C) 2008 - 2009 Mattias Andersson
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published