*/
/* Define FREEGLUT_LIB_PRAGMAS to 1 to include library
- * pragmas or to 1 to exclude library pragmas.
+ * pragmas or to 0 to exclude library pragmas.
* The default behavior depends on the compiler/platform.
*/
# ifndef FREEGLUT_LIB_PRAGMAS
# ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN 1
# endif
-# define NOMINMAX
-# include <Windows.h>
+# ifndef NOMINMAX
+# define NOMINMAX
+# endif
+# include <windows.h>
/* Windows static library */
# ifdef FREEGLUT_STATIC
/* Link with Win32 static freeglut lib */
# if FREEGLUT_LIB_PRAGMAS
-# pragma comment (lib, "freeglut_static.lib")
+# ifdef NDEBUG
+# pragma comment (lib, "freeglut_static.lib")
+# else
+# pragma comment (lib, "freeglut_staticd.lib")
+# endif
# endif
/* Windows shared library (DLL) */
/* Link with Win32 shared freeglut lib */
# if FREEGLUT_LIB_PRAGMAS
-# pragma comment (lib, "freeglut.lib")
+# ifdef NDEBUG
+# pragma comment (lib, "freeglut.lib")
+# else
+# pragma comment (lib, "freeglutd.lib")
+# endif
# endif
# endif
*/
#define FREEGLUT 1
#define GLUT_API_VERSION 4
-#define FREEGLUT_VERSION_2_0 1
#define GLUT_XLIB_IMPLEMENTATION 13
+/* Deprecated:
+ cf. http://sourceforge.net/mailarchive/forum.php?thread_name=CABcAi1hw7cr4xtigckaGXB5X8wddLfMcbA_rZ3NAuwMrX_zmsw%40mail.gmail.com&forum_name=freeglut-developer */
+#define FREEGLUT_VERSION_2_0 1
/*
* Always include OpenGL and GLU headers
*/
-#include <GL/gl.h>
-#include <GL/glu.h>
+/* 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>
+# include <GLES2/gl2.h>
+#elif FREEGLUT_GLES1
+# include <EGL/egl.h>
+# include <GLES/gl.h>
+#else
+# include <GL/gl.h>
+# include <GL/glu.h>
+#endif
/*
* GLUT API macro definitions -- the special key codes:
/*
* 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 );
+FGAPI void FGAPIENTRY glutWireSphere( double radius, GLint slices, GLint stacks );
+FGAPI void FGAPIENTRY glutSolidSphere( double radius, GLint slices, GLint stacks );
+FGAPI void FGAPIENTRY glutWireCone( double base, double height, GLint slices, GLint stacks );
+FGAPI void FGAPIENTRY glutSolidCone( double base, double height, GLint slices, GLint stacks );
+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
+ * NB: front facing polygons have clockwise winding, not counter clockwise
*/
+/* 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