public SerializedPass(ObjectReader reader) { var version = reader.version; int numIndices = reader.ReadInt32(); m_NameIndices = new KeyValuePair <string, int> [numIndices]; for (int i = 0; i < numIndices; i++) { m_NameIndices[i] = new KeyValuePair <string, int>(reader.ReadAlignedString(), reader.ReadInt32()); } m_Type = (PassType)reader.ReadInt32(); m_State = new SerializedShaderState(reader); m_ProgramMask = reader.ReadUInt32(); progVertex = new SerializedProgram(reader); progFragment = new SerializedProgram(reader); progGeometry = new SerializedProgram(reader); progHull = new SerializedProgram(reader); progDomain = new SerializedProgram(reader); if (version[0] > 2019 || (version[0] == 2019 && version[0] >= 3)) //2019.3 and up { progRayTracing = new SerializedProgram(reader); } m_HasInstancingVariant = reader.ReadBoolean(); if (version[0] >= 2018) //2018 and up { var m_HasProceduralInstancingVariant = reader.ReadBoolean(); } reader.AlignStream(); m_UseName = reader.ReadAlignedString(); m_Name = reader.ReadAlignedString(); m_TextureName = reader.ReadAlignedString(); m_Tags = new SerializedTagMap(reader); }
public SerializedPass(ObjectReader reader) { var version = reader.version; if (version[0] > 2020 || (version[0] == 2020 && version[1] >= 2)) //2020.2 and up { int numEditorDataHash = reader.ReadInt32(); m_EditorDataHash = new Hash128[numEditorDataHash]; for (int i = 0; i < numEditorDataHash; i++) { m_EditorDataHash[i] = new Hash128(reader); } reader.AlignStream(); m_Platforms = reader.ReadUInt8Array(); reader.AlignStream(); if (version[0] < 2021 || (version[0] == 2021 && version[1] < 2)) //2021.1 and down { m_LocalKeywordMask = reader.ReadUInt16Array(); reader.AlignStream(); m_GlobalKeywordMask = reader.ReadUInt16Array(); reader.AlignStream(); } } int numIndices = reader.ReadInt32(); m_NameIndices = new KeyValuePair <string, int> [numIndices]; for (int i = 0; i < numIndices; i++) { m_NameIndices[i] = new KeyValuePair <string, int>(reader.ReadAlignedString(), reader.ReadInt32()); } m_Type = (PassType)reader.ReadInt32(); m_State = new SerializedShaderState(reader); m_ProgramMask = reader.ReadUInt32(); progVertex = new SerializedProgram(reader); progFragment = new SerializedProgram(reader); progGeometry = new SerializedProgram(reader); progHull = new SerializedProgram(reader); progDomain = new SerializedProgram(reader); if (version[0] > 2019 || (version[0] == 2019 && version[1] >= 3)) //2019.3 and up { progRayTracing = new SerializedProgram(reader); } m_HasInstancingVariant = reader.ReadBoolean(); if (version[0] >= 2018) //2018 and up { var m_HasProceduralInstancingVariant = reader.ReadBoolean(); } reader.AlignStream(); m_UseName = reader.ReadAlignedString(); m_Name = reader.ReadAlignedString(); m_TextureName = reader.ReadAlignedString(); m_Tags = new SerializedTagMap(reader); if (version[0] > 2021 || (version[0] == 2021 && version[1] >= 2)) //2021.2 and up { m_SerializedKeywordStateMask = reader.ReadUInt16Array(); reader.AlignStream(); } }
public SerializedSubShader(ObjectReader reader) { int numPasses = reader.ReadInt32(); m_Passes = new SerializedPass[numPasses]; for (int i = 0; i < numPasses; i++) { m_Passes[i] = new SerializedPass(reader); } m_Tags = new SerializedTagMap(reader); m_LOD = reader.ReadInt32(); }
public SerializedSubShader(ObjectReader reader) { int numPasses = reader.ReadInt32(); m_Passes = new List <SerializedPass>(numPasses); for (int i = 0; i < numPasses; i++) { m_Passes.Add(new SerializedPass(reader)); } m_Tags = new SerializedTagMap(reader); m_LOD = reader.ReadInt32(); }
private static string ConvertSerializedTagMap(SerializedTagMap m_Tags, int intent) { var sb = new StringBuilder(); if (m_Tags.tags.Length > 0) { sb.Append(new string(' ', intent)); sb.Append("Tags { "); foreach (var pair in m_Tags.tags) { sb.Append($"\"{pair.Key}\" = \"{pair.Value}\" "); } sb.Append("}\n"); } return(sb.ToString()); }
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(); }