CNCMaps.Engine.Rendering.VxlRenderer.SetupFramebuffer C# (CSharp) Метод

SetupFramebuffer() приватный Метод

private SetupFramebuffer ( ) : bool
Результат bool
        bool SetupFramebuffer()
        {
            int fbo;
            try {
                GL.Ext.GenFramebuffers(1, out fbo);
                GL.Ext.BindFramebuffer(FramebufferTarget.FramebufferExt, fbo);
                GL.DrawBuffer(DrawBufferMode.ColorAttachment0);
                GL.ReadBuffer(ReadBufferMode.ColorAttachment0);
            }
            catch {
                Logger.Error("Failed to initialize framebuffers. Voxels will not be rendered.");
                return false;
            }
            int depthbuffer;
            GL.Ext.GenRenderbuffers(1, out depthbuffer);
            GL.Ext.BindRenderbuffer(RenderbufferTarget.RenderbufferExt, depthbuffer);
            GL.Ext.RenderbufferStorage(RenderbufferTarget.RenderbufferExt, RenderbufferStorage.DepthComponent32, _surface.BitmapData.Width, _surface.BitmapData.Height);
            GL.Ext.FramebufferRenderbuffer(FramebufferTarget.FramebufferExt, FramebufferAttachment.DepthAttachmentExt, RenderbufferTarget.RenderbufferExt, depthbuffer);

            int rgb_rb;
            GL.Ext.GenRenderbuffers(1, out rgb_rb);
            GL.Ext.BindRenderbuffer(RenderbufferTarget.RenderbufferExt, rgb_rb);
            GL.Ext.RenderbufferStorage(RenderbufferTarget.RenderbufferExt, RenderbufferStorage.Rgba8, _surface.BitmapData.Width, _surface.BitmapData.Height);
            GL.Ext.FramebufferRenderbuffer(FramebufferTarget.FramebufferExt, FramebufferAttachment.ColorAttachment0Ext, RenderbufferTarget.RenderbufferExt, rgb_rb);

            return GL.CheckFramebufferStatus(FramebufferTarget.FramebufferExt) == FramebufferErrorCode.FramebufferCompleteExt;
        }