Okay this is a rant. Feel free to come back when I have written something slightly more constructive.

One of my many projects I have on the go needs a C++ SVG library. So I do a search for C++ SVG libraries, of which there are several. However most of them either require GTK+ or Qt. Not useful to me as I have an perfectly usable windows tool-kit called MFC. You’ve might of heard of it?!

So finally it comes down to three: AGG, Cairo, and Keystone.

AGG isn’t really a complete SVG library, but more of a basis that can be used to implement one. In fact they give a basic library to demonstrate the promise that AGG gives. However it may be useful depending on how much of the SVG spec I need, but for now it’s out.

Keystone is an SVG library with some good examples, but it hasn’t been updated in a couple of years, and there wasn’t a quick overview of what parts of the spec it does and doesn’t support. Also the author never replied to my email. So that is out.

Leaving Cairo. Now I had high hopes for Cairo as it is used by Mozilla for the rendering in Firefox, et al. It is being worked on and it gives accelerated graphics via Glitz. Since Moz uses it then it should support Windows straight out the box, right?

Wrong. First you have to create a file that the Windows version will need. They have an html page that shows what the content of the file should be…Why not just include it in the distribution in the first place? You then need to download the MSVC 7.1 project from a third party website. This has what is needed to compile it. Except it doesn’t. It needs libpng. So I go looking for the DLL, but it’s not that easy – they don’t have a simple “Get Binaries here”. You are led around in circles. The version says 1.2.8 but the program looks for v1.3. So I get the source, but I can’t compile that because it thinks there is an error in the zlib source (except there isn’t as even my little knowledge of assembler can tell that there isn’t a problem with the source, and you’d think by version 1.2 they’d have fixed a major flaw like that). Maybe it is the source that comes with libpng, so I download the actual zlib, but that has the same problem. None of these programs have a project for MSVC 8, but relies on the project converter to actually transfer all the information correctly.

So after 3 hours I have several directories of uncompilable code. You’d think that the Windows version would compile straight out the box because, well, there are more people using Windows so most effort would go into that version. I’d lay money on the fact that the downloads for the Windows version of Firefox is double what any of the others are put together. But no, the Windows version is treated like the red headed step-son and ignored because it’s not cool to work “for the man”.

Tonight I am trying another 3rd party binary distribution. I’ll see what comes of it, though I would rather be able to compile my own so when the software gets updated I can update as well instead of relying on someone else…