/*
* Always include OpenGL and GLU headers
*/
-#ifdef ANDROID
-/* Use EGL (implies OpenGL ES) */
-/* TODO: EGL/GLES builds should be more generally defined, possibly by
- generating this file dynamically */
+/* Note: FREEGLUT_GLES1 and FREEGLUT_GLES2 are only used to cleanly
+ bootstrap headers inclusion here; use GLES constants directly
+ (e.g. GL_ES_VERSION_2_0) for all other needs */
+#ifdef FREEGLUT_GLES2
# include <EGL/egl.h>
-/* TODO: we probably need 2 builds: -lGLESv1 and -lGLESv2 */
-/* #include <GLES/gl.h> */
# include <GLES2/gl2.h>
-/* TODO: temporary work-around for e.g. glutWireCube */
-# define GLdouble GLfloat
+#elif FREEGLUT_GLES1
+# include <EGL/egl.h>
+# include <GLES/gl.h>
#else
# include <GL/gl.h>
# include <GL/glu.h>
/*
* Geometry functions, see freeglut_geometry.c
*/
-FGAPI void FGAPIENTRY glutWireCube( GLdouble size );
-FGAPI void FGAPIENTRY glutSolidCube( GLdouble size );
-FGAPI void FGAPIENTRY glutWireSphere( GLdouble radius, GLint slices, GLint stacks );
-FGAPI void FGAPIENTRY glutSolidSphere( GLdouble radius, GLint slices, GLint stacks );
-FGAPI void FGAPIENTRY glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks );
-FGAPI void FGAPIENTRY glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks );
-FGAPI void FGAPIENTRY glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings );
-FGAPI void FGAPIENTRY glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings );
+FGAPI void FGAPIENTRY glutWireCube( double size );
+FGAPI void FGAPIENTRY glutSolidCube( double size );
+#ifndef GL_ES_VERSION_2_0
+FGAPI void FGAPIENTRY glutWireSphere( double radius, GLint slices, GLint stacks );
+FGAPI void FGAPIENTRY glutSolidSphere( double radius, GLint slices, GLint stacks );
+#endif
+#ifndef EGL_VERSION_1_0
+FGAPI void FGAPIENTRY glutWireCone( double base, double height, GLint slices, GLint stacks );
+FGAPI void FGAPIENTRY glutSolidCone( double base, double height, GLint slices, GLint stacks );
+#endif
+
+FGAPI void FGAPIENTRY glutWireTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
+FGAPI void FGAPIENTRY glutSolidTorus( double innerRadius, double outerRadius, GLint sides, GLint rings );
FGAPI void FGAPIENTRY glutWireDodecahedron( void );
FGAPI void FGAPIENTRY glutSolidDodecahedron( void );
FGAPI void FGAPIENTRY glutWireOctahedron( void );
/*
* Teapot rendering functions, found in freeglut_teapot.c
*/
+/* TODO: doesn't work with GLES1 yet */
+#ifndef EGL_VERSION_1_0
FGAPI void FGAPIENTRY glutWireTeapot( GLdouble size );
FGAPI void FGAPIENTRY glutSolidTeapot( GLdouble size );
+#endif
/*
* Game mode functions, see freeglut_gamemode.c