public override uint CreateRenderTarget(uint texture, uint w, uint h)
{
// Create a framebuffer.
var fbo = _gl.GenFramebuffer();
// Create a render buffer object for the depth buffer.
var rbo = _gl.GenRenderbuffer();
_gl.NamedRenderbufferStorage(rbo, GLEnum.Depth24Stencil8, w, h);
// Attach it to the texture.
_gl.BindFramebuffer(GLEnum.Framebuffer, fbo);
_gl.FramebufferTexture2D(GLEnum.Framebuffer, GLEnum.ColorAttachment0, GLEnum.Texture2D, texture, 0);
_gl.FramebufferRenderbuffer(GLEnum.Framebuffer, GLEnum.DepthStencilAttachment, GLEnum.Renderbuffer, rbo);
_gl.DrawBuffer(GLEnum.ColorAttachment0);
_gl.BindFramebuffer(GLEnum.Framebuffer, 0);
// Return it.
return fbo;
}
public override uint CreateRenderTarget(uint texture, uint w, uint h)
{
// Create a framebuffer.
var fbo = _gl.GenFramebuffer();
// Create a render buffer object for the depth buffer.
var rbo = _gl.GenRenderbuffer();
_gl.NamedRenderbufferStorage(rbo, GLEnum.Depth24Stencil8, w, h);
// Attach it to the texture.
_gl.BindFramebuffer(GLEnum.Framebuffer, fbo);
_gl.FramebufferTexture2D(GLEnum.Framebuffer, GLEnum.ColorAttachment0, GLEnum.Texture2D, texture, 0);
_gl.FramebufferRenderbuffer(GLEnum.Framebuffer, GLEnum.DepthStencilAttachment, GLEnum.Renderbuffer, rbo);
_gl.DrawBuffer(GLEnum.ColorAttachment0);
_gl.BindFramebuffer(GLEnum.Framebuffer, 0);
// Return it.
return fbo;
}