X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_internal.h;h=0ec9cc2c7fa794b3104f6899aaf2c8e37b3a9342;hb=ac26c64653954569627ad5413240cbd8453cd814;hp=8330e9d0b25d772e4dcc34cf6350ab052991f131;hpb=9e31ffd2f4fe1e5093876e56a0da3db3f66acdfb;p=freeglut diff --git a/src/freeglut_internal.h b/src/freeglut_internal.h index 8330e9d..0ec9cc2 100644 --- a/src/freeglut_internal.h +++ b/src/freeglut_internal.h @@ -34,7 +34,7 @@ /* XXX Update these for each release! */ #define VERSION_MAJOR 2 -#define VERSION_MINOR 4 +#define VERSION_MINOR 7 #define VERSION_PATCH 0 /* Freeglut is intended to function under all Unix/X11 and Win32 platforms. */ @@ -49,14 +49,21 @@ #elif defined(__posix__) || defined(__unix__) || defined(__linux__) # define TARGET_HOST_POSIX_X11 1 -/* FIXME: no Macintosh support? -#if ... -# define TARGET_HOST_MAC_OSX 1 +#elif defined(__APPLE__) +/* This is a placeholder until we get native OSX support ironed out -- JFF 11/18/09 */ +# define TARGET_HOST_POSIX_X11 1 +/* # define TARGET_HOST_MAC_OSX 1 */ + #else # error "Unrecognized target host!" */ #endif +/* Detect both SunPro and gcc compilers on Sun Solaris */ +#if defined (__SVR4) && defined (__sun) +# define TARGET_HOST_SOLARIS 1 +#endif + #ifndef TARGET_HOST_MS_WINDOWS # define TARGET_HOST_MS_WINDOWS 0 #endif @@ -69,6 +76,10 @@ # define TARGET_HOST_MAC_OSX 0 #endif +#ifndef TARGET_HOST_SOLARIS +# define TARGET_HOST_SOLARIS 0 +#endif + /* -- FIXED CONFIGURATION LIMITS ------------------------------------------- */ #define FREEGLUT_MAX_MENUS 3 @@ -101,6 +112,14 @@ # ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H # include # 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 #endif @@ -307,6 +326,7 @@ struct tagSFG_State int MajorVersion; /* Major OpenGL context version */ int MinorVersion; /* Minor OpenGL context version */ int ContextFlags; /* OpenGL context flags */ + int ContextProfile; /* OpenGL context profile */ }; /* The structure used by display initialization in freeglut_init.c */ @@ -418,6 +438,8 @@ struct tagSFG_WindowState GLboolean KeyRepeating; /* Currently in repeat mode */ GLboolean NeedToResize; /* Do we need to resize the window? */ + + GLboolean IsFullscreen; /* is the window fullscreen? */ }; @@ -546,9 +568,9 @@ enum /* Presently ignored */ CB_Select, CB_OverlayDisplay, - CB_SpaceMotion, - CB_SpaceRotation, - CB_SpaceButton, + CB_SpaceMotion, /* presently implemented only on UNIX/X11 */ + CB_SpaceRotation, /* presently implemented only on UNIX/X11 */ + CB_SpaceButton, /* presently implemented only on UNIX/X11 */ CB_Dials, CB_ButtonBox, CB_TabletMotion, @@ -796,6 +818,7 @@ GLXFBConfig* fgChooseFBConfig( void ); #if TARGET_HOST_MS_WINDOWS LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ); +void fgNewWGLCreateContext( SFG_Window* window ); GLboolean fgSetupPixelFormat( SFG_Window* window, GLboolean checkOnly, unsigned char layer_type ); #endif @@ -834,6 +857,19 @@ int fgInputDeviceDetect( void ); void fgInitialiseInputDevices( void ); void fgInputDeviceClose( void ); +/* spaceball device functions, defined in freeglut_spaceball.c */ +void fgInitialiseSpaceball( void ); +void fgSpaceballClose( void ); +void fgSpaceballSetWindow( SFG_Window *window ); + +int fgHasSpaceball( void ); +int fgSpaceballNumButtons( void ); + +#if TARGET_HOST_POSIX_X11 +int fgIsSpaceballXEvent( const XEvent *ev ); +void fgSpaceballHandleXEvent( const XEvent *ev ); +#endif + /* Setting the cursor for a given window */ void fgSetCursor ( SFG_Window *window, int cursorID ); @@ -915,6 +951,10 @@ int fgHintPresent(Window window, Atom property, Atom hint); SFG_Proc fghGetProcAddress( const char *procName ); +#if TARGET_HOST_MS_WINDOWS +extern void (__cdecl *__glutExitFunc)( int return_value ); +#endif + #endif /* FREEGLUT_INTERNAL_H */ /*** END OF FILE ***/