1------------------------------------------------------------------------ 2San Angeles Observation OpenGL ES version example 3Copyright 2004-2005 Jetro Lauha 4Web: http://iki.fi/jetro/ 5See file license.txt for licensing information. 6------------------------------------------------------------------------ 7 8This is an OpenGL ES port of the small self-running demonstration 9called "San Angeles Observation", which was first presented in the 10Assembly'2004 event. It won the first place in the 4 KB intro 11competition category. 12 13The demonstration features a sightseeing of a futuristic city 14having many different kind of buildings and items. Everything is 15flat shaded with three different lights. 16 17The original version was made for desktop with OpenGL. It was 18naturally heavily size optimized in order to fit it in the size 19limit. For this OpenGL ES version example much of the code is 20cleaned up and the sound is removed. Also detail level is lowered, 21although it still contains over 60000 faces. 22 23The Win32 (2000/XP) binary package of original version is 24available from this address: http://jet.ro/files/angeles.zip 25 26First version of this OpenGL ES port was submitted to the Khronos 27OpenGL ES Coding Challenge held in 2004-2005. 28 29As a code example, this source shows the following: 30 * How to create a minimal and portable ad hoc framework 31 for small testing/demonstration programs. This framework 32 compiles for both desktop and PocketPC Win32 environment, 33 and a separate source is included for Linux with X11. 34 * How to dynamically find and use the OpenGL ES DLL or 35 shared object, so that the library is not needed at 36 the compile/link stage. 37 * How to use the basic features of OpenGL ES 1.0/1.1 38 Common Lite, such as vertex arrays, color arrays and 39 lighting. 40 * How to create a self contained small demonstration 41 application with objects generated using procedural 42 algorithms. 43 44As the original version was optimized for size instead of 45performance, that holds true for this OpenGL ES version as 46well. Thus the performance could be significantly increased, 47for example by changing the code to use glDrawElements 48instead of glDrawArrays. The code uses only OpenGL ES 1.0 49Common Lite -level function calls without any extensions. 50 51The reference OpenGL ES implementations used for this application: 52 * Hybrid's OpenGL ES API Implementation (Gerbera) version 2.0.4 53 Prebuilt Win32 PC executable: SanOGLES-Gerbera.exe 54 * PowerVR MBX SDK, OpenGL ES Windows PC Emulation version 1.04.14.0170 55 Prebuilt Win32 PC executable: SanOGLES-PVRSDK.exe 56 57Note that DISABLE_IMPORTGL preprocessor macro can be used 58to specify not to use dynamic runtime binding of the library. 59You also need to define preprocessor macro PVRSDK to compile 60the source with PowerVR OpenGL ES SDK. 61 62The demo application is briefly tested with a few other OpenGL ES 63implementations as well (e.g. Vincent, GLESonGL on Linux, Dell 64Axim X50v). Most of these other implementations rendered the demo 65erroneously in some aspect. This may indicate that the demo source 66could still have some work to do with compatibility and correct 67API usage, although the non-conforming implementations are most 68probably unfinished as well. 69 70Thanks and Acknowledgements: 71 72* Toni L�nnberg (!Cube) created the music for original version, which 73 is not featured in this OpenGL ES port. 74* Sara Kapli (st Rana) for additional camera work. 75* Paul Bourke for information about the supershapes. 76 77------------------------------------------------------------------------ 78