void FBGfx::Screen( int _scrw, int _scrh, const char* _title = _FBGFX_VERSION_STR_, WindowingMode _wmode = WindowingMode::WINDOWED) { GLFWmonitor* fscreen_ptr; GLFWwindow* new_window; if (_wmode == WindowingMode::FULLSCREEN) { fscreen_ptr = glfwGetPrimaryMonitor(); window.windowing_mode = WindowingMode::FULLSCREEN; } else { fscreen_ptr = nullptr; window.windowing_mode = WindowingMode::WINDOWED; } if (!has_context) { window.window = glfwCreateWindow( _scrw, _scrh, _title, fscreen_ptr, NULL); glfwMakeContextCurrent(window.window); window.title = std::string(_title); window.scrx = _scrw; window.scry = _scrh; on_window_size_update(); on_context_first_create(); on_new_window(); } else { if (window.windowing_mode != _wmode) { new_window = glfwCreateWindow( _scrw, _scrh, _title, fscreen_ptr, window.window); glfwDestroyWindow(window.window); window.window = new_window; glfwMakeContextCurrent(window.window); glfwSwapInterval(1); window.title = std::string(_title); window.scrx = _scrw; window.scry = _scrh; on_new_window(); on_window_size_update(); } else { if ((_scrw != window.scrx) || (_scrh != window.scry)) { glfwSetWindowSize(window.window, _scrw, _scrh); on_window_size_update(); } if (strcmp(window.title.c_str(), _title)) { window.title = std::string(_title); } } } }
/* browserwindow_on_file_new_window */ static void _browserwindow_on_file_new_window(gpointer data) { BrowserWindow * browser = data; on_new_window(browser->browser); }