示例#1
0
        /// <summary>
        /// Immediately binds a renderbuffer to the OpenGL context and updates the state cache.
        /// </summary>
        /// <param name="renderbuffer">The renderbuffer to bind to the OpenGL context.</param>
        public static void BindRenderbuffer(UInt32 renderbuffer)
        {
            gl.BindRenderbuffer(gl.GL_RENDERBUFFER, renderbuffer);
            gl.ThrowIfError();

            GL_RENDERBUFFER_BINDING.Update(renderbuffer);
            VerifyCache();
        }
示例#2
0
        private void Dispose_BindRenderbuffer()
        {
            if (forced || !gl.IsDirectStateAccessAvailable)
            {
                gl.BindRenderbuffer(gl.GL_RENDERBUFFER, oldGL_RENDERBUFFER_BINDING);
                gl.ThrowIfError();

                GL_RENDERBUFFER_BINDING.Update(oldGL_RENDERBUFFER_BINDING);
            }
        }
示例#3
0
        private void Apply_BindRenderbuffer()
        {
            if (forced || !gl.IsDirectStateAccessAvailable)
            {
                gl.BindRenderbuffer(gl.GL_RENDERBUFFER, newGL_RENDERBUFFER_BINDING);
                gl.ThrowIfError();

                oldGL_RENDERBUFFER_BINDING = GL_RENDERBUFFER_BINDING.Update(newGL_RENDERBUFFER_BINDING);
            }
        }
示例#4
0
        private void Apply_CreateRenderbuffer(out UInt32 renderbuffer)
        {
            if (SupportsDirectStateAccessCreateFunctions)
            {
                renderbuffer = gl.CreateRenderbuffer();
            }
            else
            {
                renderbuffer = gl.GenRenderbuffer();
                gl.ThrowIfError();

                if (!gl.IsDirectStateAccessAvailable)
                {
                    gl.BindRenderbuffer(gl.GL_RENDERBUFFER, renderbuffer);
                    gl.ThrowIfError();

                    newGL_RENDERBUFFER_BINDING = renderbuffer;
                    oldGL_RENDERBUFFER_BINDING = GL_RENDERBUFFER_BINDING.Update(renderbuffer);
                }
            }
        }
示例#5
0
        /// <summary>
        /// Immediately creates a renderbuffer and updates the state cache.
        /// </summary>
        /// <param name="renderbuffer">The identifier of the renderbuffer that was created.</param>
        public static void CreateRenderbuffer(out UInt32 renderbuffer)
        {
            if (SupportsDirectStateAccessCreateFunctions)
            {
                renderbuffer = gl.CreateRenderbuffer();
                gl.ThrowIfError();
            }
            else
            {
                renderbuffer = gl.GenRenderbuffer();
                gl.ThrowIfError();

                if (!gl.IsDirectStateAccessAvailable)
                {
                    gl.BindRenderbuffer(gl.GL_RENDERBUFFER, renderbuffer);
                    gl.ThrowIfError();

                    GL_RENDERBUFFER_BINDING.Update(renderbuffer);
                    VerifyCache();
                }
            }
        }