Revision history for SVG-Rasterize
0.003008 Sat May 21 21:02:18 NZST 2011
- This release is at the same time a release candidate for
0.004000.
- Incompatible changes:
- Interface of backend classes (note that this interface
is marked as generally unstable):
- The interface of the draw_text method has changed to
allow the specification of a rotate attribute.
- docu fixes
- fixed outdated README
- prepared the code to start support for SVG files based on
XML::SAX
0.003007 Tue May 3 19:51:07 NZST 2011
- Incompatible changes:
- The default backend SVG::Rasterize::Cairo has been
renamed to SVG::Rasterize::Engine::PangoCairo. There is
a base class SVG::Rasterize::Engine which backends
should inherit from. If you are selecting the
rasterization backend explicitly you will have to
update your code. Otherwise - unless you are
maintaining your own rasterization backend for
SVG::Rasterize - this change is completely transparent
for you.
- more font attributes
- minor fixes and improvements
- docu expansion
0.003006 Thu Apr 28 20:21:15 NZST 2011
- Incompatible changes:
- The current_text_position method of
SVG::Rasterize::State has gone.
- Fixes bug #67699.
- Major revision of the traversal of the node tree enabling
a much cleaner approach to deferred rasterization of text
elements. This should be transparent even for hooks.
- Major revision of the way text is processed. This
framework will hopefully be fully capable of handling
text correctly including bidi text etc..
- Alignment of text via text-anchor
- Positioning of individual characters
0.003005 Fri Apr 22 11:53:35 NZST 2011
- Support for more text attributes:
- font-size (except relative font sizes)
- Regex check of ID attributes.
- Reorganized docu to increase user friendliness.
- Reorganization and substantial expansion of test suite,
guided by Devel::Cover.
- Comments are ignored now as they should. This fixes bug
RT#62943. Additionally, title, desc, and metadata
elements are ignored.
- Minor bug fixes.
0.003004 Thu Jun 17 13:16:14 NZST 2010
- Adds support for currentColor and hex color settings.
- Introduces methods to restore default hooks.
- Makefile.PL tests for sufficiently high versions of the
cairo and pango C libraries thereby avoiding failing
CPAN testers smoke tests.
0.003003 Sun Jun 13 20:48:11 NZST 2010
This is a maintenance release covering the following
improvements:
- The specification is split into different modules
(according to the classes in the DTD) which are only
loaded when needed. The avoids loading the 12KB
Specification module at the start even if only small bits
will be used.
- The specification modules now contain information which
elements are allowed to hold parsed character data (other
than white space). This is checked during validation.
- Class::Accessor now also throws an Exception::Class
object if it is attempted to set a readonly attribute.
0.003002 Fri Jun 11 20:09:34 NZST 2010
- Now introducing the Pango dependency (see 0.003001).
- Starting support for text elements. This brings some
little, but not backwards compatible changes in the
interface of SVG::Rasterize::State:
- The child nodes are determined outside of state now and
handed over to the constructor.
- The method hasChildNodes has gone, and nextChild has
been renamed to shift_child_node.
- Additionally, there has been an interface change of the
before_node_hook (which was marked as experimental). It
now receives named parameters and is expected to return a
(potentially modified) hash.
- Various bug fixes including RT#58114.
- Detailed audit of the main docu.
0.003001 Thu Jun 3 20:36:38 NZST 2010
- Main purpose for this (kind of premature) release: Fixes
bug in SVG::Rasterize::Cairo that prohibit the
specification of an output file name.
- New dependency Pango (1.220 or higher)...postponed in
order to allow testing my perl 5.8.9 installation.
- Fixes bug in validation of attributes with a list of
valid values.
0.003000 Wed Jun 2 20:41:08 NZST 2010
Identical to 0.002003.
0.002003 Wed Jun 2 20:34:37 NZST 2010 (unpublished)
- Prepared the framework for greater flexibility in output
formats etc..
- Docu fixes and expansion.
0.002002 Tue Jun 1 21:08:09 NZST 2010 (unpublished)
- Partial rendering of paths, polylines, and polygons if
they are in error.
- Consequent use of Params::Validate (or documentation that
parameters are not validated).
- Documentation of diagnostics.
- Docu fixes and expansion.
0.002001 Sun May 30 16:21:15 NZST 2010 (unpublished)
- New dependency Exception::Class (1.29 or higher).
- Proper error handling as required by spec (except partial
rendering of path, polyline, and polygon).
- Docu fixes.
- All methods return explicitly.
0.002000 Tue May 25 15:42:09 NZST 2010
Documentation updates.
0.001006 Tue May 25 15:06:16 NZST 2010 (unpublished)
- Adds support for all basic shapes
- rect
- circle
- ellipse
- (line was already supported)
- polyline
- polygon
- Revision of large parts of the docu.
0.001005 Sun May 23 21:39:39 NZST 2010
- Color filling (no gradients, patterns etc.).
- (Semi-)transparent stroking and filling including
different opacity values for stroke and fill and without
the fill shining through transparent stroke.
- Further newly supported properties (all fill and stroke
properties):
- fill-rule
- stroke-linecap
- stroke-linejoin
- stroke-miterlimit
- stroke-dashoffset
- stroke-dasharray
- Bugfixes:
- in processing of explicit 'inherit' property
values
- in path data processing
- color values are clamped at presentation time instead
of parsing time (as recommended by the spec).
0.001004 Fri May 21 21:19:54 NZST 2010 (unpublished)
- Elliptical arcs including example script.
0.001003 Thu May 20 19:59:30 NZST 2010 (unpublished)
- Support for all path commands except elliptical arc.
- Core documentation up-to-date.
0.001002 Sun May 16 19:33:22 NZST 2010
- The final transformation matrix is now applied by the
rasterization engine and not by SVG::Rasterize. This is
necessary for correct stroke-width handling with
inhomogeneous scaling and skewing.
- Introduces partial path support. All valid path data
strings are swallowed, but only moveto, closepath, and
lineto commands are supported, the rest is ignored.
- Reorganizes SVG::Rasterize::Regexes into a set of
hashes. The namespace pollution became uncontrollable.
0.001001 Thu May 13 20:59:13 NZST 2010 (unpublished)
- Further consolidates the usage of attribute checking and
processing using regexes in SVG::Rasterize::Regexes.
- Further completion of %SVG::Specification::ATTR_VAL.
0.001000 Wed May 12 21:00:58 NZST 2010
Identical to 0.000009.
0.000009 Wed May 12 20:55:57 NZST 2010 (unpublished)
- Introduces SVG::Rasterize::Specification,
SVG::Rasterize::Properties, and
SVG::Rasterize::Colors. These files are at least
semiautomatically created from the DTD or human readable
specification. This hopefully finalizes the general
structure of the framework to deal with attributes and
properties.
- Commonly uses regexes are outsourced in
SVG::Rasterize::Regexes leading to much cleaner code.
- Unsetting of hooks (to undef) now passes parameter
validation.
0.000008 Thu May 6 13:28:45 NZST 2010
- Corrects docu issues that I have only seen unce uploaded.
- Removes POD that slipped into README making the CPAN
version look empty.
- Homogenizes interface of new and rasterize. The rasterize
method now accepts temporary values for (the relevant)
object attributes.
- Input objects are now validated by interface, not by
class, allowing generic DOM objects (not necessarily SVG
subclasses) to be rendered.
- The rasterization backend is initialized as early as
possible allowing early in_error. Makes the root element
even less special.
0.000007 Mon May 3 14:41:06 NZST 2010
- normalization of attribute values according to XML
specification
- revised docu
0.000006 Sun May 2 22:09:43 NZST 2010 (unpublished)
- Introduction of hooks.
- Set up framework for support of styling properties. Only
very few are supported, though.
- Examples directory. Only one very simple example so far.
- Tested on Perl 5.8.9 with only the documented dependency
modules.
0.000005 Fri Apr 30 13:15:59 NZST 2010 (unpublished)
Changed namespace from SVG::Render to SVG::Rasterize. It's
much more specific.
0.000004 Fri Apr 30 11:22:36 NZST 2010 (unpublished)
- Reorganization of the viewport initialization. The root
svg element is much less special now.
- State only uses the name and attributes of a node. The
only exception is the provision of the nextChild
method. The node object is still saved for the use in
hooks, but it is not used. The distinction between
parsing a DOM tree or a file is entirely made in
SVG::Render.
- Revised the concept of length to number mapping preparing
it for the support of relative lengths.
0.000003 Thu Apr 29 15:51:16 NZST 2010 (unpublished)
- (Almost) full documentation of SVG::Render and
SVG::Render::State.
0.000002 Wed Apr 28 19:33:09 NZST 2010 (unpublished)
- Full support for the transform attribute.
- Support for absolute units.
- Initial viewport including viewBox and
preserveAspectRatio.
0.000001 Sun Apr 25 19:43:28 NZST 2010 (unpublished)
First release, proof of concept only. Can only draw black
lines of fixed width. Shows successful deployment of Cairo.