public void Write(FileWriter writer, SHARC.Header header) { writer.Write(uint.MaxValue); writer.Write(Text.Length); writer.Write(VertexShaderIndex); writer.Write(FragmentShaderIndex); writer.Write(GeoemetryShaderIndex); variationVertexMacroData.Write(writer, header.Version); variationFragmenMacroData.Write(writer, header.Version); variationGeometryMacroData.Write(writer, header.Version); if (header.Version >= 13) { variationComputeMacroData.Write(writer, header.Version); } variationSymbolData.Write(writer); variationSymbolDataFull.Write(writer); if (header.Version <= 12) { UniformVariables.Write(writer); if (header.Version >= 11) { UniformBlocks.Write(writer, header.Version); } SamplerVariables.Write(writer); AttributeVariables.Write(writer); } }
public void Write(FileWriter writer, SHARC.Header header) { var data = Encoding.GetEncoding("shift_jis").GetBytes(Code); writer.Write(uint.MaxValue); writer.Write(Name.Length); writer.Write(data.Length); writer.Write(data.Length); writer.WriteString(Name); writer.Write(data); }
public void Read(FileReader reader, SHARC.Header header) { var pos = reader.Position; uint SectionSize = reader.ReadUInt32(); uint NameLength = reader.ReadUInt32(); if (header.Version >= 13) { VertexShaderIndex = reader.ReadInt32(); FragmentShaderIndex = reader.ReadInt32(); GeoemetryShaderIndex = reader.ReadInt32(); ushort computeUnk1 = reader.ReadUInt16(); ushort vertexUnk2 = reader.ReadUInt16(); ushort fragmentUnk2 = reader.ReadUInt16(); ushort geometryUnk2 = reader.ReadUInt16(); ushort computeUnk2 = reader.ReadUInt16(); } else { VertexShaderIndex = reader.ReadInt32(); FragmentShaderIndex = reader.ReadInt32(); GeoemetryShaderIndex = reader.ReadInt32(); VertexShaderIndex = 0; FragmentShaderIndex = 1; GeoemetryShaderIndex = -1; } Text = reader.ReadString((int)NameLength, true); variationVertexMacroData = new VariationMacroData(); variationFragmenMacroData = new VariationMacroData(); variationGeometryMacroData = new VariationMacroData(); variationComputeMacroData = new VariationMacroData(); variationSymbolData = new VariationSymbolData(); variationSymbolDataFull = new VariationSymbolData(); UniformVariables = new ShaderSymbolData(); UniformBlocks = new ShaderSymbolData(); SamplerVariables = new ShaderSymbolData(); AttributeVariables = new ShaderSymbolData(); variationVertexMacroData.Read(reader, header.Version); variationFragmenMacroData.Read(reader, header.Version); variationGeometryMacroData.Read(reader, header.Version); if (header.Version >= 13) { variationComputeMacroData.Read(reader, header.Version); } variationSymbolData.Read(reader); variationSymbolDataFull.Read(reader); UniformVariables.Read(reader, header.Version, true); if (header.Version <= 12) { if (header.Version >= 11) { UniformBlocks.Read(reader, header.Version, true); } SamplerVariables.Read(reader, header.Version); AttributeVariables.Read(reader, header.Version); } reader.Seek(SectionSize + pos, System.IO.SeekOrigin.Begin); }