/*
- * freeglut_internal_x11.h
+ * fg_internal_x11.h
*
* The freeglut library private include file.
*
/* -- PLATFORM-SPECIFIC INCLUDES ------------------------------------------- */
+#ifdef EGL_VERSION_1_0
+#include "egl/fg_internal_egl.h"
+#else
#include <GL/glx.h>
+#include "x11/fg_internal_x11_glx.h"
+#endif
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/keysym.h>
#ifdef HAVE_X11_EXTENSIONS_XRANDR_H
# include <X11/extensions/Xrandr.h>
#endif
-/* If GLX is too old, we will fail during runtime when multisampling
- is requested, but at least freeglut compiles. */
-#ifndef GLX_SAMPLE_BUFFERS
-# define GLX_SAMPLE_BUFFERS 0x80A8
-#endif
-#ifndef GLX_SAMPLES
-# define GLX_SAMPLES 0x80A9
-#endif
-
/* -- GLOBAL TYPE DEFINITIONS ---------------------------------------------- */
-/* The structure used by display initialization in freeglut_init.c */
+/* The structure used by display initialization in fg_init.c */
typedef struct tagSFG_PlatformDisplay SFG_PlatformDisplay;
struct tagSFG_PlatformDisplay
{
Atom DeleteWindow; /* The window deletion atom */
Atom State; /* The state atom */
Atom StateFullScreen; /* The full screen atom */
+ int NetWMSupported; /* Flag for EWMH Window Managers */
+ Atom NetWMPid; /* The _NET_WM_PID atom */
+ Atom ClientMachine; /* The client machine name atom */
#ifdef HAVE_X11_EXTENSIONS_XRANDR_H
int prev_xsz, prev_ysz;
int DisplayViewPortY; /* saved Y location of the viewport */
#endif /* HAVE_X11_EXTENSIONS_XF86VMODE_H */
+#ifdef EGL_VERSION_1_0
+ struct tagSFG_PlatformDisplayEGL egl;
+#endif
+
int DisplayPointerX; /* saved X location of the pointer */
int DisplayPointerY; /* saved Y location of the pointer */
};
* Make "freeglut" window handle and context types so that we don't need so
* much conditionally-compiled code later in the library.
*/
+#ifndef EGL_VERSION_1_0
typedef Window SFG_WindowHandleType ;
typedef GLXContext SFG_WindowContextType ;
+#endif
typedef struct tagSFG_PlatformContext SFG_PlatformContext;
struct tagSFG_PlatformContext
{
- GLXFBConfig* FBConfig; /* The window's FBConfig */
+#ifdef EGL_VERSION_1_0
+ struct tagSFG_PlatformContextEGL egl;
+#else
+ GLXFBConfig FBConfig; /* The window's FBConfig */
+#endif
};
{
int OldWidth; /* Window width from before a resize */
int OldHeight; /* " height " " " " */
+ GLboolean KeyRepeating; /* Currently in repeat mode? */
};
/* -- 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
*/
# ifdef HAVE_SYS_IOCTL_H
# ifdef HAVE_FCNTL_H
# include <fcntl.h>
# endif
-# ifdef HAVE_ERRNO_H
-# include <errno.h>
-# include <string.h>
-# endif
+
+#include <errno.h>
+#include <string.h>
+
# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__)
/* XXX The below hack is done until freeglut's autoconf is updated. */
# define HAVE_USB_JS 1
/* -- PRIVATE FUNCTION DECLARATIONS ---------------------------------------- */
-/* spaceball device functions, defined in freeglut_spaceball.c */
+/* spaceball device functions, defined in fg_spaceball.c */
int fgIsSpaceballXEvent( const XEvent *ev );
void fgSpaceballHandleXEvent( const XEvent *ev );
/*
- * Check if "hint" is present in "property" for "window". See freeglut_init.c
+ * Check if "hint" is present in "property" for "window". See fg_init.c
*/
int fgHintPresent(Window window, Atom property, Atom hint);