OpenGL-ES

Line 17: Line 17:
* [http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES2xSGX.asp OpenGL-ES SDK]
* [http://www.imgtec.com/powervr/insider/sdk/KhronosOpenGLES2xSGX.asp OpenGL-ES SDK]
 +
 +
=== Other related documentation ===
 +
 +
* [http://blogs.forum.nokia.com/blog/kate-alholas-forum-nokia-blog/resource/presentations/fremantle_bossa_2009.pdf  Kate's presentaion in Bossa 2009 conference] about Fremantle and section about OpenGL-ES2.0

Revision as of 15:21, 25 March 2009

Contents

OpenGL-ES

Maemo OpenGL-ES


Books about OpenGL-ES

Other documentation

Imagination Technologies SDK

Other related documentation


OpenGL variants

image:Opengl.svg

  • OpenGL-1.0 has fixed shaders and fixed API to using them
  • OpenGL-2.0 adds programable shaders but fixed pipeline api is still there for backward compatibility
  • OpenGL-ES1.0 is OpenGL-1.0 with lot of "syntactic sugar". extra redundant API's removed and fractional integer API added
  • OpenGL-ES2.0 is OpenGL-2.0 using programable shaders is mandatory, all old fixed pipeline API's removed

Porting between openGL variants

  • OpenGL-1.0 application works with OpenGL-2.0 but not opposite
  • OpenGL-1.0 application is possible to port to OpenGL-ES1.0 but needs work if it is using some of removed API's
  • OpenGL-2.0 application that uses programable shaders is possible to port OpenGL-ES2.0 but may need so me work
  • Porting OpenGL1.0 or OpenGL-ES1.0 applications to OpenGL-ES2.0 needs lot of rewrite to use programable shaders.

Compiling under scratchbox

To compile OpenGL-ES2.0 applivations you need to have package "libgles2-dev" installed. It is as standard, part of Fremantle aplha ARMEL but at the moment it is missing from x86 version. We try to get x86 equivalent opengl-es2 emulation library available soon.

To compile some of PoverVR tutorial examples, you can use following Makefile

CC=g++

CPPFLAGS = -DBUILD_OGLES2
LDFLAGS=-lEGL -lX11 -lGLESv2 

all:OGLES2Texturing OGLES2BasicTnL OGLES2IntroducingPVRTools OGLES2HelloTriangle_LinuxX11

OGLES2HelloTriangle_LinuxX11:OGLES2HelloTriangle_LinuxX11.o

OGLES2Texturing: PVRShellOS.o OGLES2Texturing.o  PVRShell.o PVRShellAPI.o

OGLES2BasicTnL: PVRShellOS.o OGLES2BasicTnL.o  PVRShell.o PVRShellAPI.o

OGLES2IntroducingPVRTools: PVRShellOS.o OGLES2IntroducingPVRTools.o  PVRShell.o PVRShellAPI.o