OpenVG

OpenVG: Vector Graphics Acceleration

A low-level hardware acceleration interface for advanced user interfaces and vector graphics libraries such as SVG.

OpenVG™ is a royalty-free, cross-platform API that provides a low-level hardware acceleration interface for advanced user interfaces and vector graphics libraries such as SVG. OpenVG is targeted primarily at consumer electronics, handhelds, wearables, and automotive devices that require portable acceleration of high-quality vector graphics for compelling user interfaces and text - while enabling hardware acceleration to provide fluidly interactive performance at very low power levels.

OpenVG 1.1 Lite Provisional Released!


OpenVG 1.1 Lite Provisional was released in May 2020, and relaxed the accuracy requirements of stroke path rasterization and normalizes the stencil/blending modes of OpenVG 1.1 so the API can be fully accelerated by any OpenGL® ES 2.0-compatible 3D GPU for the first time, while maintaining high rendering quality. The OpenVG 1.1 Lite Provisional Markdown specification has been posted on GitHub and the OpenVG community is invited to raise issues or merge requests to provide feedback before the specifications is finalized. Additionally, the full OpenVG Conformance Tests have been placed into open source under the Apache 2.0 license.

OpenVG 1.1 Lite enables high-performance, beautiful fonts, and high-quality vector graphics on any 3D GPU. By open-sourcing the conformance test suite, implementers can understand the operation and accuracy of OpenVG more concretely, and industry feedback can help us improve the quality of the tests and the specification over time.

OpenVG at a Glance


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, while allowing device manufacturers to provide hardware acceleration on a wide range of devices.

OpenVG 1.1 added a Glyph API and multi-sampled anti-aliasing to the OpenVG 1.0 specification. The OpenVG specification is accompanied by an open source sample implementation and a full suite of conformance tests implemented by the Khronos Group.

Accelerated Vector Graphics API for Small Screen Devices


Vector graphics are used on a wide diversity of devices that have an need for the smooth and fluidly scalable 2D that vector graphics provide to create high-quality user interfaces and ultra-readable text on small displays devices. Existing solutions have significant limitations. OpenVG addresses these limitations and provides additional tangible benefits:

  • Low Power Consumption - An efficient 3D hardware accelerator reduces power consumption by up to 90% compared to a software engine
  • Seamless Transition from Software to Hardware - Enables a seamless transition from efficient software rendering to hardware-accelerated high-quality 2D
  • Scalability - Vector graphics provides easy scalability with high-quality rendering, including anti-aliasing, to different screen sizes without multiple bitmaps
  • Accelerates Existing Formats - Designed to accelerate existing formats (e.g. SVG, PDF, Postscript, Vector fonts, etc.)
  • Games, Screensavers, Mapping, User Interfaces - Fast scalable anti-aliased vector graphics enables advanced user interfaces, mapping applications, games and screensavers
  • Portable Content - Scalable vector graphics makes it easier to port content across devices and platforms
  • Royalty Free - A royalty-free, cross platform API facilitate rapid developer adoption and content creation

Target Applications


  • SVG Viewers - 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.
  • E-book Readers - 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.
  • Games- 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 two dimensional 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.

OpenVG API Design Philosophy


  • Hardware Acceleration Abstraction Layer - that accelerates Bezier curves and texturing can be flexibly implemented. This will allow accelerated performance on a variety of application platforms.
  • Simplicity - means that functions that are not expected to be accelerated in hardware in the near future were either not included or included as part of the optional VGU utility library.
  • 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, game console, DVR, DVD, car navigation, etc.

OpenVG Features


Core API

  • Coordinate Systems and Transformations (Image drawing uses a 3x3 perspective transformation matrix)
  • Viewport Clipping, Scissoring and Alpha Masking
  • Paths
  • Images
  • Image Filters
  • Paint (gradient and pattern)
  • Blending

The VGU Utility Library

  • Higher-level Geometric Primitives
  • Image Warping

OpenVG Rendering Pipeline


The OpenVG pipeline mechanism by which primitives are rendered. Implementations are not required to match the ideal pipeline stage-for-stage; they may take any approach to rendering so long as the final results match the results of the ideal pipeline within the tolerances defined by the conformance testing process.

  • Stage 1: Path, Transformation, Stroke, and Paint
  • Stage 2: Stroked Path Generation
  • Stage 3: Transformation
  • Stage 4: Rasterization
  • Stage 5: Clipping and Masking
  • Stage 6: Paint Generation
  • Stage 7: Image Interpolation
  • Stage 8: Blending and Antialiasing

Stay Informed

Subscribe to the Khronos Newsletter


Stay in the loop by subscribing to our newsletter to receive updates on all our latest resources, news and events.

By subscribing you are consenting to receive marketing emails about news and events relating to the Khronos Group. You can unsubscribe at any time by following the “Unsubscribe” link included in each email sent. For information on our privacy practices and commitment to protecting your privacy, please review our Privacy Policy. We do not sell your contact information to third parties.

Khronos Standard Additional links and information