Added check for FREEGLUT_DLL to allow static & DLL build on Windows.
[freeglut] / include / GL / freeglut.h
index b4d6acb..36fe111 100644 (file)
  * Under windows, we've got some issues to solve
  */
 #if defined(WIN32)
+#    include <windows.h>
+#    include <windowsx.h>
+#    include <mmsystem.h>
+#    define WINDOWS
+#    pragma comment (lib, "winmm.lib")       /* link with Windows MultiMedia lib */
+#    pragma comment (lib, "opengl32.lib")    /* link with Microsoft OpenGL lib */
+#    pragma comment (lib, "glu32.lib")       /* link with OpenGL Utility lib */
+//#if defined(_USRDLL)
+//#    if defined(FREEGLUTLIB_EXPORTS)
+#if defined(FREEGLUT_DLL)
 #      if defined(FREEGLUT_LIBRARY_BUILD)
 #              define FGAPI __declspec(dllexport)
 #      else
 #      endif
 #      define FGAPIENTRY __stdcall
 #else
+#    define FGAPI
+#    define FGAPIENTRY
+#    pragma comment (lib, "freeglut.lib")    /* link with Win32 freeglut lib */
+#endif
+
+#else
 #      define FGAPI
 #      define FGAPIENTRY
 #endif
 #endif
 
 /*
+ * GLUT API Extension macro definitions -- behaviour when the user clicks on an "x" to close a window
+ */
+#define GLUT_ACTION_EXIT                         0
+#define GLUT_ACTION_GLUTMAINLOOP_RETURNS         1
+#define GLUT_ACTION_CONTINUE_EXECUTION           2
+
+/*
  * GLUT API macro definitions -- the glutGet parameters
  */
 #define  GLUT_WINDOW_X                      0x0064
 #define  GLUT_ELAPSED_TIME                  0x02BC
 #define  GLUT_WINDOW_FORMAT_ID              0x007B
 
+#define  GLUT_ACTION_ON_WINDOW_CLOSE        0x01F9
+
 /*
  * GLUT API macro definitions -- the glutDeviceGet parameters
  */
  * GLUT API macro definitions -- the glutGetModifiers parameters
  */
 #define  GLUT_ACTIVE_SHIFT                  0x0001
-#define  GLUT_ACTIVE_CTRL                   0x0004
-#define  GLUT_ACTIVE_ALT                    0x0008
+#define  GLUT_ACTIVE_CTRL                   0x0002
+#define  GLUT_ACTIVE_ALT                    0x0004
 
 /*
  * GLUT API macro definitions -- the glutSetCursor parameters
@@ -335,6 +360,8 @@ FGAPI void    FGAPIENTRY glutInitDisplayString( char* displayMode );
  * Process loop function, see freeglut_main.c
  */
 FGAPI void    FGAPIENTRY glutMainLoop( void );
+FGAPI void    FGAPIENTRY glutMainLoopEvent( void );
+FGAPI void    FGAPIENTRY glutLeaveMainLoop( void );
 
 /*
  * Window management functions, see freeglut_window.c
@@ -412,6 +439,8 @@ FGAPI void    FGAPIENTRY glutMouseFunc( void (* callback)( int, int, int, int )
 FGAPI void    FGAPIENTRY glutMotionFunc( void (* callback)( int, int ) );
 FGAPI void    FGAPIENTRY glutPassiveMotionFunc( void (* callback)( int, int ) );
 FGAPI void    FGAPIENTRY glutEntryFunc( void (* callback)( int ) );
+FGAPI void    FGAPIENTRY glutCloseFunc( void (* callback)( void ) );
+FGAPI void    FGAPIENTRY glutWMCloseFunc( void (* callback)( void ) );
 
 FGAPI void    FGAPIENTRY glutKeyboardUpFunc( void (* callback)( unsigned char, int, int ) );
 FGAPI void    FGAPIENTRY glutSpecialUpFunc( void (* callback)( int, int, int ) );
@@ -424,14 +453,16 @@ FGAPI void    FGAPIENTRY glutWindowStatusFunc( void (* callback)( int ) );
 FGAPI void    FGAPIENTRY glutSpaceballMotionFunc( void (* callback)( int, int, int ) );
 FGAPI void    FGAPIENTRY glutSpaceballRotateFunc( void (* callback)( int, int, int ) );
 FGAPI void    FGAPIENTRY glutSpaceballButtonFunc( void (* callback)( int, int ) );
-FGAPI void    FGAPIENTRY glutBottonBoxFunc( void (* callback)( int, int ) );
+FGAPI void    FGAPIENTRY glutButtonBoxFunc( void (* callback)( int, int ) );
 FGAPI void    FGAPIENTRY glutDialsFunc( void (* callback)( int, int ) );
 FGAPI void    FGAPIENTRY glutTabletMotionFunc( void (* callback)( int, int ) );
 FGAPI void    FGAPIENTRY glutTabletButtonFunc( void (* callback)( int, int, int, int ) );
 
 /*
- * State retrieval functions, see freeglut_state.c
+ * State setting and retrieval functions, see freeglut_state.c
  */
