public static EffectTechnique Parse(BytecodeReader reader, BytecodeReader techniqueReader, ShaderVersion version) { var result = new EffectTechnique(version); var nameOffset = techniqueReader.ReadUInt32(); var nameReader = reader.CopyAtOffset((int)nameOffset); result.Name = nameReader.ReadString(); var passCount = techniqueReader.ReadUInt32(); var annotationCount = techniqueReader.ReadUInt32(); for (int i = 0; i < annotationCount; i++) { result.Annotations.Add(EffectAnnotation.Parse(reader, techniqueReader, version)); } for (int i = 0; i < passCount; i++) { result.Passes.Add(EffectPass.Parse(reader, techniqueReader, version)); } return(result); }