Esempio n. 1
0
        /// <summary>
        /// Binds the given <see cref="IndexBuffer"/> object to the <see cref="RenderContext"/>.
        /// </summary>
        /// <param name="ibo">The <see cref="IndexBuffer"/> object to bind.</param>
        public void BindIndexBuffer(IndexBuffer ibo)
        {
            if (ibo == null)
            {
                if (IndexBufferHandle == GLHandle.Zero)
                {
                    return;
                }

                GL.BindBuffer(BufferTarget.ElementArrayBuffer, GLHandle.Zero);

                IndexBufferHandle        = GLHandle.Zero;
                IndexBuffer.BoundContext = null;
                IndexBuffer = null;

                return;
            }

            ibo.EnsureUndisposed();

            if (IndexBufferHandle == ibo.Handle)
            {
                return;
            }

            GL.BindBuffer(BufferTarget.ElementArrayBuffer, ibo.Handle);

            IndexBufferHandle        = ibo.Handle;
            IndexBuffer              = ibo;
            IndexBuffer.BoundContext = this;
        }
Esempio n. 2
0
        /// <summary>
        /// Binds the given <see cref="IndexBuffer"/> object to the <see cref="RenderContext"/>.
        /// </summary>
        /// <param name="ibo">The <see cref="IndexBuffer"/> object to bind.</param>
        public void BindIndexBuffer(IndexBuffer ibo)
        {
            if (ibo == null)
            {
                throw new ArgumentNullException(nameof(ibo));
            }

            ibo.EnsureUndisposed();

            if (_indexBufferHandle == ibo.Handle)
            {
                return;
            }

            GL.BindBuffer(BufferTarget.ElementArrayBuffer, ibo.Handle);

            _indexBufferHandle        = ibo.Handle;
            _indexBuffer              = ibo;
            _indexBuffer.BoundContext = this;
        }