Example #1
0
        internal RenderTexture(IDevice device, int width, int height)
        {
            handle            = device.GenFramebuffer();
            underlyingTexture = new Texture(device, (uint[])null, width, height);
            device.BindFramebuffer(FramebufferTarget.Framebuffer, handle);
            device.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferAttachment.ColorAttachment0, TextureTarget.Texture2D,
                                        underlyingTexture.Handle, 0);
            // create a renderbuffer object for depth and stencil attachment (we won't be sampling these)

            depthHandle = device.GenRenderbuffer();
            device.BindRenderbuffer(RenderbufferTarget.Renderbuffer, depthHandle);
            device.RenderbufferStorage(RenderbufferTarget.Renderbuffer, RenderbufferStorage.Depth24Stencil8, width, height);
            device.FramebufferRenderbuffer(FramebufferTarget.Framebuffer, FramebufferAttachment.DepthStencilAttachment, RenderbufferTarget.Renderbuffer, depthHandle);

            device.BindFramebuffer(FramebufferTarget.Framebuffer, 0);
            this.device = device;
        }