# include <X11/Xatom.h>
# include <X11/keysym.h>
# include <X11/extensions/XInput.h>
-# ifdef HAVE_XXF86VM
+# ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H
# include <X11/extensions/xf86vmode.h>
# endif
+# 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
Atom State; /* The state atom */
Atom StateFullScreen; /* The full screen atom */
-#ifdef X_XF86VidModeGetModeLine
+#ifdef HAVE_X11_EXTENSIONS_XRANDR_H
+ int prev_xsz, prev_ysz;
+ int prev_size_valid;
+#endif /* HAVE_X11_EXTENSIONS_XRANDR_H */
+
+#ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H
/*
* XF86VidMode may be compilable even if it fails at runtime. Therefore,
* the validity of the VidMode has to be tracked
int DisplayPointerX; /* saved X location of the pointer */
int DisplayPointerY; /* saved Y location of the pointer */
-#endif /* X_XF86VidModeGetModeLine */
+#endif /* HAVE_X11_EXTENSIONS_XF86VMODE_H */
#elif TARGET_HOST_MS_WINDOWS
HINSTANCE Instance; /* The application's instance */
* A call to those macros assures us that there is a current
* window set, respectively:
*/
-#define FREEGLUT_EXIT_IF_NO_WINDOW( string ) \
- if ( ! fgStructure.CurrentWindow ) \
- { \
- fgError ( " ERROR: Function <%s> called" \
- " with no current window defined.", (string) ) ; \
+#define FREEGLUT_EXIT_IF_NO_WINDOW( string ) \
+ if ( ! fgStructure.CurrentWindow && \
+ ( fgState.ActionOnWindowClose != GLUT_ACTION_CONTINUE_EXECUTION ) ) \
+ { \
+ fgError ( " ERROR: Function <%s> called" \
+ " with no current window defined.", (string) ) ; \
}
/*
/* A helper function to check if a display mode is possible to use */
#if TARGET_HOST_POSIX_X11
-GLXFBConfig* fgChooseFBConfig( void );
+GLXFBConfig* fgChooseFBConfig( int* numcfgs );
#endif
/* The window procedure for Win32 events handling */