GetDisplay() private method

private GetDisplay ( EGLNativeDisplayType display_id ) : EGLDisplay
display_id EGLNativeDisplayType
return EGLDisplay
示例#1
0
        public GraphicsMode SelectGraphicsMode(ColorFormat color, int depth, int stencil,
                                               int samples, ColorFormat accum, int buffers, bool stereo,
                                               RenderableFlags renderable_flags)
        {
            IntPtr[] configs    = new IntPtr[1];
            int[]    attribList = new int[]
            {
                //Egl.SURFACE_TYPE, Egl.WINDOW_BIT,
                Egl.RENDERABLE_TYPE, (int)renderable_flags,

                Egl.RED_SIZE, color.Red,
                Egl.GREEN_SIZE, color.Green,
                Egl.BLUE_SIZE, color.Blue,
                Egl.ALPHA_SIZE, color.Alpha,

                Egl.DEPTH_SIZE, depth > 0 ? depth : 0,
                Egl.STENCIL_SIZE, stencil > 0 ? stencil : 0,

                Egl.SAMPLE_BUFFERS, samples > 0 ? 1 : 0,
                Egl.SAMPLES, samples > 0 ? samples : 0,

                Egl.NONE,
            };

            // Todo: what if we don't wish to use the default display?
            IntPtr display = Egl.GetDisplay(IntPtr.Zero);
            int    major, minor;

            if (!Egl.Initialize(display, out major, out minor))
            {
                throw new GraphicsModeException(String.Format("Failed to initialize display connection, error {0}", Egl.GetError()));
            }

            int num_configs;

            if (!Egl.ChooseConfig(display, attribList, configs, configs.Length, out num_configs) || num_configs == 0)
            {
                throw new GraphicsModeException(String.Format("Failed to retrieve GraphicsMode, error {0}", Egl.GetError()));
            }

            // See what we really got
            IntPtr active_config = configs[0];
            int    r, g, b, a;

            Egl.GetConfigAttrib(display, active_config, Egl.RED_SIZE, out r);
            Egl.GetConfigAttrib(display, active_config, Egl.GREEN_SIZE, out g);
            Egl.GetConfigAttrib(display, active_config, Egl.BLUE_SIZE, out b);
            Egl.GetConfigAttrib(display, active_config, Egl.ALPHA_SIZE, out a);
            int d, s;

            Egl.GetConfigAttrib(display, active_config, Egl.DEPTH_SIZE, out d);
            Egl.GetConfigAttrib(display, active_config, Egl.STENCIL_SIZE, out s);
            int sample_buffers;

            Egl.GetConfigAttrib(display, active_config, Egl.SAMPLES, out sample_buffers);
            Egl.GetConfigAttrib(display, active_config, Egl.SAMPLES, out samples);

            return(new GraphicsMode(active_config, new ColorFormat(r, g, b, a), d, s, sample_buffers > 0 ? samples : 0, 0, 2, false));
        }
示例#2
0
        public override IGraphicsContext CreateGLContext(ContextHandle handle, IWindowInfo window,
                                                         IGraphicsContext shareContext, bool directRendering, int major, int minor, GraphicsContextFlags flags)
        {
            var x11_win = (X11WindowInfo)window;
            var egl_win = new EglWindowInfo(x11_win.Handle, Egl.GetDisplay(x11_win.Display));

            return(new EglUnixContext(handle, egl_win, shareContext, major, minor, flags));
        }
        public override IGraphicsContext CreateGLContext(GraphicsMode mode, IWindowInfo window, IGraphicsContext shareContext, bool directRendering, int major, int minor, GraphicsContextFlags flags)
        {
            WinWindowInfo win_win     = (WinWindowInfo)window;
            EGLDisplay    egl_display = Egl.GetDisplay(EGLNativeDisplayType.Default); // Egl.GetDisplay(new EGLNativeDisplayType(win_win.DeviceContext));
            EglWindowInfo egl_win     = new OpenTK.Platform.Egl.EglWindowInfo(win_win.WindowHandle, egl_display);

            return(new EglContext(mode, egl_win, shareContext, major, minor, flags));
        }
        IntPtr GetDisplay(IntPtr dc)
        {
            IntPtr display = Egl.GetDisplay(dc);

            if (display == IntPtr.Zero)
            {
                display = Egl.GetDisplay(IntPtr.Zero);
            }
            return(display);
        }
