int _glfwPlatformInit( void ) { // Initialize display if( !_glfwInitDisplay() ) { return GL_FALSE; } // Initialize thread package _glfwInitThreads(); // Try to load libGL.so if necessary _glfwInitLibraries(); // Install atexit() routine atexit( _glfwTerminate_atexit ); // Initialize joysticks _glfwInitJoysticks(); // Start the timer _glfwInitTimer(); return GL_TRUE; }
int _glfwPlatformInit( void ) { struct timeval tv; UInt32 nullDummy = 0; _glfwWin.MacWindow = NULL; _glfwWin.AGLContext = NULL; _glfwWin.WindowFunctions = NULL; _glfwWin.MouseUPP = NULL; _glfwWin.CommandUPP = NULL; _glfwWin.KeyboardUPP = NULL; _glfwWin.WindowUPP = NULL; _glfwInput.Modifiers = 0; _glfwLibs.OpenGLFramework = CFBundleGetBundleWithIdentifier( CFSTR( "com.apple.opengl" ) ); if( _glfwLibs.OpenGLFramework == NULL ) { return GL_FALSE; } _glfwDesktopVideoMode = CGDisplayCurrentMode( kCGDirectMainDisplay ); if( _glfwDesktopVideoMode == NULL ) { return GL_FALSE; } _glfwInitThreads(); if( !_glfwChangeToResourcesDirectory() ) { return GL_FALSE; } if( !_glfwInstallEventHandlers() ) { _glfwPlatformTerminate(); return GL_FALSE; } // Ugly hack to reduce the nasty jump that occurs at the first non- // sys keypress, caused by OS X loading certain meta scripts used // for lexical- and raw keycode translation - instead of letting // this happen while our application is running, we do some blunt // function calls in advance just to get the script caching out of // the way, BEFORE our window/screen is opened. These calls might // generate err return codes, but we don't care in this case. // NOTE: KCHRPtr is declared globally, because we need it later on. KCHRPtr = (void *)GetScriptVariable( smCurrentScript, smKCHRCache ); KeyTranslate( KCHRPtr, 0, &nullDummy ); UppercaseText( (char *)&nullDummy, 0, smSystemScript ); gettimeofday( &tv, NULL ); _glfwTimer.t0 = tv.tv_sec + (double) tv.tv_usec / 1000000.0; return GL_TRUE; }
int _glfwPlatformInit( void ) { struct timeval tv; UInt32 nullDummy = 0; _glfwWin.window = NULL; _glfwWin.aglContext = NULL; _glfwWin.cglContext = NULL; _glfwWin.windowUPP = NULL; _glfwInput.Modifiers = 0; _glfwLibrary.Unbundled = 0; _glfwLibrary.Libs.OpenGLFramework = CFBundleGetBundleWithIdentifier( CFSTR( "com.apple.opengl" ) ); if( _glfwLibrary.Libs.OpenGLFramework == NULL ) { fprintf( stderr, "glfwInit failing because you aren't linked to OpenGL\n" ); return GL_FALSE; } _glfwPlatformGetDesktopMode( &_glfwLibrary.desktopMode ); // Install atexit routine atexit( glfw_atexit ); _glfwInitThreads(); _glfwChangeToResourcesDirectory(); // Ugly hack to reduce the nasty jump that occurs at the first non- // sys keypress, caused by OS X loading certain meta scripts used // for lexical- and raw keycode translation - instead of letting // this happen while our application is running, we do some blunt // function calls in advance just to get the script caching out of // the way BEFORE our window/screen is opened. These calls might // generate err return codes, but we don't care in this case. // NOTE: KCHRPtr is declared globally, because we need it later on. KCHRPtr = (void *)GetScriptVariable( smCurrentScript, smKCHRCache ); KeyTranslate( KCHRPtr, 0, &nullDummy ); UppercaseText( (char *)&nullDummy, 0, smSystemScript ); gettimeofday( &tv, NULL ); _glfwLibrary.Timer.t0 = tv.tv_sec + (double) tv.tv_usec / 1000000.0; return GL_TRUE; }
int _glfwPlatformInit( void ) { _glfwWin.MacWindow = NULL; _glfwWin.AGLContext = NULL; _glfwWin.WindowFunctions = NULL; _glfwWin.MouseUPP = NULL; _glfwWin.CommandUPP = NULL; _glfwWin.KeyboardUPP = NULL; _glfwWin.WindowUPP = NULL; _glfwInput.Modifiers = 0; _glfwLibs.OpenGLFramework = CFBundleGetBundleWithIdentifier( CFSTR( "com.apple.opengl" ) ); if ( _glfwLibs.OpenGLFramework == NULL ) { return GL_FALSE; } _glfwDesktopVideoMode = CGDisplayCurrentMode( kCGDirectMainDisplay ); if ( _glfwDesktopVideoMode == NULL ) { return GL_FALSE; } _glfwInitThreads(); if ( !_glfwChangeToResourcesDirectory() ) { return GL_FALSE; } if ( !_glfwInstallEventHandlers() ) { _glfwPlatformTerminate(); return GL_FALSE; } _glfwTimer.t0 = GetCurrentEventTime(); return GL_TRUE; }
int _glfwPlatformInit( void ) { // Initialize thread package if( !_glfwInitThreads() ) { return GL_FALSE; } // Start the timer if( !_glfwInitTimer() ) { _glfwTerminateThreads(); return GL_FALSE; } // Initialize joysticks _glfwInitJoysticks(); // Install atexit() routine atexit( _glfwTerminate_atexit ); return GL_TRUE; }
int _glfwPlatformInit( void ) { OSVERSIONINFO osi; // To make SetForegroundWindow() work as we want, we need to fiddle // with the FOREGROUNDLOCKTIMEOUT system setting (we do this as early // as possible in the hope of still being the foreground process) SystemParametersInfo( SPI_GETFOREGROUNDLOCKTIMEOUT, 0, &_glfwLibrary.Sys.foregroundLockTimeout, 0 ); SystemParametersInfo( SPI_SETFOREGROUNDLOCKTIMEOUT, 0, (LPVOID)0, SPIF_SENDCHANGE ); // Check which OS version we are running osi.dwOSVersionInfoSize = sizeof( OSVERSIONINFO ); GetVersionEx( &osi ); _glfwLibrary.Sys.winVer = _GLFW_WIN_UNKNOWN; if( osi.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ) { if( osi.dwMajorVersion == 4 && osi.dwMinorVersion < 10 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_95; } else if( osi.dwMajorVersion == 4 && osi.dwMinorVersion < 90 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_98; } else if( osi.dwMajorVersion == 4 && osi.dwMinorVersion == 90 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_ME; } else if( osi.dwMajorVersion >= 4 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_UNKNOWN_9x; } } else if( osi.dwPlatformId == VER_PLATFORM_WIN32_NT ) { if( osi.dwMajorVersion == 4 && osi.dwMinorVersion == 0 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_NT4; } else if( osi.dwMajorVersion == 5 && osi.dwMinorVersion == 0 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_2K; } else if( osi.dwMajorVersion == 5 && osi.dwMinorVersion == 1 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_XP; } else if( osi.dwMajorVersion == 5 && osi.dwMinorVersion == 2 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_NET_SERVER; } else if( osi.dwMajorVersion >= 5 ) { _glfwLibrary.Sys.winVer = _GLFW_WIN_UNKNOWN_NT; } } // Do we have Unicode support? if( _glfwLibrary.Sys.winVer >= _GLFW_WIN_NT4 ) { // Windows NT/2000/XP/.NET has Unicode support _glfwLibrary.Sys.hasUnicode = GL_TRUE; } else { // Windows 9x/ME does not have Unicode support _glfwLibrary.Sys.hasUnicode = GL_FALSE; } // Load libraries (DLLs) if( !_glfwInitLibraries() ) { return GL_FALSE; } // With the Borland C++ compiler, we want to disable FPU exceptions // (this is recommended for OpenGL applications under Windows) #ifdef __BORLANDC__ _control87( MCW_EM, MCW_EM ); #endif // Retrieve GLFW instance handle _glfwLibrary.instance = GetModuleHandle( NULL ); // System keys are not disabled _glfwWin.keyboardHook = NULL; // Initialise thread package _glfwInitThreads(); // Install atexit() routine atexit( _glfwTerminate_atexit ); // Start the timer _glfwInitTimer(); return GL_TRUE; }