OpenVG is a royalty-free, cross-platform API that provides a low-level hardware acceleration interface for vector graphics libraries such as Flash and SVG. OpenVG is targeted primarily at handheld devices that require portable acceleration of high-quality vector graphics for user interfaces and text on small screen devices—while enabling hardware acceleration to provide fluidly interactive performance at very low power levels.
Variant: ScreenPlay and non-ScreenPlay.
OpenVG is an open standard developed by the Khronos Group (www.khronos.org). OpenVG features include:
Coordinate systems and transformations (image drawing uses a 3x3 perspective transformation matrix)
Viewport clipping, scissoring and alpha masking
Paths
Images and image filters
Paint (gradient and pattern)
Blending.
In addition, the associated VGU utility library provides features such as higher-level geometric primitives and image warping.
OpenVG only defines rendering functionality and therefore cannot be used in isolation. It requires EGL to establish an environment in which OpenVG can be used. For example, EGL tells OpenVG where its rendered output should go. OpenVG depends on a standalone implementation of EGL.
The following diagram shows the direct use of OpenVG by an application through the public OpenVG interface together with EGL. On the Symbian platform, both OpenVG and EGL have a component (shown in blue) that declares the interface, and both require an implementation that implements that interface (shown in green).
It is possible for the OpenVG and EGL implementations to communicate through a private interface that is not standardized by Symbian.
The OpenVG Interface provides a consistent interface to OpenVG on the Symbian platform, enabling cross-device compatibility. The component includes the Khronos-released header files (which incorporate some minor changes, such as to the comments). It also provides some Symbian-specific header files and some other files (such as LIB, DEF and MMP files) and UIDs. It does not provide any implementations of the APIs.
OpenVG is designed to be the primary 2D and vector graphics API for use by mobile devices. By providing a consistent interface to OpenVG, the Symbian platform allows OpenVG applications and middleware (such as an SVG engine) to automatically benefit from hardware acceleration when it is present without losing compatibility when it is not available. In addition device and hardware manufacturers benefit from a standard Hardware Adaptation Interface (HAI) to plug into. This means that OpenVG has the potential to provide end users with improved quality and responsiveness of graphics features.