Beispiel #1
0
        private static string ConvertStencilComp(SerializedShaderFloatValue comp)
        {
            switch (comp.val)
            {
            case 0f:
                return("Disabled");

            case 1f:
                return("Never");

            case 2f:
                return("Less");

            case 3f:
                return("Equal");

            case 4f:
                return("LEqual");

            case 5f:
                return("Greater");

            case 6f:
                return("NotEqual");

            case 7f:
                return("GEqual");

            case 8f:
            default:
                return("Always");
            }
        }
Beispiel #2
0
        private static string ConvertStencilOp(SerializedShaderFloatValue op)
        {
            switch (op.val)
            {
            case 0f:
            default:
                return("Keep");

            case 1f:
                return("Zero");

            case 2f:
                return("Replace");

            case 3f:
                return("IncrSat");

            case 4f:
                return("DecrSat");

            case 5f:
                return("Invert");

            case 6f:
                return("IncrWrap");

            case 7f:
                return("DecrWrap");
            }
        }
Beispiel #3
0
 public SerializedStencilOp(BinaryReader reader)
 {
     pass  = new SerializedShaderFloatValue(reader);
     fail  = new SerializedShaderFloatValue(reader);
     zFail = new SerializedShaderFloatValue(reader);
     comp  = new SerializedShaderFloatValue(reader);
 }
Beispiel #4
0
 public SerializedShaderVectorValue(BinaryReader reader)
 {
     x    = new SerializedShaderFloatValue(reader);
     y    = new SerializedShaderFloatValue(reader);
     z    = new SerializedShaderFloatValue(reader);
     w    = new SerializedShaderFloatValue(reader);
     name = reader.ReadAlignedString();
 }
Beispiel #5
0
 public SerializedShaderRTBlendState(BinaryReader reader)
 {
     srcBlend       = new SerializedShaderFloatValue(reader);
     destBlend      = new SerializedShaderFloatValue(reader);
     srcBlendAlpha  = new SerializedShaderFloatValue(reader);
     destBlendAlpha = new SerializedShaderFloatValue(reader);
     blendOp        = new SerializedShaderFloatValue(reader);
     blendOpAlpha   = new SerializedShaderFloatValue(reader);
     colMask        = new SerializedShaderFloatValue(reader);
 }
Beispiel #6
0
        public SerializedShaderState(ObjectReader reader)
        {
            var version = reader.version;

            m_Name  = reader.ReadAlignedString();
            rtBlend = new SerializedShaderRTBlendState[8];
            for (var i = 0; i < 8; i++)
            {
                rtBlend[i] = new SerializedShaderRTBlendState(reader);
            }
            rtSeparateBlend = reader.ReadBoolean();
            reader.AlignStream();
            if (version[0] > 2017 || (version[0] == 2017 && version[1] >= 2)) //2017.2 and up
            {
                zClip = new SerializedShaderFloatValue(reader);
            }
            zTest   = new SerializedShaderFloatValue(reader);
            zWrite  = new SerializedShaderFloatValue(reader);
            culling = new SerializedShaderFloatValue(reader);
            if (version[0] >= 2020) //2020.1 and up
            {
                conservative = new SerializedShaderFloatValue(reader);
            }
            offsetFactor     = new SerializedShaderFloatValue(reader);
            offsetUnits      = new SerializedShaderFloatValue(reader);
            alphaToMask      = new SerializedShaderFloatValue(reader);
            stencilOp        = new SerializedStencilOp(reader);
            stencilOpFront   = new SerializedStencilOp(reader);
            stencilOpBack    = new SerializedStencilOp(reader);
            stencilReadMask  = new SerializedShaderFloatValue(reader);
            stencilWriteMask = new SerializedShaderFloatValue(reader);
            stencilRef       = new SerializedShaderFloatValue(reader);
            fogStart         = new SerializedShaderFloatValue(reader);
            fogEnd           = new SerializedShaderFloatValue(reader);
            fogDensity       = new SerializedShaderFloatValue(reader);
            fogColor         = new SerializedShaderVectorValue(reader);
            fogMode          = (FogMode)reader.ReadInt32();
            gpuProgramID     = reader.ReadInt32();
            m_Tags           = new SerializedTagMap(reader);
            m_LOD            = reader.ReadInt32();
            lighting         = reader.ReadBoolean();
            reader.AlignStream();
        }
Beispiel #7
0
        private static string ConvertBlendFactor(SerializedShaderFloatValue factor)
        {
            switch (factor.val)
            {
            case 0f:
                return("Zero");

            case 1f:
            default:
                return("One");

            case 2f:
                return("DstColor");

            case 3f:
                return("SrcColor");

            case 4f:
                return("OneMinusDstColor");

            case 5f:
                return("SrcAlpha");

            case 6f:
                return("OneMinusSrcColor");

            case 7f:
                return("DstAlpha");

            case 8f:
                return("OneMinusDstAlpha");

            case 9f:
                return("SrcAlphaSaturate");

            case 10f:
                return("OneMinusSrcAlpha");
            }
        }
Beispiel #8
0
        private static string ConvertBlendOp(SerializedShaderFloatValue op)
        {
            switch (op.val)
            {
            case 0f:
            default:
                return("Add");

            case 1f:
                return("Sub");

            case 2f:
                return("RevSub");

            case 3f:
                return("Min");

            case 4f:
                return("Max");

            case 5f:
                return("LogicalClear");

            case 6f:
                return("LogicalSet");

            case 7f:
                return("LogicalCopy");

            case 8f:
                return("LogicalCopyInverted");

            case 9f:
                return("LogicalNoop");

            case 10f:
                return("LogicalInvert");

            case 11f:
                return("LogicalAnd");

            case 12f:
                return("LogicalNand");

            case 13f:
                return("LogicalOr");

            case 14f:
                return("LogicalNor");

            case 15f:
                return("LogicalXor");

            case 16f:
                return("LogicalEquiv");

            case 17f:
                return("LogicalAndReverse");

            case 18f:
                return("LogicalAndInverted");

            case 19f:
                return("LogicalOrReverse");

            case 20f:
                return("LogicalOrInverted");
            }
        }