#region Using Statements using System; using ANX.Framework.NonXNA.Development; #endregion // This file is part of the ANX.Framework created by the // "ANX.Framework developer group" and released under the Ms-PL license. // For details see: http://anxframework.codeplex.com/license namespace ANX.Framework.Graphics { [PercentageComplete(100)] [Developer("Glatzemann")] [TestState(TestStateAttribute.TestState.Tested)] public sealed class SamplerStateCollection { private readonly SamplerState[] samplerStates; private readonly GraphicsDevice graphics; internal SamplerStateCollection(GraphicsDevice graphics, int maxSamplers) { this.graphics = graphics; samplerStates = new SamplerState[maxSamplers]; } public SamplerState this[int index] { get { if (index < 0 || index >= samplerStates.Length) throw new ArgumentOutOfRangeException("index"); return samplerStates[index]; } set { if (index < 0 || index >= samplerStates.Length) throw new ArgumentOutOfRangeException("index"); if (value == null) throw new ArgumentNullException("value"); if (samplerStates[index] != value) { samplerStates[index] = value; samplerStates[index].NativeSamplerState.Apply(graphics, index); } } } internal void InitializeDeviceState() { for (int i = 0; i < samplerStates.Length; i++) samplerStates[i] = SamplerState.LinearWrap; } } }