/*
* Freeglut is meant to be available under all Unix/X11 and Win32 platforms.
*/
-#if !defined(_WIN32)
-# define TARGET_HOST_UNIX_X11 1
-# define TARGET_HOST_WIN32 0
-#else
+#if defined(_MSC_VER) || defined(__CYGWIN__) || defined(__MINGW32__)
# define TARGET_HOST_UNIX_X11 0
# define TARGET_HOST_WIN32 1
+#else
+# define TARGET_HOST_UNIX_X11 1
+# define TARGET_HOST_WIN32 0
#endif
#define FREEGLUT_MAX_MENUS 3
#if TARGET_HOST_WIN32
#include <windows.h>
#include <windowsx.h>
+#include <mmsystem.h>
+#endif
+#if defined(_MSC_VER)
#define strdup _strdup
#endif
#if TARGET_HOST_UNIX_X11
XVisualInfo* VisualInfo; /* The window's visual information */
+ Pixmap Pixmap; /* Used for offscreen rendering */
+ //GLXPixmap GLXPixMap; /* Used for offscreen rendering */
#elif TARGET_HOST_WIN32
HDC Device; /* The window's device context */
#endif
int MouseX, MouseY; /* The most recent mouse position */
GLboolean IsGameMode; /* Is this the game mode window? */
-
GLboolean NeedToResize; /* Do we need to resize the window? */
+ GLboolean IsOffscreen; /* Tags a `window' as on/offscreen. */
};
* but this can cause warnings because the FETCH_WCB() macro type-
* casts its result, and a type-cast value shouldn't be an lvalue.
*
- * XXX Note that there is no type-checking to make sure that {func} is
- * XXX a suitable type. We could add a safety-check of the form:
- * XXX
- * XXX if( FETCH_WCB( ... ) != func )
- * XXX ...
- * XXX
- * XXX ...is this desired?
- *
- * XXX The {if( FETCH_WCB( ... ) != func )} test is to do type-checking
- * XXX and for no other reason. Since it's hidden in the macro, the
- * XXX ugliness is felt to be rather benign.
- */
-#define SET_WCB(window,cbname,func) \
-do \
-{ \
- if( FETCH_WCB( window, cbname ) != func ) \
- (((window).CallBacks[CB_ ## cbname]) = func); \
-} while( 0 ) \
+ * The {if( FETCH_WCB( ... ) != func )} test is to do type-checking
+ * and for no other reason. Since it's hidden in the macro, the
+ * ugliness is felt to be rather benign.
+ */
+#define SET_WCB(window,cbname,func) \
+do \
+{ \
+ if( FETCH_WCB( window, cbname ) != func ) \
+ (((window).CallBacks[CB_ ## cbname]) = (void *) func); \
+} while( 0 ) \
/*
* FETCH_WCB() is used as: