Axiom.RenderSystems.DirectX9.D3DRenderSystem.SetAlphaRejectSettings C# (CSharp) Метод

SetAlphaRejectSettings() приватный метод

private SetAlphaRejectSettings ( CompareFunction func, byte value, bool alphaToCoverage ) : void
func CompareFunction
value byte
alphaToCoverage bool
Результат void
        public override void SetAlphaRejectSettings( CompareFunction func, byte value, bool alphaToCoverage)
        {
            var a2C = false;

            if ( func != CompareFunction.AlwaysPass )
            {
                SetRenderState( RenderState.AlphaTestEnable, true );
                a2C = alphaToCoverage;
            }
            else
            {
                SetRenderState( RenderState.AlphaTestEnable, false );
            }

            // Set always just be sure
            SetRenderState(RenderState.AlphaFunc, (int)D3DHelper.ConvertEnum(func));
            SetRenderState(RenderState.AlphaRef, value);

            // Alpha to coverage
            if ( !Capabilities.HasCapability( Graphics.Capabilities.AlphaToCoverage ) )
                return;

            // Vendor-specific hacks on renderstate, gotta love 'em
            switch ( Capabilities.Vendor )
            {
                case GPUVendor.Nvidia:
                    if ( a2C )
                    {
                        SetRenderState( RenderState.AdaptiveTessY, ( 'A' | ( 'T' ) << 8 | ( 'O' ) << 16 | ( 'C' ) << 24 ) );
                    }
                    else
                    {
                        SetRenderState( RenderState.AdaptiveTessY, (int)Format.Unknown );
                    }
                    break;
                case GPUVendor.Ati:
                    if ( a2C )
                    {
                        SetRenderState( RenderState.AdaptiveTessY, ( 'A' | ( '2' ) << 8 | ( 'M' ) << 16 | ( '1' ) << 24 ) );
                    }
                    else
                    {
                        // discovered this through trial and error, seems to work
                        SetRenderState( RenderState.AdaptiveTessY, ( 'A' | ( '2' ) << 8 | ( 'M' ) << 16 | ( '0' ) << 24 ) );
                    }
                    break;
            }
            // no hacks available for any other vendors?
            //lasta2c = a2c;
        }
D3DRenderSystem