+FGAPI void    FGAPIENTRY glutSetOption ( GLenum option_flag, int value ) ;
+
 FGAPI int     FGAPIENTRY glutGet( GLenum query );
 FGAPI int     FGAPIENTRY glutDeviceGet( GLenum query );
 FGAPI int     FGAPIENTRY glutGetModifiers( void );
@@ -447,7 +478,9 @@ FGAPI int     FGAPIENTRY glutStrokeWidth( void* font, int character );
 FGAPI int     FGAPIENTRY glutBitmapLength( void* font, const char* string );
 FGAPI int     FGAPIENTRY glutStrokeLength( void* font, const char* string );
 FGAPI int     FGAPIENTRY glutBitmapHeight( void* font );
-FGAPI int     FGAPIENTRY glutStrokeHeight( void* font );
+FGAPI GLfloat FGAPIENTRY glutStrokeHeight( void* font );
+FGAPI void    FGAPIENTRY glutBitmapString( void* font, const char *string );
+FGAPI void    FGAPIENTRY glutStrokeString( void* font, const char *string );
 
 /*
  * Geometry functions, see freeglut_geometry.c
@@ -469,6 +502,10 @@ FGAPI void    FGAPIENTRY glutWireTetrahedron( void );
 FGAPI void    FGAPIENTRY glutSolidTetrahedron( void );
 FGAPI void    FGAPIENTRY glutWireIcosahedron( void );
 FGAPI void    FGAPIENTRY glutSolidIcosahedron( void );
+FGAPI void    FGAPIENTRY glutWireRhombicDodecahedron( void );
+FGAPI void    FGAPIENTRY glutSolidRhombicDodecahedron( void );
+FGAPI void    FGAPIENTRY glutWireSierpinskiSponge ( int num_levels, GLfloat offset[3], GLfloat scale ) ;
+FGAPI void    FGAPIENTRY glutSolidSierpinskiSponge ( int num_levels, GLfloat offset[3], GLfloat scale ) ;
 
 /*
  * Teapot rendering functions, found in freeglut_teapot.c
@@ -504,7 +541,7 @@ FGAPI void    FGAPIENTRY glutCopyColormap( int window );
  * Misc keyboard and joystick functions, see freeglut_misc.c
  */
 FGAPI void    FGAPIENTRY glutIgnoreKeyRepeat( int ignore );
-FGAPI void    FGAPIENTRY glutSetKeyRepeat( int repeatMode );
+FGAPI void    FGAPIENTRY glutSetKeyRepeat( int repeatMode );  /* DEPRECATED 11/4/02 - Do not use */
 FGAPI void    FGAPIENTRY glutForceJoystickFunc( void );
 
 /*
@@ -520,7 +557,3 @@ FGAPI void    FGAPIENTRY glutReportErrors( void );
 #endif /* FREEGLUT_H */
 
 /*** END OF FILE ***/
-
-
-
-