Part of the Khronos Group

Resources for the Mobile Developer Community



All Public API Implementations, Tutorials and Sample Code

Commercial and Open Source Implementations

Ruby-OpenCL

Ruby-OpenCL is a ruby binding of OpenCL providing classes for OpenCL programing on the host. Currently works with ATI Stream SDK 2.0 beta.

OpenCL for PLT Scheme

A complete binding of OpenCL for PLT Scheme.

PyOpenCL

PyOpenCL is a complete, object-oriented language binding of OpenCL to Python. It has full documentation available and is licensed under the liberal MIT license.

The Open Toolkit library

Cross-platform OpenGL, OpenGL ES, OpenAL and OpenCL bindings for .Net/Mono. Compatible with Windows, Linux and Mac OS X and usable by all .Net languages (C#, VB.Net, C++/CLI, ...)

The Open Toolkit library

Cross-platform OpenCL, OpenGL and OpenAL bindings for .Net/Mono. Compatible with Windows, Linux and Mac OS X and usable by all .Net languages (including C#, VB.Net, C++/CLI, IronPython and F#).

ARM optimised implementations of OpenMAX DL

ARM provides hand optimised OpenMAX DL libraries for both the ARM11 and Cortex-A8 processor families. These are currently available free of charge and include functions for H.264 decode, MPEG-4 decode, AAC decode, MP3 decode, and FFTs. The latest release (23rd April 2008) adds functions for MPEG-4 decode and MP3 decode in addition to updating the previously released functions to the latest version of the OpenMAX DL specification (v1.0.2).

OpenKODE 1.0 implementation from Acrodea

This package contains an implementation of OpenKODE Core as defined in the OpenKODE 1.0 specification. This release only contains the OpenKODE Core library, so in order to do anything useful with it you'll also need an implementation of EGL and some client APIs. The example source code provided assumes EGL and OpenGL ES headers and libraries are available.

OpenVG 1.0 Sample Implemenation

This sample reference implementation archive contains sources for OpenVG Reference Implementation, VGU and EGL 1.2. There's also a precompiled libOpenVG.dll that contains all the API implementations. This release is based on OpenVG 1.0.1 and EGL 1.2 specifications. This release is Windows-only, although the source code compiles at least on Mac OS X 10.4 and Cygwin. Project files are provided for MSVC 6.

C sample implementation of OpenMAX DL

ARM provides a sample OpenMAX DL implementation written in C. The OpenMAX DL (Development Layer) APIs contain a comprehensive set of audio, video, signal processing function primitives which can be implemented and optimized on various CPUs and hardware engines and then used for accelerated codec functionality. API functions target key algorithms in such codecs as H.264, MPEG-4, AAC, MP3, and JPEG. The function primitives are meant to cover the hotspots which typically take up 80% of codec processing. Codec porting to new hardware platforms can be as simple as swapping in the new DL library and recompiling.

OpenGL ES 1.1 SDK for Sony Ericsson phones UIQ 3-based phones

The OpenGL ES 1.1 SDK provides documentation, source code and utilities to take advantage of the the OpenGL ES graphics library on the P990, M600 and W950. The SDK is designed for usage with the UIQ 3 SDK and relevant Sony Ericsson extensions.

Nokia OpenGL ES 1.1 Plug-in for S60 3rd Edition SDK for Symbian OS, for C++

This early technology plug-in for the S60 3rd Edition SDK for Symbian OS, for C++, enables the development of OpenGL ES 1.1 applications for the Nokia N93 with hardware accelerated 3D graphics and OpenGL ES 1.1 support. The plug-in enables full use of the native 3D graphics features supported in the Nokia N93 and provides an OpenGL 1.1 ES features upgrade, from OpenGL ES 1.0, to the S60 emulator. This enables testing and debugging of OpenGL ES 1.1 compliant Symbian C++ applications without a device.

Bellagio open source OpenMAX IL sample implementation for Linux

Bellagio is an open source sample OpenMAX Integration Layer v.1.0 implementation for Linux. The project includes the libomxil shared library together with the OMX reference component, OMX alsa sink component, and OMX mp3 decoder component (requires ffmpeg and ffmpeg-devel libraries, not part of this package). Sample code is available

OpenGL ES 1.0 and OpenGL ES 1.1 PowerVR SDK

The PowerVR OpenGL ES SDKs provide a set of documentation, source code and tools that allows developers to create applications for the following development environments:

  • TI OMAP2 Family - Symbian, Linux, Windows Mobile 5 Smartphone, Windows Mobile 5 PocketPC
  • ARM VP- Symbian, Linux, WinCE 5
  • Intel i2700G - Windows Mobile 2003 Pocket PC (Dell X50v & Dell X51v), Windows Mobile 5.0 Pocket PC (Dell X51v)
  • Philips PNX4008 - Symbian UIQ3
  • Freescale i.MX31 - Linux
  • PC Emulation - Windows XP - OpenGL ES 1.X, Linux

OpenGL ES 1.1 Open Source implementation - the Vincent Rendering Library

Includes binaries, source, and OpenGL Redbook Samples converted to OpenGL ES, for the following development environment:

  • PocketPC 2003
  • Microsoft Smartphone 2003

OpenGL ES 1.0 Linux Sample Reference Implementation

Implements the OpenGL ES 1.0 Common and Common-Lite profiles using a desktop OpenGL 1.3+ implementation as a rasterizer. This is not a registered OpenGL ES implementation, but it has been tested against the the OpenGL ES conformance tests.

OpenGL ES 1.0 Extension for BREW SDK

This BREW SDK extension is for BREW developers who would like to utilize OpenGL ES 1.0 for their BREW application development.

Utilities & Projects

OpenCL Kernel Compiler

A compiler for OpenCL Kernel files designed to be used during OpenCL application development. The use of this tool alleviates the need for building compiler diagnostic message retrieval code into applications that use OpenCL. It allows developers to spot compilation errors during source builds instead of at run-time.

COLLADALoader

This project is about an open source application to load and visualize COLLADA files in real time using OpenGL.

COLLADA Conditioners

A COLLADA conditioner is a module component in COLLADA Refinery. Each conditioner can take a COLLADA document, perform a specific operation on the document, and pass the resulting document to the next conditioner. A series of conditioners is a pipeline that improves the state of COLLADA documents.

COLLADA Refinery

COLLADA Refinery is a GUI-based application for creating content pipelines for 3D assets using modular components called conditioners.

Java Binding for the OpenGL ES API, JSR 239

Java Binding for the OpenGL ES API (JSR 239) enables access to the low level OpenGL ES 3D graphics library through a standard Java interface. This specification defines a Java ME optional package creating a standard Java interface into the OpenGL ES API and the EGL API for window system binding. JSR 239 requires an underlying native engine that has been certified by Khronos to be conformant with the OpenGL ES and EGL APIs. This engine must support version 1.0 of the OpenGL ES and EGL and all core extensions associated with those APIs. It may optionally support version 1.1 of the OpenGL ES and EGL APIs.

gDEBugger ES

gDEBugger ES is an OpenGL ES debugger which traces application activity on top of OpenGL ES to provide the application behavior information you need to find bugs and to optimize application performance. This new product brings all of gDEBugger's OpenGL debugging and profiling abilities to the OpenGL ES developer’s world. In addition gDEBugger ES acts as an emulator for OpenGL ES when working on Windows PC.

COLLADA DOM

The COLLADA Document Object Model (DOM) is an application programming interface (API) that provides a C++ object representation of a COLLADA XML instance document.

GLUT|ES - The OpenGL ES Utility Toolkit

GLUT|ES is a port of the OpenSource freeglut implementation for WinCE and Win32 systems based on OpenGL ES. Most of GLUT API v.3 functionnalities are present: window creation, callbacks, menus, timers etc. Only functions that cannot exist with OpenGL ES or are not pertinent have not been ported (like overlays, joysticks on PocketPC, etc). It has been compiled, linked and tested successfully with Hybrid Rasteroid, Vincent and Intel 2700G implementations of OpenGL ES 1.1. It is compatible with both OpenGL|ES Common Light (CL) and Common (CM) profiles.

Frameworks

OpenMAX IL conformant Nucleus Multimedia product by Mentor Graphics

"Nucleus Multimedia Services" is an implementation of the OpenMAX IL standard for Nucleus Real Time OS. It ships with a fully functional library of standard components which allow common audio/video playback configurations.

Tutorials, Technical Whitepapers and How to Guides

GPGPU Programming (OpenCL)

This sites primary focus is GPGPU programming. It contains an overview describing the basic concepts, code examples (OpenCL, CUDA), links to useful OpenCL and CUDA resources, links to GPU based products, and news aggregation of GPGPU tools.

OpenCL Tutorial - Introduction - Fundamentals

Episode I
Introduction to OpenCL :

Episode I
OpenCL Fundamentals : More in-depth discussion on general concepts that are important for understanding how OpenCL works. OpenCL address spaces are covered as well the basics of executing an OpenCL program (abstractly).

Introduction to OpenCL tutorial

Introductory tutorial showing how to write the 'Hello World' in OpenCL.

3D Rose Shader Network & Collada Dae

This work includes concepts of Setting up Shader networks, Displacement maps, and Exporting Collada Maya FBX .DAE’s from Maya 2009.

Developing Web Applications with COLLADA and X3D (Japanese)

このホワイトペーパーは、COLLADAとX3Dの間の類似点および相違点、開発を特徴づけた設計目標、および2つ の規格が実際のアプリケーションにおいてどのような方法および場所で使用されているかについて、開発者の理解 を支援することを目的としています。多くの実装者は、2つのテクノロジーのどちらか一方を選択するよりはむしろ、 Webおよびエンタプライズ・アプリケーションを開発するための強力なツール・セットとしてCOLLADAとX3Dを一緒 に使用できることに気付くはずです。

Developing Web Applications with COLLADA and X3D

This whitepaper is intended to assist developers in understanding the similarities and differences between COLLADA and X3D, the design goals that informed their development, and how and where the two standards are used in practical applications. Rather than making a decision between the two technologies, many implementers will find that COLLADA and X3D can be used together as a powerful tool set for developing their Web and enterprise applications.

AlexVG OpenVG 1.0 demo video capture

HUONE - alexVG is the first commercial software engine based on the OpenVG 1.0 API. This is a video capture of the demo produced for IBC2005 which shows OpenVG rendering of paths, images, paint, blending, transformation, and image filters. The demo running under desktop Windows is not hardware accelerated, but the images are nevertheless smooth and fluidly scalable with sophisticated transitions, filters and effects. AlexVG is hardware scalable and can be used in SVG viewers, electronic maps, e-books, graphic user interfaces, and games. Optionally you can view a Quicktime version.

Hardware accelerated OpenVG demo video capture

Bitboys - This is a video capture of hardware accelerated OpenVG running on an ATI G12 processor. It shows the potential of OpenVG for high-quality graphics, interactive user inteface, foreign language support, and more.

OpenGL ES tutorial on Windows CE (Chinese)

A series of articles on how progamming OpenGL ES on Windows CE, from initialization to use model exported from modeling tool. Articles are written in Chinese.

Skeletal bone animation and skinning with COLLADA models in XNA

This comprehensive XNA tutorial explains how to do skeletal bone animation and skinning using COLLADA models, which allow for complex animations exported as XML that DirectX .X files can't handle.

OpenKODE for mobile gaming

This article from the Tao Group clearly explains the problems that OpenKODE is designed to address, how it creates a consistent platform for development, how it can also accelerate Java-based applications, and how it defines a distribution format.

COLLADA Getting Started Guide

A basic summary of resources and steps for getting started using COLLADA as a digital content creator or as a software developers. The guide the steps to take if you want to use COLLADA to import/export data from tools or if you want to implement COLLADA in your application.

Optimizing OpenGL ES applications for Brew

Although OpenGL ES makes 3D graphics programming significantly easier and more portable, developers must still work to tune their applications for the greatest performance possible. This article features tips and tricks gleaned from Qualcomm and other developers at the 2006 Brew Developer Conference in San Diego.

OpenGL S 1.1 tutorials for Sony Ericsson UIQ 3-based phones

The OpenGL ES tutorials included in the Sony Ericsson SDK for UIQ 3-based phones helps developers get started using the OpenGL ES 1.1 API, taking developers through initialization, how to render a triangle, 3D drawing, basic Texturing, Transform and Lighting, loading of textures and printing text on the screen, and handling optimized geometry including animations.

Bellagio OpenMAX IL component writers’ guide

This guide aims at explaining how OpenMAX IL components can be built in C based on the Bellagio open source distribution.

3D Graphics Made Easier with OpenGL ES for BREW

This article describes how to get your environment set up for OpenGL ES development in BREW, as well as introduces you to the basic concepts you need in order to get started.

25 OpenGL ES tutorials using GLUT|ES by ZeusCMD

This set of tutorials teaches you how to create OpenGL ES applications on Windows and Pocket PC. The tutorials guide the programmer through a set of techniques, each one becoming progressively more advanced. Topics include: Setting Up Your Environment, Creating an OpenGL Window, Keyboard and Mouse Input, Rendering, Orthographic and Perspective Projection, Color and Shading, Transformations, Depth, 3D Objects, Backface culling, Lighting, Texture Mapping, Blending, Fog, Masking, Image Loading, and Stencil Buffering.
Available online or as a .zip collection

7 OpenGL ES Tutorials for Win32/WinCE from TyphoonLabs

This set of 7 tutorials (available as a .zip collection) covers the basic setup and usage of OpenGL ES with mobile devices. All tutorials can be compiled and tested on the Pocket PC profile, but only few modifications are needed to get an executable version for Smartphones. Topics include: Win32/WinCE and OpenGL ES Initialization, 3D shapes, perspective and pointer clicks management, Texturing, Lighting and Fog, Blending and bitmapped fonts, Particles using Point Sprites, and Using Vertex Buffer Objects. In English and Spanish. (Entry from the 2005 OpenGL ES Coding Challenge)

Integration of OpenMAX IL 1.0 components within the Symbian OS Media Device Framework (MDF)

This whitepaper shows how the OpenMAX Integration Layer (OpenMAX IL) API can be used within the Symbian Media Device Framework to enable access to multimedia acceleration on Symbian OS Devices. It is geared towards system integrators who will integrate OpenMAX IL codecs into the Symbian OS platform.

OpenMAX IL - Microsoft DirectShow Filter Integration

This whitepaper briefly describes how the Microsoft DirectShow Filter interface may be translated to the OpenMAX IL base profile interface for integration with Microsoft Windows Mobile Enabled devices with a pull and a push communication model.

Using OpenMAX Integration Layer with GStreamer

This whitepaper shows how the OpenMAX Integration Layer API can be used in the Linux GStreamer framework to enable access to multimedia components, including HW acceleration on platforms that provide it.

Getting Started with Rasteroid OpenGL ES for Pocket PC using Pelles C

Simple tutorial on compiling the Rasteroids sample code using Pelles C to run on Pocket PC

Programming OpenGL ES 1.0 in a BREW Environment (pdf)

This document provides game developers with an overview of the steps needed to build an run BREW OpenGL ES 1.0 applications. Included is an explanation of how to use the ATI IMAGEON 2300 series hardware with the BREW Software Development Kit (SDK).

OpenML 1.0 Media Library Software Development Kit Beginner’s Guide

This guide is a quick introduction to the OpenML Media Library Software Development Kit (ML). If you are new to ML, you should read this guide and browse the online example programs. The material in this guide assumes that ML is installed on your workstation, and that you have access to the online ML example programs.

An Introduction to BREW and OpenGL ES

This article will go from installing and setting up a BREW development environment and emulator, through to getting an OpenGL ES system up and running and displaying a single triangle.

Presentations & Videos

OpenMAX AL v1.0 overview of Application-level Multimedia API

A slide-set providing a brief technical summary of the OpenMAX AL v1.0 specification and highlights its main architectural features

Paris GDC It just works

This presentation was delivered on the 24/07/08 at GDC Paris. The presentation discussed how a reference game engine has been developed with the foresight to take advantage of an industry standard content description language which can help game developers to better define and reuse their art and game behavior content. The goal of the presentation was to give a better understanding of how to help you identify areas in your own pipeline that can be instantly improved and then some direction on where you could improve your pipeline towards the ultimate goal of "it just works!"

Multimedia in Mobile Phones: The Ongoing Revolution

Analysis by Ericsson - The market has accepted mobile phones as multi-functional devices - disruptive technology - that will take the place of many traditional, portable, consumer electronic devices, such as cameras and music players. OpenGL ES and OpenVG will be the APIs that form the basis for 2D and 3D multimedia.

The two-track OpenGL ES 1.x and 2.x Roadmap

JPR TechWatch - An overview of the two-track roadmap for OpenGL ES: OpenGL ES 1.x and OpenGL ES 2.x. OpenGL ES 1.x is designed for resource restrained platforms like embedded and some handsets. OpenGL ES 2.x is designed for platforms that can take advantage of programmability. (pdf download permission of JPR Techwatch)

Multi-pass shader COLLADA export and import

This movie demonstrates visualizing a multi-pass shader, changing the light position, color parameters, exporting and re-importing in COLLADA format.

Assigning multiple passes to COLLADA FX materials

This movie demonstrates assigning two passes of COLLADA FX material, each with one light. Adding one more pass to get a reflective effect.

Modifying the source of a shader

This movie demonstrates how the source of a shader can be modified and reloaded interactively.

Vertex and fragment shaders in COLLADA FX

This movie demonstrates the support for per-vertex color sets, loading the vertex and fragment shaders for a COLLADA FX pass, selecting a camera and light for that pass through drag-and-drop, changing fragment parameters through the attribute editor.

Exporting rigid body car crash scene to COLLADA

This movie demonstrates a more complex scene made from rigid bodies. A car rigid body crashes into a wall of bricks. The scene is played twice, then exported using ColladaMaya. The resulting COLLADA code is then shown briefy.

Nima PhysX plug-in for Maya with support for COLLADA Physics

This movie demonstrates Nima, an open-source plug-in for Maya that integrates the PhysX physics engine from AGEIA. Nima enables the creation and fast simulation of complex physical scenes. The resulting scene can then be exported using COLLADA Physics and loaded in a game engine or in another DCC tool.

Ragdoll simulation using Nima PhysX plug-in for Maya

This movie demonstrates how Nima (an open-source plug-in for Maya that integrates the PhysX physics engine from AGEIA and supports COLLADA physics) can simulate a ragdoll directly inside Maya and enable the user to interact with it through the regular Maya manipulators.

3ds MAX workflow

This movie illustrates an example of how 3ds Max can be inserted into a COLLADA workflow where FX Composer is used for the illumination and and a second example using HLSL shaders.

Game interoperability pipeline w/ Softimage

This movie demonstrates game pipeline interoperability using FX Composer 2, Softimage Maya, and Softimage XSI with COLLADA as the glue between the tools.

COLLADA and FX Composer 2

This movie shows two examples of possible workflows using NVIDIA's FX Composer 2 and common Digital Content Creation (DCC) tools like Maya, connected by the COLLADA interchange format.

COLLADA Presentations - GDC 2007

COLLADA Presentations from the Game Developers conference in 2007

Example Code

GLU ES

GLU 1.3 partitial port (libutil component only) for OpenGL ES 1.x (CM). It supports quadric objects, projection matrix manipulation, 2d mipmaps.

COLLADA Conditioners

A COLLADA conditioner is a module component in COLLADA Refinery. Each conditioner can take a COLLADA document, perform a specific operation on the document, and pass the resulting document to the next conditioner. A series of conditioners is a pipeline that improves the state of COLLADA documents.

PowerVR SDK example programs

Collection of example programs with source code illustrating: a Matrix Skinned Character in combination with DOT3 Per Pixel Lighting; Morphing in combination with multi-texturing; different primitive types; a model being lit with 8 point lights at high performance; cell-shading (a.k.a. Toon shading) effects applied on an animated model; performance increase when using optimized indexed triangle lists; particle effects with frame buffer blending; spherical harmonics and regular diffuse vertex lighting; PolyBump technology developed by Crytek to enhance 3D-rendering quality without increasing the overhead in real-time rendering; various shadow techniques; different texture filter modes; how to use user clip planes; and a transparent vase with dynamic reflections on its metallic sections.

San Angeles Observation (396 KB)

OpenGL ES 1.1 port of the small desktop OpenGL self-running demonstration, although it still contains over 60000 faces. This framework compiles for both desktop and PocketPC Win32 environment, and a separate source is included for Linux with X11. (Entry from the 2005 OpenGL ES Coding Challenge) BSD or GNU LGPL license.

RollerCoaster2005 (780 KB)

When launched, the OpenGL ES 1.1 program first dynamically generates all the vertices of the track for a few second. Then the animation starts with a first turn around the coaster, a fade in/fade out, and the ride starts. (Entry from the 2005 OpenGL ES Coding Challenge) GNU GPL license.

JellyFish from Outer Space (5.3 MB)

An OpenGL ES 1.1 mobile device recreation of the classic Space Invaders game, but is completely in 3D. You can look at the invading creatures from underneath, from above or from the side. (Entry from the 2005 OpenGL ES Coding Challenge) GNU GPL license.

Wake Breaker water racing game (600 KB)

An OpenGL ES 1.1 high speed water race between you and the computer through a beautiful ocean environment with caustics. The boats pound the water behind them as they speed, through the randomly generated courses. (Entry from the 2005 OpenGL ES Coding Challenge) BSD license.

Dancing Flora (5.8 MB)

A self-running demo that can drive 3D flowers to dynamically dance with music. It is implemented with OpenGL ES 1.1 on Windows 2000/XP with pure C/C++. (Entry from the 2005 OpenGL ES Coding Challenge) GNU LGPL license.

glEffects (9.3 MB)

Windows application demonstrates several 2D visual effects using OpenGL ES functions. (Entry from the 2005 OpenGL ES Coding Challenge) GNU GPL license.

items in Khronos Group More in Khronos Group pool

www.flickr.com

Newsletter sign-up

Enter your email address to subscribe one of our newsletters

Email:  
powdery
All product names are trademarks or registered trademarks of their respective holders.