public override void Export(ShaderWriter writer, ref ShaderSubProgram subProgram) { using (MemoryStream ms = new MemoryStream(subProgram.ProgramData)) { using (BinaryReader reader = new BinaryReader(ms)) { int requirements = reader.ReadInt32(); int minOffset = subProgram.ProgramData.Length; int snippetCount = SerializedPass.HasProgRayTracing(writer.Version) ? 6 : 5; for (int i = 0; i < snippetCount; i++) { #warning TEMP: HACK: pull/591 if (reader.BaseStream.Position >= minOffset) { break; } int offset = reader.ReadInt32(); int size = reader.ReadInt32(); if (size > 0) { if (offset < minOffset) { minOffset = offset; } ExportSnippet(writer, ms, offset, size); } } } } }
public override void Export(ShaderWriter writer, ref ShaderSubProgram subProgram) { using (MemoryStream ms = new MemoryStream(subProgram.ProgramData)) { using (BinaryReader reader = new BinaryReader(ms)) { int requirements = reader.ReadInt32(); int snippetCount = SerializedPass.HasProgRayTracing(writer.Version) ? 6 : 5; for (int i = 0; i < snippetCount; i++) { int offset = reader.ReadInt32(); int size = reader.ReadInt32(); if (size > 0) { ExportSnippet(writer, ms, offset, size); } } } } }