*/
#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
# 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
# ifdef HAVE_X11_EXTENSIONS_XF86VMODE_H
# include <X11/extensions/xf86vmode.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
#endif
/* These files should be available on every platform. */
-#include <GL/gl.h>
-#include <GL/glu.h>
#include <stdio.h>
#include <string.h>
#include <math.h>
char *ProgramName; /* Name of the invoking program */
GLboolean JoysticksInitialised; /* Only initialize if application calls for them */
GLboolean InputDevsInitialised; /* Only initialize if application calls for them */
+
+ int AuxiliaryBufferNumber; /* Number of auxiliary buffers */
+ int SampleNumber; /* Number of samples per pixel */
+
+ int MajorVersion; /* Major OpenGL context version */
+ int MinorVersion; /* Minor OpenGL context version */
+ int ContextFlags; /* OpenGL context flags */
};
/* The structure used by display initialization in freeglut_init.c */
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 X_XF86VidModeGetModeLine
/*
SFG_WindowContextType Context; /* The window's OpenGL/WGL context */
#if TARGET_HOST_POSIX_X11
- XVisualInfo* VisualInfo; /* The window's visual information */
+ GLXFBConfig* FBConfig; /* The window's FBConfig */
#elif TARGET_HOST_MS_WINDOWS
HDC Device; /* The window's device context */
#endif
typedef struct tagSFG_MenuContext SFG_MenuContext;
struct tagSFG_MenuContext
{
-#if TARGET_HOST_POSIX_X11
- XVisualInfo* MVisualInfo; /* The window's visual information */
-#endif
-
SFG_WindowContextType MContext; /* The menu window's WGL context */
};
/* A helper function to check if a display mode is possible to use */
#if TARGET_HOST_POSIX_X11
-XVisualInfo* fgChooseVisual( void );
+GLXFBConfig* fgChooseFBConfig( void );
#endif
/* The window procedure for Win32 events handling */
#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
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);
+#endif
+
+SFG_Proc fghGetProcAddress( const char *procName );
+
#endif /* FREEGLUT_INTERNAL_H */
/*** END OF FILE ***/