/* XXX Update these for each release! */
#define VERSION_MAJOR 2
-#define VERSION_MINOR 2
+#define VERSION_MINOR 4
#define VERSION_PATCH 0
/* Freeglut is meant to be available under all Unix/X11 and Win32 platforms. */
#include <windowsx.h>
#include <mmsystem.h>
#include <TCHAR.H>
+
+/* TODO: MinGW is lacking a prototype, this should better be handled via autoconf! */
+#ifndef ChangeDisplaySettingsEx
+LONG WINAPI ChangeDisplaySettingsExA(LPCSTR,LPDEVMODEA,HWND,DWORD,LPVOID);
+LONG WINAPI ChangeDisplaySettingsExW(LPCWSTR,LPDEVMODEW,HWND,DWORD,LPVOID);
+#ifdef UNICODE
+#define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
+#else
+#define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
+#endif
+#endif
#endif
#if defined(_MSC_VER)
fgExecutionState ExecState; /* Used for GLUT termination */
char *ProgramName; /* Name of the invoking program */
GLboolean JoysticksInitialised; /* Only initialize if application calls for them */
+ GLboolean InputDevsInitialised; /* Only initialize if application calls for them */
};
/* The structure used by display initialization in freeglut_init.c */
/*
* A window, making part of freeglut windows hierarchy.
* Should be kept portable.
+ *
+ * NOTE that ActiveMenu is set to menu itself if the window is a menu.
*/
struct tagSFG_Window
{
int glutJoystickGetNumButtons( int ident );
int glutJoystickNotWorking( int ident );
+/* InputDevice Init/Fini */
+int fgInputDeviceDetect( void );
+void fgInitialiseInputDevices( void );
+void fgInputDeviceClose( void );
+
/* Setting the cursor for a given window */
void fgSetCursor ( SFG_Window *window, int cursorID );
* The menu activation and deactivation the code. This is the meat
* of the menu user interface handling code...
*/
+void fgUpdateMenuHighlight ( SFG_Menu *menu );
GLboolean fgCheckActiveMenu ( SFG_Window *window, int button, GLboolean pressed,
int mouse_x, int mouse_y );
void fgDeactivateMenu( SFG_Window *window );