Example #1
0
int gfx_init(

		GFXContext    context,
		GFXErrorMode  errors)
{
	/* Always debug */
#ifndef NDEBUG
	errors = GFX_ERROR_MODE_DEBUG;
#endif

	/* Initialize errors, platform and context manager */
	if(_gfx_errors_init(errors))
	{
		if(_gfx_platform_init())
		{
			if(_gfx_context_manager_init(context))
			{
				/* Get starting point of time */
				_gfx_platform_init_timer();
				_gfx_time_start = _gfx_platform_get_time();

				return 1;
			}

			_gfx_platform_terminate();
		}

		_gfx_errors_terminate();
	}

	return 0;
}
Example #2
0
void gfx_terminate(void)
{
	/* Cleanup shared buffers */
	gfx_shared_buffer_cleanup();

	/* Terminate */
	_gfx_context_manager_terminate();
	_gfx_platform_terminate();
	_gfx_errors_terminate();
}
Example #3
0
int _gfx_platform_init(void)
{
	/* Connect to X Server */
	_gfx_x11.display = XOpenDisplay(NULL);
	if(!_gfx_x11.display) return 0;

	XSetErrorHandler(_gfx_x11_error_handler);
	_gfx_x11.errors = 1;

	/* Setup memory */
	gfx_vector_init(&_gfx_x11.monitors, sizeof(GFX_X11_Monitor));
	gfx_vector_init(&_gfx_x11.modes, sizeof(GFX_X11_Mode));
	gfx_vector_init(&_gfx_x11.windows, sizeof(GFX_X11_Window));

	/* Load extensions and init monitors */
	int major;
	int minor;

	if(
		!_gfx_x11_load_extensions(&major, &minor) ||
		!_gfx_x11_init_monitors(major, minor))
	{
		_gfx_platform_terminate();
		return 0;
	}

	/* Load atoms */
	_gfx_x11.MOTIF_WM_HINTS =
		XInternAtom(_gfx_x11.display, "_MOTIF_WM_HINTS", False);
	_gfx_x11.NET_WM_BYPASS_COMPOSITOR =
		XInternAtom(_gfx_x11.display, "_NET_WM_BYPASS_COMPOSITOR", False);
	_gfx_x11.NET_WM_STATE =
		XInternAtom(_gfx_x11.display, "_NET_WM_STATE", False);
	_gfx_x11.NET_WM_STATE_ABOVE =
		XInternAtom(_gfx_x11.display, "_NET_WM_STATE_ABOVE", False);
	_gfx_x11.WM_DELETE_WINDOW =
		XInternAtom(_gfx_x11.display, "WM_DELETE_WINDOW", False);

	/* Construct a keycode lookup */
	_gfx_x11_create_key_table();

	return 1;
}