protected override void Dispose(bool manual) { if (m_RenderBuffer != null) { base.Bind(); m_RenderBuffer.Unbind(); DetachRenderBuffer(m_RenderBuffer, FramebufferAttachment.DepthAttachment); m_RenderBuffer.Dispose(); m_RenderBuffer = null; base.Unbind(); } if (m_Texture != null) { base.Bind(); m_Texture.Unbind(); DetachTexture(m_Texture, FramebufferAttachment.ColorAttachment0); m_Texture.Dispose(); m_Texture = null; base.Unbind(); } base.Dispose(manual); }
public RenderToTextureBuffer(int width, int height, bool addDepthBuffer, int multisamplingSamples) : base() { base.Bind(); m_Texture = new Texture(); if (multisamplingSamples > 0) { m_Texture.TextureType = TextureTarget.Texture2DMultisample; m_Texture.MultisamplingSamples = multisamplingSamples; } m_Texture.Create(width, height, TextureMinFilter.Nearest, TextureMagFilter.Nearest); AttachTexture(m_Texture, FramebufferAttachment.ColorAttachment0); if (addDepthBuffer) { m_RenderBuffer = new RenderBuffer(width, height, multisamplingSamples); AttachRenderBuffer(m_RenderBuffer, FramebufferAttachment.DepthAttachment); m_RenderBuffer.Unbind(); } m_Texture.Unbind(); base.Unbind(); }