示例#1
0
 public ColorBuffer(FrameBuffer fb, InternalFormat fmt, int samples)
     : base(fb)
 {
     MakeCurrent();
     OpenGL.glRenderbufferStorageMultisample(OpenGL.Const.GL_RENDERBUFFER, samples, (uint)fmt, fb.Width, fb.Height);
     OpenGL.glFramebufferRenderbuffer(OpenGL.Const.GL_FRAMEBUFFER, OpenGL.Const.GL_COLOR_ATTACHMENT0, OpenGL.Const.GL_RENDERBUFFER, handle);
 }
示例#2
0
 public DepthBuffer(FrameBuffer buffer, DepthType type, int samples)
     : base(buffer)
 {
     MakeCurrent();
     OpenGL.glRenderbufferStorageMultisample(OpenGL.Const.GL_RENDERBUFFER, samples, (uint)type, buffer.Width, buffer.Height);
     OpenGL.glFramebufferRenderbuffer(OpenGL.Const.GL_FRAMEBUFFER, OpenGL.Const.GL_DEPTH_ATTACHMENT, OpenGL.Const.GL_RENDERBUFFER, handle);
 }
示例#3
0
 internal RenderBuffer(FrameBuffer fb)
 {
     if (fb == null)
         throw new NullReferenceException();
     uint[] buffers = new uint[1];
     OpenGL.glGenRenderbuffers(1, buffers);
     handle = buffers[0];
     framebuffer = fb;
     fb.render_buffers.Add(this);
 }
示例#4
0
 public StencilBuffer(FrameBuffer buffer, int samples)
     : base(buffer)
 {
     MakeCurrent();
     OpenGL.glRenderbufferStorageMultisample(OpenGL.Const.GL_RENDERBUFFER, samples, OpenGL.Const.GL_STENCIL_INDEX8, buffer.Width, buffer.Height);
     OpenGL.glFramebufferRenderbuffer(OpenGL.Const.GL_RENDERBUFFER, OpenGL.Const.GL_STENCIL_ATTACHMENT, OpenGL.Const.GL_RENDERBUFFER, handle);
 }