XCBSCREEN *ScreenOfDisplay (XCBConnection *c, int screen)
{
    XCBSCREENIter iter = XCBConnSetupSuccessRepRootsIter (XCBGetSetup (c));
    for (; iter.rem; --screen, XCBSCREENNext (&iter))
        if (screen == 0)
            return iter.data;
    return NULL;
}
Пример #2
0
static XCBSCREEN *
_cairo_xcb_screen_from_visual (XCBConnection *c, XCBVISUALTYPE *visual)
{
    XCBSCREENIter s = XCBSetupRootsIter(XCBGetSetup(c));
    for (; s.rem; XCBSCREENNext(&s))
    {
	if (s.data->root_visual.id == visual->visual_id.id)
	    return s.data;

	XCBDEPTHIter d = XCBSCREENAllowedDepthsIter(s.data);
	for (; d.rem; XCBDEPTHNext(&d))
	{
	    XCBVISUALTYPEIter v = XCBDEPTHVisualsIter(d.data);
	    for (; v.rem; XCBVISUALTYPENext(&v))
	    {
		if (v.data->visual_id.id == visual->visual_id.id)
		    return s.data;
	    }
	}
    }
    return NULL;
}