Post is pinned.Post has attachment
GSVG and GTK+

I've started a new project to test GSVG over GTK+, and on the way create some widgets, called GSvgtk.

In following demo, you can see how GSVG is used on a simple Gtk.Image and librsvg, to dynamically generated an SVG, changing a portion of text size.

In the background SVG generated.

GSVG 0.3.0 and GSVGtk 0.3.1 Released

All basic stuff is in place, so I've Released GSVG 0.3.0.

GSVGtk is at 0.3.1 providing a SVG image viewer using a GSvg.Document as source.

Following steps is implement more API from SVG 1.1 specification as need by GSVGtk.

Both projects have gained Autotools build system, in order to build for Windows. I'll keep it until Meson fix up some issues.

Meson is still primary build system, because it push ahead development speed, bug fixing and testing, so expect some delays to sync both build systems.

QRSvg has gained at least 10% performance boost due to removing unnecessary rectangles in QR.

Working on implementing reading SVG documents making them using GSVG API.

Because GSVG is using GomElement, you will have access to all nodes read from a SVG using DOM 4, but that is not interesting.

So I'm catching all nodes using classes declarations, GomCollections and GObject properties to take advantage of SVG 1.1 specification.

For example a list of coordinates, is a set of numbers space separated in a string, but in SVG 1.1 is an object for each. GSVG is parsing this and other data type to GomPreoperty objects.

There are many things, like animated values: with a base value in the SVG and other showing actual status while in animation or transformation.

Unfortunately there is no a free SVG renderer to be able to take advantage of of the SVG 1.1 API.

Fast access to SVG shapes

As part of read implementation, SVG shapes in GSVG, are classified in Hash GomCollections, so given its id you can get it as if you call get_element_by_id() but you always know returned type.

GomCollections just track an element's position as a child, so you never lost nodes order. As a fallback you should search() again once you've removed a node. But if not, your collection will be created on the fly at read and can add new Element nodes to the tree as well as the collection.

You can call, in seudo Code:

l = svg.lines.get("myLine")

And get back a LineElement.

Today I've finished to implement reading rectangles, circles, ellipses, lines and polylines

Almost ready for first version

Right now GSVG is able to create an SVG with basic shapes, lines, polylines and texts.

It needs GXml master and one missing bindings in Vala to recreate W3C XML in 1.1 specification.

Once it's dependencies are released with required changes, I'll put out a pre-1.0 release.

Post has attachment

Post has attachment

Welcome to GSVG Community

This community is created to catch up comments, suggestions and any thing related to SVG on GObject.
Wait while more posts are being loaded