Files
LuaCsForBarotraumaEP/Libraries/MonoGame.Framework/Src/MonoGame.Framework.Content.Pipeline/Graphics/MipmapChainCollection.cs
2019-06-25 16:00:44 +03:00

52 lines
1.5 KiB
C#

// MonoGame - Copyright (C) The MonoGame Team
// This file is subject to the terms and conditions defined in
// file 'LICENSE.txt', which is part of this source code package.
using System;
using System.Collections.ObjectModel;
namespace Microsoft.Xna.Framework.Content.Pipeline.Graphics
{
/// <summary>
/// Provides methods for maintaining a mipmap chain.
/// </summary>
public sealed class MipmapChainCollection : Collection<MipmapChain>
{
private readonly bool _fixedSize;
private const string CannotResizeError = "Cannot resize MipmapChainCollection. This type of texture has a fixed number of faces.";
internal MipmapChainCollection(int count, bool fixedSize)
{
for (var i = 0; i < count; i++)
Add(new MipmapChain());
_fixedSize = fixedSize;
}
protected override void ClearItems()
{
if (_fixedSize)
throw new NotSupportedException(CannotResizeError);
base.ClearItems();
}
protected override void RemoveItem(int index)
{
if (_fixedSize)
throw new NotSupportedException(CannotResizeError);
base.RemoveItem(index);
}
protected override void InsertItem(int index, MipmapChain item)
{
if (_fixedSize)
throw new NotSupportedException(CannotResizeError);
base.InsertItem(index, item);
}
}
}