예제 #1
0
        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");
            }
        }
예제 #2
0
        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();
        }