private static DXTextureAddressMode GetAddressMode(TextureAddressMode textureAddressMode) { switch (textureAddressMode) { case TextureAddressMode.Wrap: return DXTextureAddressMode.Wrap; case TextureAddressMode.Clamp: return DXTextureAddressMode.Clamp; case TextureAddressMode.Mirror: return DXTextureAddressMode.Mirror; default: throw new ArgumentException(@"TextureAddressMode is not recognized.", "textureAddressMode"); } }
public void SetTextureAddressMode(TextureAddressMode textureAddressMode) { if(_currentTextureAddressMode == textureAddressMode) { return; } _currentTextureAddressMode = textureAddressMode; var samplerState = _textureSampler.GetSampler(0); var samplerStateDescription = samplerState.Description; var addressMode = GetAddressMode(textureAddressMode); samplerStateDescription.AddressU = addressMode; samplerStateDescription.AddressV = addressMode; var newSamplerState = new SamplerState(_device, samplerStateDescription); _textureSampler.SetSampler(0, newSamplerState); newSamplerState.Dispose(); samplerState.Dispose(); }