X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_internal.h;h=2a5a4db0c95b2812557821bc182a78cf77641d75;hb=97e842e50bcf77fb81f83de8d6983e0ddfa0b6d6;hp=c3c933fccd7185f4bbaab454b087f894ef12b12e;hpb=239fb8d05411623e824c5623622ce9d3c114d5e4;p=freeglut diff --git a/src/freeglut_internal.h b/src/freeglut_internal.h index c3c933f..2a5a4db 100644 --- a/src/freeglut_internal.h +++ b/src/freeglut_internal.h @@ -47,7 +47,7 @@ || ( defined(__CYGWIN__) && defined(X_DISPLAY_MISSING) ) # define TARGET_HOST_MS_WINDOWS 1 -#elif defined(__posix__) || defined(__unix__) || defined(__linux__) +#elif defined(__posix__) || defined(__unix__) || defined(__linux__) || defined(__sun) # define TARGET_HOST_POSIX_X11 1 #elif defined(__APPLE__) @@ -129,6 +129,7 @@ #include #include #include +#include /* These are included based on autoconf directives. */ #ifdef HAVE_SYS_TYPES_H @@ -243,6 +244,10 @@ typedef void (* FGCBMenuStatus )( int, int, int ); /* The callback used when creating/using menus */ typedef void (* FGCBMenu )( int ); +/* The FreeGLUT error/warning handler type definition */ +typedef void (* FGError ) ( const char *fmt, va_list ap); +typedef void (* FGWarning ) ( const char *fmt, va_list ap); + /* A list structure */ typedef struct tagSFG_List SFG_List; @@ -333,6 +338,8 @@ struct tagSFG_State int MinorVersion; /* Minor OpenGL context version */ int ContextFlags; /* OpenGL context flags */ int ContextProfile; /* OpenGL context profile */ + FGError ErrorFunc; /* User defined error handler */ + FGWarning WarningFunc; /* User defined warning handler */ }; /* The structure used by display initialization in freeglut_init.c */ @@ -794,11 +801,12 @@ extern SFG_State fgState; * 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) ) ; \ } /* @@ -818,7 +826,7 @@ void fgDestroyStructure( void ); /* 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 */