Ejemplo n.º 1
0
        private GLVersion GetMaximumSupportedProfile()
        {
            var window = ((AndroidWindow)this.WindowInfo);
            var mode = new AndroidGraphicsMode(window.Display, (int)this.ContextRenderingApi, new GraphicsMode(32, 0, 0));
            using (var context = new AndroidGraphicsContext(mode, window, this.GraphicsContext, GLVersion.ES2, GraphicsContextFlags.Embedded))
            {
                mode.Initialize(window.Display, (int)this.ContextRenderingApi);
                window.CreateSurface(mode.Config);

                context.MakeCurrent(window);

                int versionMajor, versionMinor;
                if (!OpenGLUtils.GetCurrentGLVersion(out versionMajor, out versionMinor))
                {
                    versionMajor = 2;
                    versionMinor = 0;
                }

                context.MakeCurrent(null);
                window.DestroySurface();

                if (versionMajor == 3)
                {
                    return (versionMinor >= 1) ? GLVersion.ES31 : GLVersion.ES3;
                }
                return GLVersion.ES2;
            }
        }
Ejemplo n.º 2
0
        private GraphicsProfile GetMaximumSupportedProfile()
        {
            var profile = GraphicsProfile.Level_9_1;

            var window = ((AndroidWindow)this.WindowInfo);
            var mode = new AndroidGraphicsMode(window.Display, (int)this.ContextRenderingApi, new GraphicsMode(32, 0, 0));
            using (var context = new AndroidGraphicsContext(mode, window, this.GraphicsContext, GLVersion.ES2, GraphicsContextFlags.Embedded))
            {
                mode.Initialize(window.Display, (int)this.ContextRenderingApi);
                window.CreateSurface(mode.Config);

                context.MakeCurrent(window);

                var versionVendorText = GL.GetString(StringName.Version);
                var match = MatchOpenGLVersion.Match(versionVendorText);
                if (match.Success)
                {
                    var versionText = match.Groups[1].Value;
                    if (versionText.StartsWith("2"))
                    {
                        profile = GraphicsProfile.Level_9_1;
                    }
                    else if (versionText.StartsWith("3.1"))
                    {
                        profile = GraphicsProfile.Level_10_0;
                    }
                    else if (versionText.StartsWith("3"))
                    {
                        profile = GraphicsProfile.Level_10_0;
                    }
                }

                context.MakeCurrent(null);
                window.DestroySurface();
            }
            return profile;
        }