Example #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);
        }
Example #2
0
        public override void Read(AssetReader reader)
        {
            base.Read(reader);

            Shader.Read(reader);
            if (IsReadKeywords(reader.Version))
            {
                if (IsKeywordsArray(reader.Version))
                {
                    m_shaderKeywordsArray = reader.ReadStringArray();
                }
                else
                {
                    ShaderKeywords = reader.ReadString();
                }
            }

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

            if (IsReadCustomRenderQueue(reader.Version))
            {
                CustomRenderQueue = reader.ReadInt32();
            }

            if (IsReadStringTagMap(reader.Version))
            {
                m_stringTagMap = new Dictionary <string, string>();
                m_stringTagMap.Read(reader);
                if (IsReadDisabledShaderPasses(reader.Version))
                {
                    m_disabledShaderPasses = reader.ReadStringArray();
                }
            }

            SavedProperties.Read(reader);
        }