public unsafe static XineramaScreenInfo[] XineramaQueryScreens(IntPtr dpy) { int count; IntPtr screen_ptr = XineramaQueryScreens(dpy, out count); XineramaScreenInfo *ptr = (XineramaScreenInfo *)screen_ptr; XineramaScreenInfo[] screens = new XineramaScreenInfo[count]; for (int i = 0; i < screens.Length; i++) { screens[i] = *ptr++; } return(screens); }
public static IList <XineramaScreenInfo> XineramaQueryScreens(IntPtr dpy) { int number; IntPtr screen_ptr = XineramaQueryScreens(dpy, out number); List <XineramaScreenInfo> screens = new List <XineramaScreenInfo>(number); unsafe { XineramaScreenInfo *ptr = (XineramaScreenInfo *)screen_ptr; while (--number >= 0) { screens.Add(*ptr); ptr++; } } return(screens); }
public static List <XineramaScreenInfo> XineramaQueryScreens(IntPtr x11display, out int nsizes) { int number = 0; IntPtr screen_ptr = _iXineramaQueryScreens(x11display, out number); List <XineramaScreenInfo> screens = new List <XineramaScreenInfo>(number); nsizes = number; unsafe { XineramaScreenInfo *ptr = (XineramaScreenInfo *)screen_ptr; while (--number >= 0) { screens.Add(*ptr); ptr++; } } return(screens); }