# include "config.h"
#endif
+#include "fg_version.h"
+
/* Freeglut is intended to function under all Unix/X11 and Win32 platforms. */
/* XXX: Don't all MS-Windows compilers (except Cygwin) have _WIN32 defined?
* XXX: If so, remove the first set of defined()'s below.
#elif defined (__ANDROID__)
# define TARGET_HOST_ANDROID 1
+#elif defined (__QNXNTO__) || defined (__PLAYBOOK__)
+# define TARGET_HOST_BLACKBERRY 1
+
#elif defined(__posix__) || defined(__unix__) || defined(__linux__) || defined(__sun)
-# define TARGET_HOST_POSIX_X11 1
+# if defined(FREEGLUT_WAYLAND)
+# define TARGET_HOST_POSIX_WAYLAND 1
+# else
+# define TARGET_HOST_POSIX_X11 1
+# endif
#elif defined(__APPLE__)
/* This is a placeholder until we get native OSX support ironed out -- JFF 11/18/09 */
#endif
#ifndef TARGET_HOST_MS_WINDOWS
-# define TARGET_HOST_MS_WINDOWS 0
+# define TARGET_HOST_MS_WINDOWS 0
+#endif
+
+#ifndef TARGET_HOST_ANDROID
+# define TARGET_HOST_ANDROID 0
+#endif
+
+#ifndef TARGET_HOST_BLACKBERRY
+# define TARGET_HOST_BLACKBERRY 0
+#endif
+
+#ifndef TARGET_HOST_POSIX_WAYLAND
+# define TARGET_HOST_POSIX_WAYLAND 0
#endif
#ifndef TARGET_HOST_POSIX_X11
-# define TARGET_HOST_POSIX_X11 0
+# define TARGET_HOST_POSIX_X11 0
#endif
#ifndef TARGET_HOST_MAC_OSX
-# define TARGET_HOST_MAC_OSX 0
+# define TARGET_HOST_MAC_OSX 0
#endif
#ifndef TARGET_HOST_SOLARIS
-# define TARGET_HOST_SOLARIS 0
+# define TARGET_HOST_SOLARIS 0
#endif
/* -- FIXED CONFIGURATION LIMITS ------------------------------------------- */
-#define FREEGLUT_MAX_MENUS 3
+#define FREEGLUT_MAX_MENUS 3
/* These files should be available on every platform. */
#include <stdio.h>
#endif
/* Platform-specific includes */
+#if TARGET_HOST_POSIX_WAYLAND
+#include "wayland/fg_internal_wl.h"
+#endif
#if TARGET_HOST_POSIX_X11
#include "x11/fg_internal_x11.h"
#endif
#if TARGET_HOST_ANDROID
#include "android/fg_internal_android.h"
#endif
+#if TARGET_HOST_BLACKBERRY
+#include "blackberry/fg_internal_blackberry.h"
+#endif
/* -- GLOBAL TYPE DEFINITIONS ---------------------------------------------- */
GLboolean SkipStaleMotion; /* skip stale motion events */
+ GLboolean StrokeFontDrawJoinDots;/* Draw dots between line segments of stroke fonts? */
+ GLboolean AllowNegativeWindowPosition; /* GLUT, by default, doesn't allow negative window positions. Enable it? */
+
int MajorVersion; /* Major OpenGL context version */
int MinorVersion; /* Minor OpenGL context version */
int ContextFlags; /* OpenGL context flags */
FGWarning WarningFunc; /* User defined warning handler */
};
-/* The structure used by display initialization in freeglut_init.c */
+/* The structure used by display initialization in fg_init.c */
typedef struct tagSFG_Display SFG_Display;
struct tagSFG_Display
{
/*
* A window and its OpenGL context. The contents of this structure
- * are highly dependant on the target operating system we aim at...
+ * are highly dependent on the target operating system we aim at...
*/
typedef struct tagSFG_Context SFG_Context;
struct tagSFG_Context
int DoubleBuffered; /* Treat the window as double-buffered */
- /* When drawing geometry to vertex attribute buffers, user specifies
+ /* When drawing geometry to vertex attribute buffers, user specifies
* the attribute indices for vertices, normals and/or texture coords
* to freeglut. Those are stored here
*/
#define GLUT_SIZE_WORK (1<<3)
#define GLUT_ZORDER_WORK (1<<4)
#define GLUT_FULL_SCREEN_WORK (1<<5)
+#define GLUT_DISPLAY_WORK (1<<6)
/*
* An enumeration containing the state of the GLUT execution:
int DesiredZOrder; /* desired window Z Order position */
fgDesiredVisibility DesiredVisibility;/* desired visibility (hidden, iconic, shown/normal) */
-
SFG_PlatformWindowState pWState; /* Window width/height (X11) or rectangle/style (Windows) from before a resize, and other stuff only needed on specific platforms */
- GLboolean Redisplay; /* Do we have to redisplay? */
-
-
long JoystickPollRate; /* The joystick polling rate */
fg_time_t JoystickLastPoll; /* When the last poll happened */
/* -- JOYSTICK-SPECIFIC STRUCTURES AND TYPES ------------------------------- */
/*
- * Initial defines from "js.h" starting around line 33 with the existing "freeglut_joystick.c"
+ * Initial defines from "js.h" starting around line 33 with the existing "fg_joystick.c"
* interspersed
*/
}
/*
- * Following definitions are somewhat similiar to GLib's,
+ * Following definitions are somewhat similar to GLib's,
* but do not generate any log messages:
*/
#define freeglut_return_if_fail( expr ) \
/*
* Window creation, opening, closing and destruction.
* Also CallBack clearing/initialization.
- * Defined in freeglut_structure.c, freeglut_window.c.
+ * Defined in fg_structure.c, fg_window.c.
*/
SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title,
GLboolean positionUse, int x, int y,
void fgCloseWindows ();
void fgDestroyWindow( SFG_Window* window );
-/* Menu creation and destruction. Defined in freeglut_structure.c */
+/* Menu creation and destruction. Defined in fg_structure.c */
SFG_Menu* fgCreateMenu( FGCBMenu menuCallback );
void fgDestroyMenu( SFG_Menu* menu );
-/* Joystick device management functions, defined in freeglut_joystick.c */
+/* Joystick device management functions, defined in fg_joystick.c */
int fgJoystickDetect( void );
void fgInitialiseJoysticks( void );
void fgJoystickClose( void );
void fgInitialiseInputDevices( void );
void fgInputDeviceClose( void );
-/* spaceball device functions, defined in freeglut_spaceball.c */
+/* spaceball device functions, defined in fg_spaceball.c */
void fgInitialiseSpaceball( void );
void fgSpaceballClose( void );
void fgSpaceballSetWindow( SFG_Window *window );
*
* where window is the enumerated (sub)window pointer (SFG_Window *),
* and userData is the a custom user-supplied pointer. Functions
- * are defined and exported from freeglut_structure.c file.
+ * are defined and exported from fg_structure.c file.
*/
void fgEnumWindows( FGCBWindowEnumerator enumCallback, SFG_Enumerator* enumerator );
void fgEnumSubWindows( SFG_Window* window, FGCBWindowEnumerator enumCallback,
/*
* fgWindowByHandle returns a (SFG_Window *) value pointing to the
* first window in the queue matching the specified window handle.
- * The function is defined in freeglut_structure.c file.
+ * The function is defined in fg_structure.c file.
*/
SFG_Window* fgWindowByHandle( SFG_WindowHandleType hWindow );
/*
- * This function is similiar to the previous one, except it is
+ * This function is similar to the previous one, except it is
* looking for a specified (sub)window identifier. The function
- * is defined in freeglut_structure.c file.
+ * is defined in fg_structure.c file.
*/
SFG_Window* fgWindowByID( int windowID );
/*
* This function gets called just before the buffers swap, so that
* freeglut can display the pull-down menus via OpenGL. The function
- * is defined in freeglut_menu.c file.
+ * is defined in fg_menu.c file.
*/
void fgDisplayMenu( void );