NULL, /* ProgramName */
GL_FALSE, /* JoysticksInitialised */
GL_FALSE, /* InputDevsInitialised */
- 0, /* AuxiliaryBufferNumber */
- 0 /* SampleNumber */
+ 1, /* AuxiliaryBufferNumber */
+ 4, /* SampleNumber */
+ 1, /* MajorVersion */
+ 0, /* MajorVersion */
+ 0 /* ContextFlags */
};
fgState.JoysticksInitialised = GL_FALSE;
fgState.InputDevsInitialised = GL_FALSE;
+ fgState.MajorVersion = 1;
+ fgState.MinorVersion = 0;
+ fgState.ContextFlags = 0;
+
fgState.Initialised = GL_FALSE;
fgState.Position.X = -1;
char* geometry = NULL;
int i, j, argc = *pargc;
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ size_t sLen;
+ errno_t err;
+#endif
+
if( fgState.Initialised )
fgError( "illegal glutInit() reinitialization attempt" );
/* check if GLUT_FPS env var is set */
#ifndef _WIN32_WCE
{
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ char* fps = NULL;
+ err = _dupenv_s( &fps, &sLen, "GLUT_FPS" );
+ if (err)
+ fgError("Error getting GLUT_FPS environment variable");
+#else
const char *fps = getenv( "GLUT_FPS" );
+#endif
if( fps )
{
int interval;
else
fgState.FPSInterval = interval;
}
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ free ( fps ); fps = NULL; /* dupenv_s allocates a string that we must free */
+#endif
}
- displayName = getenv( "DISPLAY");
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ err = _dupenv_s( &displayName, &sLen, "DISPLAY" );
+ if (err)
+ fgError("Error getting DISPLAY environment variable");
+#else
+ displayName = getenv( "DISPLAY" );
+#endif
for( i = 1; i < argc; i++ )
{
* variable for opening the X display (see code above):
*/
fghInitialize( displayName );
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ free ( displayName ); displayName = NULL; /* dupenv_s allocates a string that we must free */
+#endif
/*
* Geometry parsing deffered until here because we may need the screen
* delimited by blanks or tabs.
*/
char *token ;
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ char *next_token = NULL;
+#endif
size_t len = strlen ( displayMode );
char *buffer = (char *)malloc ( (len+1) * sizeof(char) );
memcpy ( buffer, displayMode, len );
buffer[len] = '\0';
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ token = strtok_s ( buffer, " \t", &next_token );
+#else
token = strtok ( buffer, " \t" );
+#endif
while ( token )
{
/* Process this token */
break ;
}
+ /* will return true for VC8 (VC2005) and higher */
+#if TARGET_HOST_MS_WINDOWS && ( _MSC_VER >= 1400 )
+ token = strtok_s ( NULL, " \t", &next_token );
+#else
token = strtok ( NULL, " \t" );
+#endif
}
free ( buffer );
fgState.DisplayMode = glut_state_flag;
}
+/* -- SETTING OPENGL 3.0 CONTEXT CREATION PARAMETERS ---------------------- */
+
+void FGAPIENTRY glutInitContextVersion( int majorVersion, int minorVersion )
+{
+ /* We will make use of these valuse when creating a new OpenGL context... */
+ fgState.MajorVersion = majorVersion;
+ fgState.MinorVersion = minorVersion;
+}
+
+
+void FGAPIENTRY glutInitContextFlags( int flags )
+{
+ /* We will make use of this value when creating a new OpenGL context... */
+ fgState.ContextFlags = flags;
+}
+
/*** END OF FILE ***/