Ejemplo n.º 1
0
int main(int argc, char **argv)
{
	bool pass = true;
	GLXContext ctx;

	GLX_EXT_import_context_setup();

	/* Try the simple stuff.
	 */
	pass = try_query(indirectCtx,
			 GLX_SHARE_CONTEXT_EXT, "GLX_SHARE_CONTEXT_EXT",
			 Success, 0)
		&& pass;
	pass = try_query(indirectCtx,
			 GLX_SCREEN_EXT, "GLX_SCREEN_EXT",
			 Success, DefaultScreen(dpy))
		&& pass;
	pass = try_query(indirectCtx,
			 GLX_VISUAL_ID_EXT, "GLX_VISUAL_ID_EXT",
			 Success, visinfo->visualid)
		&& pass;
	pass = try_query(indirectCtx,
			 0xffff0000, "0xffff0000 (invalid)",
			 GLX_BAD_ATTRIBUTE, 0)
		&& pass;

	/* Create a second indirect-rendering context, and have it share the
	 * first indirect-rendering context.  The XID of the share conext for
	 * the original context should be unchanged.
	 */
	ctx = glXCreateContext(dpy, visinfo, indirectCtx, False);
	assert(ctx != NULL);

	pass = try_query(indirectCtx,
			 GLX_SHARE_CONTEXT_EXT, "GLX_SHARE_CONTEXT_EXT",
			 Success, 0)
		&& pass;
	pass = try_query(ctx,
			 GLX_SHARE_CONTEXT_EXT, "GLX_SHARE_CONTEXT_EXT",
			 Success, glXGetContextIDEXT(indirectCtx))
		&& pass;

	if (piglit_is_glx_extension_supported(dpy, "GLX_SGIX_fbconfig")) {
		pass = try_query(indirectCtx,
				 GLX_FBCONFIG_ID_SGIX, "GLX_FBCONFIG_ID_SGIX",
				 Success, 0)
			&& pass;
	}

	GLX_EXT_import_context_teardown();

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
	return 0;
}
Ejemplo n.º 2
0
int main(int argc, char **argv)
{
	bool pass = true;

	GLX_EXT_import_context_setup();

	pass = try_get_context_id(directCtx, direct_rendering) && pass;
	pass = try_get_context_id(indirectCtx, indirect_rendering) && pass;
	pass = try_get_context_id(NULL, invalid) && pass;

	GLX_EXT_import_context_teardown();

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
	return 0;
}
Ejemplo n.º 3
0
int main(int argc, char **argv)
{
	bool pass = true;
	pid_t child;
	int status;

	GLX_EXT_import_context_setup();
	get_context_IDs();

	child = fork();
	if (child == 0) {
		GLX_EXT_import_context_setup_for_child();

		pass = try_import_context(directID, direct_rendering)
			&& pass;
		pass = try_import_context(indirectID, indirect_rendering)
			&& pass;
		pass = try_import_context(None, invalid)
			&& pass;
		pass = try_import_context(0xDEADBEEF, invalid)
			&& pass;

		exit(pass ? 0 : 1);
	}

	/* The test passes if the child exited normally with a return value of
	 * zero.
	 */
	waitpid(child, &status, 0);
	pass = WIFEXITED(status) && (WEXITSTATUS(status) == 0);

	GLX_EXT_import_context_teardown();

	piglit_report_result(pass ? PIGLIT_PASS : PIGLIT_FAIL);
	return 0;
}