X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2FCommon%2Ffreeglut_internal.h;h=4cca9e9ebbdf76b93d3607b8ff78b9b90e0f2513;hb=2537114893dba103beba5fd88b21e832098f1175;hp=bbef2cec10f99adf9d41a2029a86a455f5f6da11;hpb=dd9fc483a6ced7728522c54b245ce3d03e826cd4;p=freeglut diff --git a/src/Common/freeglut_internal.h b/src/Common/freeglut_internal.h index bbef2ce..4cca9e9 100644 --- a/src/Common/freeglut_internal.h +++ b/src/Common/freeglut_internal.h @@ -86,31 +86,6 @@ #define FREEGLUT_MAX_MENUS 3 -/* -- PLATFORM-SPECIFIC INCLUDES ------------------------------------------- */ - -#if TARGET_HOST_POSIX_X11 -# include -# include -# include -# include -# include -# ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H -# include -# endif -# ifdef HAVE_X11_EXTENSIONS_XRANDR_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 - /* These files should be available on every platform. */ #include #include @@ -183,55 +158,7 @@ /* Platform-specific includes */ #if TARGET_HOST_POSIX_X11 - -typedef struct tagSFG_PlatformDisplay SFG_PlatformDisplay; -struct tagSFG_PlatformDisplay -{ - Display* Display; /* The display we are being run in. */ - int Screen; /* The screen we are about to use. */ - Window RootWindow; /* The screen's root window. */ - int Connection; /* The display's connection number */ - Atom DeleteWindow; /* The window deletion atom */ - Atom State; /* The state atom */ - Atom StateFullScreen; /* The full screen atom */ - -#ifdef HAVE_X11_EXTENSIONS_XRANDR_H - int prev_xsz, prev_ysz; - int prev_refresh; - 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 DisplayModeValid; /* Flag that indicates runtime status*/ - XF86VidModeModeLine DisplayMode; /* Current screen's display settings */ - int DisplayModeClock; /* The display mode's refresh rate */ - int DisplayViewPortX; /* saved X location of the viewport */ - int DisplayViewPortY; /* saved Y location of the viewport */ -#endif /* HAVE_X11_EXTENSIONS_XF86VMODE_H */ - - 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. - */ -typedef Window SFG_WindowHandleType ; -typedef GLXContext SFG_WindowContextType ; -typedef struct tagSFG_PlatformContext SFG_PlatformContext; -struct tagSFG_PlatformContext -{ - GLXFBConfig* FBConfig; /* The window's FBConfig */ -}; - - - +#include "../x11/freeglut_internal_x11.h" #endif #if TARGET_HOST_MS_WINDOWS #include "../mswin/freeglut_internal_mswin.h" @@ -418,16 +345,6 @@ struct tagSFG_Context int DoubleBuffered; /* Treat the window as double-buffered */ }; -/* Window's state description. This structure should be kept portable. */ -#if TARGET_HOST_POSIX_X11 -typedef struct tagSFG_PlatformWindowState SFG_PlatformWindowState; -struct tagSFG_PlatformWindowState -{ - int OldWidth; /* Window width from before a resize */ - int OldHeight; /* " height " " " " */ -}; -#endif - typedef struct tagSFG_WindowState SFG_WindowState; struct tagSFG_WindowState @@ -755,6 +672,21 @@ struct tagSFG_StrokeFont /* -- JOYSTICK-SPECIFIC STRUCTURES AND TYPES ------------------------------- */ +/* + * Initial defines from "js.h" starting around line 33 with the existing "freeglut_joystick.c" + * interspersed + */ + +#if TARGET_HOST_MACINTOSH +# include +#endif + +#if TARGET_HOST_MAC_OSX +# include +# include +# include +#endif + /* XXX It might be better to poll the operating system for the numbers of buttons and * XXX axes and then dynamically allocate the arrays. */ @@ -787,27 +719,6 @@ struct tagSFG_PlatformJoystick }; #endif -#if TARGET_HOST_POSIX_X11 -# define _JS_MAX_AXES 16 -typedef struct tagSFG_PlatformJoystick SFG_PlatformJoystick; -struct tagSFG_PlatformJoystick -{ -# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) - struct os_specific_s *os; -# endif - -# ifdef JS_NEW - struct js_event js; - int tmp_buttons; - float tmp_axes [ _JS_MAX_AXES ]; -# else - struct JS_DATA_TYPE js; -# endif - - char fname [ 128 ]; - int fd; -}; -#endif /* * Definition of "SFG_Joystick" structure -- based on JS's "jsJoystick" object class. @@ -952,11 +863,6 @@ 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 ); @@ -1029,21 +935,18 @@ void fgListInsert(SFG_List *list, SFG_Node *next, SFG_Node *node); void fgError( const char *fmt, ... ); void fgWarning( const char *fmt, ... ); -/* - * Check if "hint" is present in "property" for "window". See freeglut_init.c - */ -#if TARGET_HOST_POSIX_X11 -int fgHintPresent(Window window, Atom property, Atom hint); +SFG_Proc fgPlatformGetProcAddress( const char *procName ); -/* Handler for X extension Events */ -#ifdef HAVE_X11_EXTENSIONS_XINPUT2_H - void fgHandleExtensionEvents( XEvent * ev ); - void fgRegisterDevices( Display* dpy, Window* win ); -#endif - -#endif +/* Window functions needed for Platform implementations */ +/* pushing attribute/value pairs into an array */ +#define ATTRIB(a) attributes[where++]=(a) +#define ATTRIB_VAL(a,v) {ATTRIB(a); ATTRIB(v);} -SFG_Proc fghGetProcAddress( const char *procName ); +extern int fghIsLegacyContextVersionRequested( void ); +extern int fghMapBit( int mask, int from, int to ); +extern int fghIsLegacyContextRequested( void ); +extern void fghContextCreationError( void ); +extern int fghNumberOfAuxBuffersRequested( void ); #endif /* FREEGLUT_INTERNAL_H */