Пример #1
0
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);
			}
		}
	}
}
Пример #2
0
/* browserwindow_on_file_new_window */
static void _browserwindow_on_file_new_window(gpointer data)
{
	BrowserWindow * browser = data;

	on_new_window(browser->browser);
}