Working with External APIs

Applications communicate with the QNX Composition manager through open, standard APIs. For more information, refer to the third-party documentation for each API:

OpenKODE

http://www.khronos.org/openkode/

OpenKODE is a royalty-free open standard that increases the source portability of media and graphics applications.

OpenKODE 1.0.2 header files on QNX Neutrino ( /usr/include/KD )

Header Files How to include Provider
kd.h #include <KD/kd.h> Khronos, modified by QNX
kdplatform.h Included by <KD/kd.h> Khronos

OpenKODE 1.0.2 libraries on QNX Neutrino

Location Name File
/usr/lib libKD.so.1 <Core KD/kd.h>

Note: Note that only a subset of OpenKODE revision 1.0.2 is provided to interface with the QNX Composition Manager. This subset includes chapters: 5-Error, 7- Threads, 8-Events, 10-Application startup and exit, 21-Input/output, and 22-Windowing. The complete list of OpenKODE functions provided with libKD.so can be found at the end of this section.

This implementation also includes some QNX extensions. The KD_QNX_window extension supplements the core windowing specification with additional window properties and events. The KD_QNX_input extension adds support for keyboards and assignment of focus on a per I/O group basis.


OpenKODE 1.0.2 Core Entry Points

Name Paragraph
kdGetError para 5.3.1
kdSetError para 5.3.2
kdWaitEvent para 8.4.1
kdSetEventUserptr para 8.4.2
kdDefaultEvent para 8.4.3
kdPumpEvents para 8.4.4
kdInstallCallback para 8.4.5
kdCreateEvent para 8.4.6
kdPostEvent para 8.4.7
kdPostThreadEvent para 8.4.7
kdFreeEvent para 8.4.8
kdMain para 10.2.1
kdThreadAttrCreate para 7.3.1
kdThreadAttrFree para 7.3.2
kdThreadAttrSetDetachState para 7.3.3
kdThreadAttrSetStackSize para 7.3.4
kdThreadCreate para 7.3.5
kdThreadExit para 7.3.6
kdThreadJoin para 7.3.7
kdThreadDetach para 7.3.8
kdThreadSelf para 7.3.9
kdThreadMutexCreate para 7.3.11
kdThreadMutexFree para 7.3.12
kdThreadMutexLock para 7.3.13
kdThreadMutexUnlock para 7.3.14
kdThreadCondCreate para 7.3.15
kdThreadCondFree para 7.3.16
kdThreadCondSignal para 7.3.17
kdThreadCondBroadcast para 7.3.17
kdThreadCondWait para 7.3.18
kdGetTLS para 14.2.1
kdSetTLS para 14.2.2
kdCreateWindow para 22.4.1
kdDestroyWindow para 22.4.2
kdSetWindowPropertybv para 22.4.3
kdSetWindowPropertyiv para 22.4.3
kdSetWindowPropertycv para 22.4.3
kdGetWindowPropertybv para 22.4.4
kdGetWindowPropertyiv para 22.4.4
kdGetWindowPropertycv para 22.4.4
kdRealizeWindow para 22.4.5

EGL

http://www.khronos.org/egl/

EGL is an interface between Khronos rendering APIs and the underlying native platform windowing system. The implementation of EGL 1.4 provided in this release isn't compatible with previous versions of EGL 1.2 supplied with Advanced Graphics. The display_id argument to eglGetDisplay() is a numeric identifier, rather than a gf_device_t handle, and the EGL_DEFAULT_DISPLAY constant is now an accepted value. Both implementations will continue to be distributed to allow existing applications to compile and run once the QNX Neutrino has been installed. Legacy applications will get EGL 1.2 entry points from OpenGL ES 1.0 libraries, and new and updated applications must link against libEGL.so to get the new entry points. Note that only the new EGL 1.4 supports connections to the Composition Manager.

EGL 1.4 header files on QNX Neutrino ( /usr/include/EGL )

Header Files How to include Provider
egl.h #include <EGL/egl.h> Khronos
eglplatform.h Included by egl.h Khronos, modified by QNX
eglext.h #include <EGL/eglext.h> Khronos

EGL 1.4 libraries on QNX Neutrino ( /usr/lib )

Name File
libEGL.so.1 EGL 1.4
libGLES_CL.so.1 Legacy EGL 1.2 with OpenGL ES 1.0 (Lite Profile)
libGLES_CM.so.1 Legacy EGL 1.2 with OpenGL ES 1.0 (Common Profile)

OpenGL ES

http://www.khronos.org/opengles/

OpenGL ES is a royalty-free, cross-platform API for full function 2D and 3D graphics on embedded systems.

OpenGL ES 1.0 Header Files on QNX Neutrino ( /usr/include/GLES )

Header Files How to include Provider
gl.h #include <GLES/gl.h> Khronos
glext.h #include <GLES/glext.h> Khronos

OpenGL ES 1.0 Libraries on QNX Neutrino ( /usr/lib )

Name File
libEGL.so.1 EGL 1.4
libGLES_CL.so.1 Core with legacy EGL 1.2 (Lite Profile)
libGLES_CM.so.1 Core with legacy EGL 1.2 (Common Profile)
libGLESv1_CL.so.1 Core without EGL (Lite Profile)
libGLESv1_CM.so.1 Core without EGL (Common Profile)