int boinc_init_options_graphics(BOINC_OPTIONS& opt, void (*worker)()) { int retval; if (!diagnostics_is_initialized()) { retval = boinc_init_diagnostics(BOINC_DIAG_DEFAULTS); if (retval) return retval; } init_main_state(); return boinc_init_options_graphics_impl(opt, worker, &boinc_main_state); }
void boinc_graphics_loop(int argc, char** argv, const char* title) { char buf[256]; if (!diagnostics_is_initialized()) { boinc_init_graphics_diagnostics(BOINC_DIAG_DEFAULTS); } fprintf(stderr, "%s Starting graphics application.\n", boinc_msg_prefix(buf, sizeof(buf)) ); for (int i=1; i<argc; i++) { if (!strcmp(argv[i], "--fullscreen")) { fullscreen = true; fprintf(stderr, "%s fullscreen mode requested.\n", boinc_msg_prefix(buf, sizeof(buf)) ); } } // Register the BOINC App window class // reg_win_class(); wglMakeCurrent(NULL,NULL); make_window(title); // Create a timer thread to do rendering // gfx_timer_id = SetTimer(NULL, 1, 30, (TIMERPROC)&timer_handler); // Process the window message pump // MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } // Unregister the BOINC App window class unreg_win_class(); fprintf(stderr, "%s Shutting down graphics application.\n", boinc_msg_prefix(buf, sizeof(buf)) ); }