Symbian3/PDK/Source/GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B.dita
author Dominic Pinkman <Dominic.Pinkman@Nokia.com>
Thu, 11 Mar 2010 18:02:22 +0000
changeset 3 46218c8b8afa
parent 1 25a17d01db0c
child 5 f345bda72bc4
permissions -rw-r--r--
week 10 bug fix submission (SF PDK version): Bug 1892, Bug 1897, Bug 1319. Also 3 or 4 documents were found to contain code blocks with SFL, which has been fixed. Partial fix for broken links, links to Forum Nokia, and the 'Symbian platform' terminology issues.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-1A8ED0EB-B3B7-553F-95E3-2120D877966B"><title>OpenVG Collection Overview</title><shortdesc>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. </shortdesc><prolog><metadata><keywords/></metadata></prolog><conbody><p> <b>Variant</b>: <xref href="GUID-D93978BE-11A3-5CE3-B110-1DEAA5AD566C.dita">ScreenPlay</xref> and <xref href="GUID-F64E6551-670E-5E12-8103-DE504D3EC94F.dita">non-ScreenPlay</xref>. </p> <p>OpenVG is an open standard developed by the Khronos Group (<xref scope="external" href="http://www.khronos.org">www.khronos.org</xref>). OpenVG features include: </p> <ul><li id="GUID-B267EBF8-8507-5200-A988-E9473421C7AE"><p>Coordinate systems and transformations (image drawing uses a 3x3 perspective transformation matrix) </p> </li> <li id="GUID-9DD01326-63A6-548E-A245-61118D1751D1"><p>Viewport clipping, scissoring and alpha masking </p> </li> <li id="GUID-E265A325-F47B-5D5E-B98E-4DC7113000FB"><p>Paths </p> </li> <li id="GUID-AAB66D89-68F2-59A5-BB29-E49932FEFB13"><p>Images and image filters </p> </li> <li id="GUID-DEB27EED-13F2-5B2D-AADD-2BA0F2A4A872"><p>Paint (gradient and pattern) </p> </li> <li id="GUID-9CC84B3A-2891-5D2C-909E-F0C12F96569E"><p>Blending. </p> </li> </ul> <p>In addition, the associated VGU utility library provides features such as higher-level geometric primitives and image warping. </p> <section><title>Architecture</title> <p>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. </p> <p>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). </p> <fig id="GUID-2BCC3100-9644-55D1-A26E-C3510A148E66"><title>
             OpenVG external relationships 
          </title> <image href="GUID-B783AF18-FF14-5864-A92C-8BE62E07C68D_d0e242447_href.png" placement="inline"/></fig> <p>It is possible for the OpenVG and EGL implementations to communicate through a private interface that is not standardized by Symbian. </p> <p>The <xref href="GUID-C2E24953-3D83-59FB-8B7A-C850474406DB.dita">OpenVG Interface</xref> 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. </p> </section> <section><title>Description</title> <p>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. </p> </section> </conbody><related-links><link href="GUID-1B1C6D35-FFDF-55B3-BCE2-DD0295858E49.dita"><linktext>OpenVG Collection</linktext> </link> <link href="GUID-8C6D4350-A38D-57A1-8C8D-C777EA7E8A3E.dita"><linktext>EGL
                Collection</linktext> </link> </related-links></concept>