/// <summary>
        /// Create, update, use and delete a renderbuffer object.
        /// </summary>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="internalformat"></param>
        /// <param name="bufferType"></param>
        public Renderbuffer(int width, int height, uint internalformat, RenderbufferType bufferType)
        {
            this.Width      = width;
            this.Height     = height;
            this.BufferType = bufferType;

            glGenRenderbuffers(1, renderbuffer);
            glBindRenderbuffer(GL.GL_RENDERBUFFER, renderbuffer[0]);
            glRenderbufferStorage(GL.GL_RENDERBUFFER,
                                  internalformat,// TODO: add comment about GL.GL_DEPTH24_STENCIL8, GL.GL_RGBA,
                                  width, height);
        }
Exemple #2
0
        /// <summary>
        /// Create, update, use and delete a renderbuffer object.
        /// </summary>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="internalformat"></param>
        /// <param name="bufferType"></param>
        public Renderbuffer(int width, int height, uint internalformat, RenderbufferType bufferType)
        {
            if (glGenRenderbuffers == null)
            {
                glGenRenderbuffers    = OpenGL.GetDelegateFor <OpenGL.glGenRenderbuffers>();
                glBindRenderbuffer    = OpenGL.GetDelegateFor <OpenGL.glBindRenderbuffer>();
                glRenderbufferStorage = OpenGL.GetDelegateFor <OpenGL.glRenderbufferStorage>();
            }

            this.Width      = width;
            this.Height     = height;
            this.BufferType = bufferType;

            glGenRenderbuffers(1, renderbuffer);
            glBindRenderbuffer(OpenGL.GL_RENDERBUFFER, renderbuffer[0]);
            glRenderbufferStorage(OpenGL.GL_RENDERBUFFER,
                                  internalformat,// TODO: add comment about OpenGL.GL_DEPTH24_STENCIL8, OpenGL.GL_RGBA,
                                  width, height);
        }
Exemple #3
0
        /// <summary>
        /// Create, update, use and delete a renderbuffer object.
        /// </summary>
        /// <param name="width"></param>
        /// <param name="height"></param>
        /// <param name="internalformat"></param>
        /// <param name="bufferType"></param>
        public Renderbuffer(int width, int height, uint internalformat, RenderbufferType bufferType)
        {
            if (glGenRenderbuffers == null)
            {
                glGenRenderbuffers = OpenGL.GetDelegateFor<OpenGL.glGenRenderbuffers>();
                glBindRenderbuffer = OpenGL.GetDelegateFor<OpenGL.glBindRenderbuffer>();
                glRenderbufferStorage = OpenGL.GetDelegateFor<OpenGL.glRenderbufferStorage>();
            }

            this.Width = width;
            this.Height = height;
            this.BufferType = bufferType;

            glGenRenderbuffers(1, renderbuffer);
            glBindRenderbuffer(OpenGL.GL_RENDERBUFFER, renderbuffer[0]);
            glRenderbufferStorage(OpenGL.GL_RENDERBUFFER,
                internalformat,// TODO: add comment about OpenGL.GL_DEPTH24_STENCIL8, OpenGL.GL_RGBA,
                width, height);
        }
Exemple #4
0
        /// <summary>
        /// Attach a renderbuffer.
        /// </summary>
        /// <param name="renderbuffer"></param>
        /// <param name="target"></param>
        /// <returns></returns>
        public Renderbuffer Attach(RenderbufferType renderbuffer, FramebufferTarget target = FramebufferTarget.Framebuffer)
        {
            Renderbuffer result = null;

            switch (renderbuffer)
            {
            case RenderbufferType.DepthBuffer:
                result = AttachDepthbuffer(target);
                break;

            case RenderbufferType.ColorBuffer:
                result = AttachColorbuffer(target);
                break;

            default:
                throw new Exception("Unexpected RenderbufferType!");
            }

            return(result);
        }
Exemple #5
0
 public void RenderbufferStorage(RenderbufferType type, RenderbufferFormat internalFormat, int width, int height) => this.CallMethod <object>(RENDERBUFFER_STORAGE, type, internalFormat, width, height);
Exemple #6
0
 public T GetRenderbufferParameter <T>(RenderbufferType target, RenderbufferParameter pname) => this.CallMethod <T>(GET_RENDERBUFFER_PARAMETER, target, pname);
Exemple #7
0
        public void ReadPixels(int x, int y, int width, int height, PixelFormat format, PixelType type, byte[] pixels) => this.CallMethod <object>(READ_PIXELS, x, y, width, height, format, type, pixels); //pixels should be an ArrayBufferView which the data gets read into

        public void BindRenderbuffer(RenderbufferType target, WebGLRenderbuffer renderbuffer) => this.CallMethod <object>(BIND_RENDERBUFFER, target, renderbuffer);
Exemple #8
0
 public void FramebufferRenderbuffer(FramebufferType target, FramebufferAttachment attachment, RenderbufferType renderbuffertarget, WebGLRenderbuffer renderbuffer) => this.CallMethod <object>(FRAMEBUFFER_RENDERBUFFER, target, attachment, renderbuffertarget, renderbuffer);