The OpenVG Interface component defines the interface to OpenVG on the Symbian platform. The component standardizes the source and binary interfaces in order to encourage both source and binary compatibility between Symbian-based OpenVG implementations.
Variant: ScreenPlay and non-ScreenPlay.
The OpenVG specifications are defined by the Khronos Group (www.khronos.org). The following table provides links to the relevant specifications.
VGU provides some handy functions that can be used by OpenVG applications. For example, it provides functions for drawing primitives (such as lines, polygons, rectangles and arcs) and for computing warp matrixes. The latter transform the drawing surface from one shape to another (for example, from a square to an arbitrary quadrilateral defined by points).
The OpenVG Interface component includes
the Khronos-released header files openvg.h
and vgu.h
.
These header files incorporate minor changes such as Doxygen tags (/**
comments)
and the Symbian-defined macro __SOFTFP, which is described
below. Use of these standard header files helps to ensure binary compatibility
for applications across different Symbian platforms. It also provides source
compatibility between different operating systems.
The header files
are provided for both OpenVG 1.0 and OpenVG 1.1. Stub openvg.h
and vgu.h
files
redirect to the OpenVG 1.0 headers by default. However a variability point
can be used to expose the OpenVG 1.1 headers.
The Symbian-defined
header file /epoc32/include/khronos_types.h
maps the
Khronos-defined basic types to native Symbian types.
Within the Khronos-supplied header files, the Symbian-defined macro __SOFTFP has been added to the declaration of all functions that pass, or return, floating point numbers by value. This means that:
When using the API both clients and the OpenVG implementation must use software floating point calling conventions, regardless whether hardware or software floating point compiler options are actually used.
If suitable hardware is available, the OpenVG implementation can use hardware-accelerated floating point features internally without a risk of binary incompatibility with client programs.
If suitable hardware is available, OpenVG client programs can use hardware-accelerated floating point features internally without a risk of binary incompatibility with the OpenVG implementation.
The OpenVG Interface component includes the following LIB files:
The corresponding DLL files must be delivered by the implementation.
The OpenVG Interface component supplies DEF files to further ensure binary compatibility between different platforms. These files exist for the WINS and WINSCW emulator and ARM hardware platforms as shown in the following tables. Although the names have a trailing "u", this is not specified in the MMP file because it is appended automatically.
DEF files for WINS and WINSCW
Library | Name |
---|---|
OpenVG 1.0.1 |
|
VGU 1.0.1 |
|
OpenVG 1.1 |
|
VGU 1.1 |
|
DEF files for ARM