X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_init.c;h=7893f058ac6cce409d0caf036e84f1afdaca9679;hb=846e7692343b1bd4473ded068f4b86056baedb77;hp=01dabc788242936791f2b513015ec6037c1a4b4e;hpb=a213b9a3476de760b52f9661de8900787255322c;p=freeglut diff --git a/src/freeglut_init.c b/src/freeglut_init.c index 01dabc7..7893f05 100644 --- a/src/freeglut_init.c +++ b/src/freeglut_init.c @@ -25,6 +25,7 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +#define FREEGLUT_BUILDING_LIB #include #include "freeglut_internal.h" @@ -88,7 +89,8 @@ SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */ 4, /* SampleNumber */ 1, /* MajorVersion */ 0, /* MajorVersion */ - 0 /* ContextFlags */ + 0, /* ContextFlags */ + 0 /* ContextProfile */ }; @@ -424,6 +426,7 @@ void fgDeinitialize( void ) fgState.MajorVersion = 1; fgState.MinorVersion = 0; fgState.ContextFlags = 0; + fgState.ContextProfile = 0; fgState.Initialised = GL_FALSE; @@ -680,8 +683,10 @@ void FGAPIENTRY glutInit( int* pargc, char** argv ) /* will return true for VC8 (VC2005) and higher */ #if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) size_t sLen; +#if HAVE_ERRNO errno_t err; #endif +#endif if( fgState.Initialised ) fgError( "illegal glutInit() reinitialization attempt" ); @@ -703,7 +708,7 @@ void FGAPIENTRY glutInit( int* pargc, char** argv ) #ifndef _WIN32_WCE { /* will return true for VC8 (VC2005) and higher */ -#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) +#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO char* fps = NULL; err = _dupenv_s( &fps, &sLen, "GLUT_FPS" ); if (err) @@ -722,13 +727,13 @@ void FGAPIENTRY glutInit( int* pargc, char** argv ) fgState.FPSInterval = interval; } /* will return true for VC8 (VC2005) and higher */ -#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) +#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO free ( fps ); fps = NULL; /* dupenv_s allocates a string that we must free */ #endif } /* will return true for VC8 (VC2005) and higher */ -#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) +#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO err = _dupenv_s( &displayName, &sLen, "DISPLAY" ); if (err) fgError("Error getting DISPLAY environment variable"); @@ -820,7 +825,7 @@ void FGAPIENTRY glutInit( int* pargc, char** argv ) */ fghInitialize( displayName ); /* will return true for VC8 (VC2005) and higher */ -#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) +#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 ) && HAVE_ERRNO free ( displayName ); displayName = NULL; /* dupenv_s allocates a string that we must free */ #endif @@ -853,6 +858,16 @@ void FGAPIENTRY glutInit( int* pargc, char** argv ) } } +#if TARGET_HOST_MS_WINDOWS +void (__cdecl *__glutExitFunc)( int return_value ) = NULL; + +void FGAPIENTRY __glutInitWithExit( int *pargc, char **argv, void (__cdecl *exit_function)(int) ) +{ + __glutExitFunc = exit_function; + glutInit(pargc, argv); +} +#endif + /* * Undoes all the "glutInit" stuff */ @@ -1142,4 +1157,10 @@ void FGAPIENTRY glutInitContextFlags( int flags ) fgState.ContextFlags = flags; } +void FGAPIENTRY glutInitContextProfile( int profile ) +{ + /* We will make use of this value when creating a new OpenGL context... */ + fgState.ContextProfile = profile; +} + /*** END OF FILE ***/