Exemple #1
0
            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);
            }
Exemple #3
0
        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);
        }