TYPEMAP
GLXContext            O_GLXContext
GLXContextOrNull      O_GLXContextOrNull
GLXContextImported    O_GLXContextImported
GLXContextID          O_X11_Xlib_XID

INPUT
O_GLXContext
	if (sv_isa($arg, \"X11::GLX::Context\") || sv_isa($arg, \"X11::GLX::Context::Imported\")) {
		$var= ($type) SvIV((SV*)SvRV($arg));
	} else {
		croak( \"%s is not a %s\", \"$var\", \"X11::GLX::Context\" );
	}

OUTPUT
O_GLXContext
	sv_setref_pv($arg, \"X11::GLX::Context\", (void*) $var);

INPUT
O_GLXContextOrNull
	if (!SvOK($arg))
		$var= NULL;
	else if (sv_isa($arg, \"X11::GLX::Context\") || sv_isa($arg, \"X11::GLX::Context::Imported\")) {
		$var= ($type) SvIV((SV*)SvRV($arg));
	} else {
		croak( \"%s is not a %s\", \"$var\", \"X11::GLX::Context\" );
	}

INPUT
O_GLXContextImported
	if (sv_isa($arg, \"X11::GLX::Context::Imported\")) {
		$var= ($type) SvIV((SV*)SvRV($arg));
	} else {
		croak( \"%s is not a %s\", \"$var\", \"X11::GLX::Context::Imported\" );
	}

OUTPUT
O_GLXContextImported
	sv_setref_pv($arg, \"X11::GLX::Context::Imported\", (void*) $var);
