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; }
GLFWAPI void glfwGetDesktopMode(GLFWvidmode* mode) { if (!_glfwInitialized) { _glfwSetError(GLFW_NOT_INITIALIZED, NULL); return; } if (mode == NULL) { _glfwSetError(GLFW_INVALID_VALUE, "glfwGetDesktopMode: Parameter 'mode' cannot be NULL"); return; } _glfwPlatformGetDesktopMode(mode); }