Example #1
0
        public Texture this[FramebufferAttachment attachment]
        {
            set
            {
                bindings[attachment] = value;
                GPUStateMachine.BindFramebuffer(id);
                GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, attachment, value.texTarget, value.id, 0);

                GL.DrawBuffers(bindings.Keys.Count,
                               bindings.Keys.OrderByDescending((a) => (int)a).Reverse().Cast <DrawBuffersEnum>().ToArray());

                if (GL.CheckFramebufferStatus(FramebufferTarget.Framebuffer) != FramebufferErrorCode.FramebufferComplete)
                {
                    throw new Exception("Incomplete Framebuffer!");
                }

                GPUStateMachine.UnbindFramebuffer();
            }
            get
            {
                if (bindings.ContainsKey(attachment))
                {
                    return(bindings[attachment]);
                }
                else
                {
                    return(null);
                }
            }
        }
Example #2
0
 public static void SetFramebuffer(Framebuffer framebuf)
 {
     if (curFramebuffer != null && curFramebuffer.id != framebuf.id)
     {
         GPUStateMachine.UnbindFramebuffer();
     }
     curFramebuffer = framebuf;
 }