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; }
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; }