29

Which OpenVG implementations exists?

What are pros and cons of each of them?

I'm looking for is a highly stable, fast rendering implementations that is still being actively maintained and developed.

Adrian Maire
  • 14,354
  • 9
  • 45
  • 85
Fostah
  • 11,398
  • 10
  • 46
  • 55

5 Answers5

23

I've worked with OpenVG a little bit, and there aren't a lot of implementations out there. I happen to use ShivaVG, which uses OpenGL, but it hasn't been updated in a while Some other implementations include:

  • The reference implementation (I've found it to be incredibly slow; however, there aren't any others that currently are up to 1.1 yet (The OpenVG 1.1 standard came out early December)

  • GingkoVG - binary only and uses its own windowing system (but hey, all of them do anyways).

  • AmanithVG - commercial; looks pretty polished. I think there used to be a free version, but I can't seem to find it.

  • KompazzVG/AntigrainVG - an implementation using AGG; looks great, but the author hasn't publicly released any code, although there is a project site and a mysterious svn trunk.

Mind you, these are all implementations for the desktop; I'm not sure what the actual hardware support is on mobile devices.

Personally, I would consider ShivaVG the best just because it supports enough features to do most things, and it's fast. There are some unfixed bugs, but hey, the source code is open.

Incidentally, the SF site for ShivaVG is here; you'd probably want to use the trunk version, not the numbered release because it's slightly more up-to-date. Also the KompazzVG trunk might be here.

9

MonkVG is an OpenVG 1.1 like vector graphics API implementation currently using an OpenGL ES backend that should be compatible with any HW that supports OpenGL ES 2.0 which includes most iOS and Android devices.

This is an open source BSD licensed project that is in active development. At the time of this writing it is in a very early pre-release state (very minimal features implemented). Contributors and sponsors welcome.

It can be found at GitHub http://github.com/micahpearlman/MonkVG

zerodog
  • 568
  • 4
  • 11
  • 1
    Note that the list of features they don't support (relative to the OpenVG spec) is pretty long... starting with pattern strokes and fills, gradient strokes etc. If you're going for something that is only vaguely like OpenVG, you might as well opt for NanoVG as well, which is more recent and presently maintained (https://github.com/memononen/nanovg). Kilgard/Nvidia have also advanced their own OpenGL extension for path rendering `NV_path_rendering` (https://developer.nvidia.com/nv-path-rendering) since 2011, which coincidentally (??) is also the year that the OpenVG committee folded. – Fizz Aug 06 '14 at 12:05
  • MonkVG was designed for speed and to work on low end devices. It was never meant to be fully OpenVG compliant. There are certainly much better alternatives if one is looking for a complete OpenVG feature set and compliance. NanoVG looks very interesting, especially it's fast tessellator engine. – zerodog Aug 06 '14 at 16:28
2

AmanithVG SRE (software rasterization engine) and GLE (OpenGL ES aided rasterization engine) boths implement the whole OpenVG 1.1 and OpenVG 1.0.1 feature set.

Evaluation builds of both engines are available for download on the AmanithVG website.

AmanithVG internal testsuite results, as well as tests sources, are browsable at GLE tests page and SRE tests page.

AmanithVG SRE and GLE are available for the following target platforms:

Windows 2000 / XP / Vista, on x86, x86_64;

Windows CE / Mobile, on ARM v5, v6 (with or without VFP);

MacOS X 10.4 / 10.5, on PowerPC, Intel (Universal Binary);

Linux 2.6.x, on x86, x86_64, PowerPC, ARM v5, v6 (with or without VFP), SH4;

QNX 6.4.x on x86, PowerPC, ARM v6, SH4.

0

Thanks for the posts. D L, your list is very comprehensive as there just isn't that much out there for OpenVG support at this time. One other implementation I found was:

  • Zack Rusin: OpenVG - This implementations is built with Qt's OpenGL implementation. As with ShivaVG, it has not been updated in quite a while but it is also open source.

I'm going to make this public and hope we get more feedback in the future on other implementations.

Fostah
  • 11,398
  • 10
  • 46
  • 55
-2

Looks like no one knows much about it, and I confess I don't either. I'm as much Google-bound as anyone. The first places to look would appear to be Khronos and Wikipedia

bugmagnet
  • 7,631
  • 8
  • 69
  • 131
  • I've read through the Khronos specs on it and I plan to post an answer myself shortly with my findings. I'm just a little shocked at how little there is out there about it. – Fostah Jan 01 '09 at 20:01
  • For anybody reading this now, it's built into Raspberry Pis. See the hello_tiger demo program, install the userland package if you don't have /opt/vc https://github.com/raspberrypi/userland – Alan Corey Jul 02 '18 at 21:38