Esempio n. 1
0
 /// <summary>
 /// Set the blend state of the output-merger stage. See <see cref="Render+states"/> to learn how to use it.
 /// </summary>
 /// <param name="blendState">a blend-state</param>
 /// <param name="blendFactor">Blend factors, one for each RGBA component. This requires a blend state object that specifies the <see cref="Blend.BlendFactor" /></param>
 /// <param name="multiSampleMask">32-bit sample coverage. The default value is 0xffffffff.</param>
 private void SetBlendStateImpl(BlendState blendState, Color4 blendFactor, int multiSampleMask = -1)
 {
     if (blendState == null)
     {
         NativeDeviceContext.OutputMerger.SetBlendState(null, ColorHelper.Convert(blendFactor), multiSampleMask);
     }
     else
     {
         NativeDeviceContext.OutputMerger.SetBlendState((SharpDX.Direct3D11.BlendState)blendState.NativeDeviceChild, ColorHelper.Convert(blendFactor), multiSampleMask);
     }
 }
        private void CreateNativeDeviceChild()
        {
            SharpDX.Direct3D12.SamplerStateDescription nativeDescription;

            nativeDescription.AddressU           = (SharpDX.Direct3D12.TextureAddressMode)Description.AddressU;
            nativeDescription.AddressV           = (SharpDX.Direct3D12.TextureAddressMode)Description.AddressV;
            nativeDescription.AddressW           = (SharpDX.Direct3D12.TextureAddressMode)Description.AddressW;
            nativeDescription.BorderColor        = ColorHelper.Convert(Description.BorderColor);
            nativeDescription.ComparisonFunction = (SharpDX.Direct3D12.Comparison)Description.CompareFunction;
            nativeDescription.Filter             = (SharpDX.Direct3D12.Filter)Description.Filter;
            nativeDescription.MaximumAnisotropy  = Description.MaxAnisotropy;
            nativeDescription.MaximumLod         = Description.MaxMipLevel;
            nativeDescription.MinimumLod         = Description.MinMipLevel;
            nativeDescription.MipLodBias         = Description.MipMapLevelOfDetailBias;

            NativeSampler = GraphicsDevice.SamplerAllocator.Allocate(1);
            GraphicsDevice.NativeDevice.CreateSampler(nativeDescription, NativeSampler);
        }
        private void CreateNativeDeviceChild()
        {
            SharpDX.Direct3D11.SamplerStateDescription nativeDescription;

            nativeDescription.AddressU           = (SharpDX.Direct3D11.TextureAddressMode)Description.AddressU;
            nativeDescription.AddressV           = (SharpDX.Direct3D11.TextureAddressMode)Description.AddressV;
            nativeDescription.AddressW           = (SharpDX.Direct3D11.TextureAddressMode)Description.AddressW;
            nativeDescription.BorderColor        = ColorHelper.Convert(Description.BorderColor);
            nativeDescription.ComparisonFunction = (SharpDX.Direct3D11.Comparison)Description.CompareFunction;
            nativeDescription.Filter             = (SharpDX.Direct3D11.Filter)Description.Filter;
            nativeDescription.MaximumAnisotropy  = Description.MaxAnisotropy;
            nativeDescription.MaximumLod         = Description.MaxMipLevel;
            nativeDescription.MinimumLod         = Description.MinMipLevel;
            nativeDescription.MipLodBias         = Description.MipMapLevelOfDetailBias;

            // For 9.1, anisotropy cannot be larger then 2
            // mirror once is not supported either
            if (GraphicsDevice.Features.CurrentProfile == GraphicsProfile.Level_9_1)
            {
                // TODO: Min with user-value instead?
                nativeDescription.MaximumAnisotropy = 2;

                if (nativeDescription.AddressU == SharpDX.Direct3D11.TextureAddressMode.MirrorOnce)
                {
                    nativeDescription.AddressU = SharpDX.Direct3D11.TextureAddressMode.Mirror;
                }
                if (nativeDescription.AddressV == SharpDX.Direct3D11.TextureAddressMode.MirrorOnce)
                {
                    nativeDescription.AddressV = SharpDX.Direct3D11.TextureAddressMode.Mirror;
                }
                if (nativeDescription.AddressW == SharpDX.Direct3D11.TextureAddressMode.MirrorOnce)
                {
                    nativeDescription.AddressW = SharpDX.Direct3D11.TextureAddressMode.Mirror;
                }
            }

            NativeDeviceChild = new SharpDX.Direct3D11.SamplerState(NativeDevice, nativeDescription);
        }
Esempio n. 4
0
 public void SetBlendFactor(Color4 blendFactor)
 {
     nativeDeviceContext.OutputMerger.BlendFactor = ColorHelper.Convert(blendFactor);
 }