示例#5
0
        public EglWindowInfo(IntPtr handle, IntPtr display, IntPtr surface)
        {
            Handle   = handle;
            _surface = surface;

            if (display == IntPtr.Zero)
            {
                display = Egl.GetDisplay(IntPtr.Zero);
            }

            Display = display;

            //int dummyMajor, dummyMinor;
            //if (!Egl.Initialize(Display, out dummyMajor, out dummyMinor))
            //{
            //    throw new GraphicsContextException(String.Format("Failed to initialize EGL, error {0}.", Egl.GetError()));
            //}
        }
        public EglWindowInfo(IntPtr handle, IntPtr display, IntPtr surface)
        {
            Handle  = handle;
            Surface = surface;

            if (display == IntPtr.Zero)
            {
                display = Egl.GetDisplay(IntPtr.Zero);
            }

            Display = display;

            int dummyMajor, dummyMinor;

            if (!Egl.Initialize(Display, out dummyMajor, out dummyMinor))
            {
                throw new GraphicsContextException($"Failed to initialize EGL, error {Egl.GetError()}.");
            }
        }
示例#7
0
        public override IGraphicsContext CreateGLContext(GraphicsMode mode, IWindowInfo window, IGraphicsContext shareContext, bool directRendering, int major, int minor, GraphicsContextFlags flags)
        {
            X11WindowInfo x11_win = (X11WindowInfo)window;
            EglWindowInfo egl_win = new OpenTK.Platform.Egl.EglWindowInfo(x11_win.WindowHandle, Egl.GetDisplay(x11_win.Display));

            return(new EglContext(mode, egl_win, shareContext, major, minor, flags));
        }
示例#8
0
        public GraphicsMode SelectGraphicsMode(ColorFormat color, int depth, int stencil, int samples, ColorFormat accum, int buffers, bool stereo, RenderableFlags renderable_flags)
        {
            IntPtr[] configs     = new IntPtr[1];
            int[]    attrib_list = new int[17]
            {
                12352,
                (int)renderable_flags,
                12324,
                color.Red,
                12323,
                color.Green,
                12322,
                color.Blue,
                12321,
                color.Alpha,
                12325,
                depth > 0 ? depth : 0,
                12326,
                stencil > 0 ? stencil : 0,
                12337,
                samples > 0 ? samples : 0,
                12344
            };
            IntPtr display = Egl.GetDisplay(IntPtr.Zero);
            int    major;
            int    minor;

            if (!Egl.Initialize(display, out major, out minor))
            {
                throw new GraphicsModeException(string.Format("Failed to initialize display connection, error {0}", (object)Egl.GetError()));
            }
            int num_config;

            if (!Egl.ChooseConfig(display, attrib_list, configs, configs.Length, out num_config) || num_config == 0)
            {
                throw new GraphicsModeException(string.Format("Failed to retrieve GraphicsMode, error {0}", (object)Egl.GetError()));
            }
            IntPtr config = configs[0];
            int    red;

            Egl.GetConfigAttrib(display, config, 12324, out red);
            int green;

            Egl.GetConfigAttrib(display, config, 12323, out green);
            int blue;

            Egl.GetConfigAttrib(display, config, 12322, out blue);
            int alpha;

            Egl.GetConfigAttrib(display, config, 12321, out alpha);
            int depth1;

            Egl.GetConfigAttrib(display, config, 12325, out depth1);
            int stencil1;

            Egl.GetConfigAttrib(display, config, 12326, out stencil1);
            int num;

            Egl.GetConfigAttrib(display, config, 12337, out num);
            Egl.GetConfigAttrib(display, config, 12337, out samples);
            return(new GraphicsMode(new IntPtr?(config), new ColorFormat(red, green, blue, alpha), depth1, stencil1, num > 0 ? samples : 0, (ColorFormat)0, 2, false));
        }
示例#9
0
        public override IGraphicsContext CreateGLContext(ContextHandle handle, IWindowInfo window, IGraphicsContext shareContext, bool directRendering, int major, int minor, GraphicsContextFlags flags)
        {
            X11WindowInfo x11WindowInfo = (X11WindowInfo)window;
            EglWindowInfo window1       = new EglWindowInfo(x11WindowInfo.WindowHandle, Egl.GetDisplay(x11WindowInfo.Display));

            return((IGraphicsContext) new EglContext(handle, window1, shareContext, major, minor, flags));
        }