PixelFarm.DrawingGL.FrameBuffer.InitFrameBuffer C# (CSharp) Method

InitFrameBuffer() private method

private InitFrameBuffer ( ) : void
return void
        void InitFrameBuffer()
        {
            GL.GenFramebuffers(1, out frameBufferId);
            //switch to this (custom) framebuffer
            GL.BindFramebuffer(FramebufferTarget.Framebuffer, frameBufferId);
            //create blank texture
            textureId = GL.GenTexture();
            GL.BindTexture(TextureTarget.Texture2D, textureId);
            //set texture parameter
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear);
            GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.LinearMipmapNearest);
            //GL.GenerateMipmap(TextureTarget.Texture2D);
            GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, w, h, 0, PixelFormat.Rgba, PixelType.UnsignedByte, IntPtr.Zero);
            //render buffer
            GL.GenRenderbuffers(1, out renderBufferId);
            GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, renderBufferId);
            GL.RenderbufferStorage(RenderbufferTarget.Renderbuffer, RenderbufferInternalFormat.DepthComponent16, w, h);
            GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferSlot.ColorAttachment0, TextureTarget.Texture2D, textureId, 0);
            GL.FramebufferRenderbuffer(FramebufferTarget.Framebuffer, FramebufferSlot.DepthAttachment, RenderbufferTarget.Renderbuffer, renderBufferId);
            //switch back to default framebuffer (system provider framebuffer) 
            GL.BindTexture(TextureTarget.Texture2D, 0);//unbind
            GL.BindRenderbuffer(RenderbufferTarget.Renderbuffer, 0);//unbind
            GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0); //unbind 
        }
        internal void MakeCurrent()