CSharpGL.HighlightRenderer.SetHighlightIndexes C# (CSharp) Method

SetHighlightIndexes() public method

设置要高亮显示的图元。
public SetHighlightIndexes ( DrawMode mode ) : void
mode DrawMode 要高亮显示的图元类型
return void
        public void SetHighlightIndexes(DrawMode mode, params uint[] indexes)
        {
            int indexesLength = indexes.Length;
            if (indexesLength > this.maxElementCount)
            {
                IndexBuffer original = this.indexBuffer;
                this.indexBuffer = Buffer.Create(IndexBufferElementType.UInt, indexesLength, mode, BufferUsage.StaticDraw);
                this.maxElementCount = indexesLength;
                original.Dispose();
            }

            var indexBuffer = this.indexBuffer as OneIndexBuffer;
            IntPtr pointer = indexBuffer.MapBuffer(MapBufferAccess.WriteOnly);
            unsafe
            {
                var array = (uint*)pointer.ToPointer();
                for (int i = 0; i < indexesLength; i++)
                {
                    array[i] = indexes[i];
                }
            }
            indexBuffer.UnmapBuffer();

            indexBuffer.Mode = mode;
            indexBuffer.ElementCount = indexesLength;
        }