예제 #1
0
        public static Silk.NET.Vulkan.CompareOp Convert(this GAL.CompareOp op)
        {
            switch (op)
            {
            case GAL.CompareOp.Never:
            case GAL.CompareOp.NeverGl:
                return(Silk.NET.Vulkan.CompareOp.Never);

            case GAL.CompareOp.Less:
            case GAL.CompareOp.LessGl:
                return(Silk.NET.Vulkan.CompareOp.Less);

            case GAL.CompareOp.Equal:
            case GAL.CompareOp.EqualGl:
                return(Silk.NET.Vulkan.CompareOp.Equal);

            case GAL.CompareOp.LessOrEqual:
            case GAL.CompareOp.LessOrEqualGl:
                return(Silk.NET.Vulkan.CompareOp.LessOrEqual);

            case GAL.CompareOp.Greater:
            case GAL.CompareOp.GreaterGl:
                return(Silk.NET.Vulkan.CompareOp.Greater);

            case GAL.CompareOp.NotEqual:
            case GAL.CompareOp.NotEqualGl:
                return(Silk.NET.Vulkan.CompareOp.NotEqual);

            case GAL.CompareOp.GreaterOrEqual:
            case GAL.CompareOp.GreaterOrEqualGl:
                return(Silk.NET.Vulkan.CompareOp.GreaterOrEqual);

            case GAL.CompareOp.Always:
            case GAL.CompareOp.AlwaysGl:
                return(Silk.NET.Vulkan.CompareOp.Always);
            }

            Logger.Debug?.Print(LogClass.Gpu, $"Invalid {nameof(GAL.CompareOp)} enum value: {op}.");

            return(Silk.NET.Vulkan.CompareOp.Never);
        }
예제 #2
0
 public void SetAlphaTest(bool enable, float reference, GAL.CompareOp op)
 {
     // This is currently handled using shader specialization, as Vulkan does not support alpha test.
     // In the future, we may want to use this to write the reference value into the support buffer,
     // to avoid creating one version of the shader per reference value used.
 }
예제 #3
0
 public void SetAlphaTest(bool enable, float reference, GAL.CompareOp op)
 {
     // TODO.
 }