public void Activate(int slot) { if (BufferType == BufferTypeEnum.Vertex) { device.BindBuffer(BufferTarget.ArrayBuffer, BufferHandle); } else if (BufferType == BufferTypeEnum.Index) { device.BindBuffer(BufferTarget.ElementArrayBuffer, BufferHandle); } else if (BufferType == BufferTypeEnum.ConstPixel) { device.BindBufferBase(BufferRangeTarget.UniformBuffer, slot, BufferHandle); } else if (BufferType == BufferTypeEnum.ConstVertex) { device.BindBufferBase(BufferRangeTarget.UniformBuffer, slot, BufferHandle); } else if (IsStructuredBuffer) { if (IsUsingBufferTexture) { device.ActiveTextureUnit(slot); device.BindTexture(TextureTarget.TextureBuffer, TextureBufferHandle); } else { device.BindBufferBase(BufferRangeTarget.ShaderStorageBuffer, slot, BufferHandle); } } else { throw new Exception("Unsupported buffer type"); } }