Exemple #1
0
        public override void Read(EndianStream stream)
        {
            base.Read(stream);

            if (IsSerialized)
            {
                SerializedShader.Read(stream);
            }
            else
            {
                Shader.Read(stream);
            }

            if (IsReadKeywords)
            {
                if (IsKeywordsArray)
                {
                    m_shaderKeywordsArray = stream.ReadStringArray();
                }
                else
                {
                    ShaderKeywords = stream.ReadStringAligned();
                }
            }

            if (IsReadLightmapFlags)
            {
                LightmapFlags = stream.ReadUInt32();
                if (IsReadOtherFlags)
                {
                    EnableInstancingVariants = stream.ReadBoolean();
                    DoubleSidedGI            = stream.ReadBoolean();
                    stream.AlignStream(AlignType.Align4);
                }
            }

            if (IsReadCustomRenderQueue)
            {
                CustomRenderQueue = stream.ReadInt32();
            }

            if (IsReadStringTagMap)
            {
                StringTagMap.Read(stream);
                if (IsReadDisabledShaderPasses)
                {
                    m_disabledShaderPasses = stream.ReadStringArray();
                }
            }

            SavedProperties.Read(stream);
        }