OpenVG is an application programming interface (API) for hardware-accelerated two-dimensional vector and raster graphics, it provides a device-independent and vendor-neutral interface for sophisticated 2D graphical applications.
OpenVG provides a drawing model similar to those of existing two-dimensional drawing APIs and formats, such as Adobe PostScript, PDF, Adobe Flash, Sun Microsystems Java2D and W3C SVG. OpenVG version 1.1 is specifically intended to support all drawing features required by a SVG Tiny 1.2 renderer or an Adobe Flash Lite renderer, and additionally to support functions that may be of use for implementing an SVG Basic renderer.
OpenVG must provide the drawing functionality required for a high performance SVG document viewer that is conformant with version 1.2 of the SVG Tiny profile. It does not need to provide a one-to-one mapping between SVG syntactic features and API calls, but it must provide efficient ways of implementing all SVG Tiny features.
Portable Mapping Applications
OpenVG can provide dynamic features for map display that would be difficult or impossible to do with an SVG viewer alone, such as dynamic placement and sizing of street names and markers, and efficient viewport culling.
The OpenVG API must provide fast rendering of readable text in Western, Asian, and other scripts. It does not need to provide advanced text layout features.
The OpenVG API must be useful for defining sprites, backgrounds, and textures for use in both 2D and 3D games. It must be able to provide twodimensional overlays (e.g., for maps or scores) on top of 3D content.
Scalable User Interfaces
OpenVG may be used to render scalable user interfaces, particularly for applications that wish to present users with a unique look and feel that is consistent across different screen resolutions.
Low-Level Graphics Device Interface
OpenVG may be used as a low-level graphics device interface. Other graphical toolkits, such as windowing systems, may be implemented above OpenVG.
Simplicity subtracting the obvious and adding the meaningful (help developer “guess the answer”).
OpenGL-style syntax is used where possible, in order to make learning OpenVG as easy as possible for OpenGL developers.
Extensibility makes it possible to add new state variables in order to add new features to the pipeline without needing to add new functions.
Focus on embedded devices* like mobile phone, PDA, game console, DVR, DVD, car navigation, etc.