コード例 #1
0
ファイル: EAGLView.cs プロジェクト: xlitofer/mobile-samples
        protected override void CreateFrameBuffer()
        {
            try {
                ContextRenderingApi = EAGLRenderingAPI.OpenGLES3;

                float       screenScale = UIScreen.MainScreen.Scale;
                CAEAGLLayer eaglLayer   = (CAEAGLLayer)Layer;
                Size        size        = new Size(
                    (int)Math.Round(screenScale * eaglLayer.Bounds.Size.Width),
                    (int)Math.Round(screenScale * eaglLayer.Bounds.Size.Height));

                base.CreateFrameBuffer();

                GL.GenRenderbuffers(1, out depthRenderbuffer);
                GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, depthRenderbuffer);
                GL.RenderbufferStorage(RenderbufferTarget.Renderbuffer, RenderbufferInternalFormat.DepthComponent16, size.Width, size.Height);
                GL.FramebufferRenderbuffer(FramebufferTarget.Framebuffer, FramebufferSlot.DepthAttachment, RenderbufferTarget.Renderbuffer, depthRenderbuffer);

                Console.WriteLine("using ES 3.0");
                Console.WriteLine("version: {0} glsl version: {1}", GL.GetString(StringName.Version), GL.GetString(StringName.ShadingLanguageVersion));
            } catch (Exception e) {
                throw new Exception("Looks like OpenGL ES 3.0 not available", e);
            }

            if (ContextRenderingApi == EAGLRenderingAPI.OpenGLES2 || ContextRenderingApi == EAGLRenderingAPI.OpenGLES3)
            {
                keys.LoadShaders();
            }
        }
コード例 #2
0
        // This method is called everytime the context needs
        // to be recreated. Use it to set any egl-specific settings
        // prior to context creation
        //
        // In this particular case, we demonstrate how to set
        // the graphics mode and fallback in case the device doesn't
        // support the defaults
        protected override void CreateFrameBuffer()
        {
            ContextRenderingApi = GLVersion.ES3;
            // the default GraphicsMode that is set consists of (16, 16, 0, 0, 2, false)
            try {
                Log.Verbose("GLCube", "Loading with default settings");

                // use multisample if possible
                GraphicsMode = new AndroidGraphicsMode(new ColorFormat(32), 16, 0, 4, 2, false);
                // if you don't call this, the context won't be created
                base.CreateFrameBuffer();
            } catch (Exception ex) {
                Log.Verbose("GLCube", "{0}", ex);
                // this is a graphics setting that sets everything to the lowest mode possible so
                // the device returns a reliable graphics setting.
                try {
                    Log.Verbose("GLCube", "Loading with custom Android settings (low mode)");
                    GraphicsMode = new AndroidGraphicsMode(0, 0, 0, 0, 0, false);

                    // if you don't call this, the context won't be created
                    base.CreateFrameBuffer();
                } catch (Exception ex1) {
                    Log.Verbose("GLCube", "{0}", ex1);
                    throw new Exception("Can't load egl, aborting");
                }
            }

            Console.WriteLine("OpenGL version: {0} GLSL version: {1}", GL.GetString(StringName.Version), GL.GetString(StringName.ShadingLanguageVersion));
            keys.LoadShaders();
            SetupProjection();
        }
コード例 #3
0
ファイル: GLKeysView.cs プロジェクト: Yashwanth1302/Test
 protected override void OnContextSet(EventArgs e)
 {
     base.OnContextSet(e);
     Console.WriteLine("OpenGL version: {0} GLSL version: {1}", GL.GetString(StringName.Version), GL.GetString(StringName.ShadingLanguageVersion));
     keys.LoadShaders();
     keys.CreateTextTextures(CreateBitmapData);
     keys.InitModel();
     keys.Start();
 }