public unsafe static XRRScreenSize[] XRRSizes(Display dpy, int screen) { int count; XRRScreenSize *data = XRRSizes(dpy, screen, &count); if (count == 0) { return(null); } XRRScreenSize[] sizes = new XRRScreenSize[count]; for (int i = 0; i < count; i++) { sizes[i] = *data++; } return(sizes); }
public static List <XRRScreenSize> ConfigSizes(IntPtr config, out int nsizes) { int indexes = 0; IntPtr screen_ptr = XRRConfigSizes(config, out indexes); List <XRRScreenSize> screens = new List <XRRScreenSize>(indexes); nsizes = indexes; unsafe { XRRScreenSize *ptr = (XRRScreenSize *)screen_ptr; while (--indexes >= 0) { screens.Add(*ptr); ptr++; } } return(screens); }