v0.80.30
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Buffers.Binary;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
@@ -9,7 +10,7 @@ namespace AssetStudio
|
||||
{
|
||||
public byte[] bytes;
|
||||
|
||||
public Hash128(BinaryReader reader)
|
||||
public Hash128(EndianBinaryReader reader)
|
||||
{
|
||||
bytes = reader.ReadBytes(16);
|
||||
}
|
||||
@@ -20,7 +21,7 @@ namespace AssetStudio
|
||||
public MatrixParameter[] m_MatrixParams;
|
||||
public VectorParameter[] m_VectorParams;
|
||||
|
||||
public StructParameter(BinaryReader reader)
|
||||
public StructParameter(EndianBinaryReader reader)
|
||||
{
|
||||
var m_NameIndex = reader.ReadInt32();
|
||||
var m_Index = reader.ReadInt32();
|
||||
@@ -48,7 +49,7 @@ namespace AssetStudio
|
||||
public uint sampler;
|
||||
public int bindPoint;
|
||||
|
||||
public SamplerParameter(BinaryReader reader)
|
||||
public SamplerParameter(EndianBinaryReader reader)
|
||||
{
|
||||
sampler = reader.ReadUInt32();
|
||||
bindPoint = reader.ReadInt32();
|
||||
@@ -71,7 +72,7 @@ namespace AssetStudio
|
||||
public string m_DefaultName;
|
||||
public TextureDimension m_TexDim;
|
||||
|
||||
public SerializedTextureProperty(BinaryReader reader)
|
||||
public SerializedTextureProperty(EndianBinaryReader reader)
|
||||
{
|
||||
m_DefaultName = reader.ReadAlignedString();
|
||||
m_TexDim = (TextureDimension)reader.ReadInt32();
|
||||
@@ -98,7 +99,7 @@ namespace AssetStudio
|
||||
public float[] m_DefValue;
|
||||
public SerializedTextureProperty m_DefTexture;
|
||||
|
||||
public SerializedProperty(BinaryReader reader)
|
||||
public SerializedProperty(EndianBinaryReader reader)
|
||||
{
|
||||
m_Name = reader.ReadAlignedString();
|
||||
m_Description = reader.ReadAlignedString();
|
||||
@@ -114,7 +115,7 @@ namespace AssetStudio
|
||||
{
|
||||
public SerializedProperty[] m_Props;
|
||||
|
||||
public SerializedProperties(BinaryReader reader)
|
||||
public SerializedProperties(EndianBinaryReader reader)
|
||||
{
|
||||
int numProps = reader.ReadInt32();
|
||||
m_Props = new SerializedProperty[numProps];
|
||||
@@ -130,7 +131,7 @@ namespace AssetStudio
|
||||
public float val;
|
||||
public string name;
|
||||
|
||||
public SerializedShaderFloatValue(BinaryReader reader)
|
||||
public SerializedShaderFloatValue(EndianBinaryReader reader)
|
||||
{
|
||||
val = reader.ReadSingle();
|
||||
name = reader.ReadAlignedString();
|
||||
@@ -147,7 +148,7 @@ namespace AssetStudio
|
||||
public SerializedShaderFloatValue blendOpAlpha;
|
||||
public SerializedShaderFloatValue colMask;
|
||||
|
||||
public SerializedShaderRTBlendState(BinaryReader reader)
|
||||
public SerializedShaderRTBlendState(EndianBinaryReader reader)
|
||||
{
|
||||
srcBlend = new SerializedShaderFloatValue(reader);
|
||||
destBlend = new SerializedShaderFloatValue(reader);
|
||||
@@ -166,7 +167,7 @@ namespace AssetStudio
|
||||
public SerializedShaderFloatValue zFail;
|
||||
public SerializedShaderFloatValue comp;
|
||||
|
||||
public SerializedStencilOp(BinaryReader reader)
|
||||
public SerializedStencilOp(EndianBinaryReader reader)
|
||||
{
|
||||
pass = new SerializedShaderFloatValue(reader);
|
||||
fail = new SerializedShaderFloatValue(reader);
|
||||
@@ -183,7 +184,7 @@ namespace AssetStudio
|
||||
public SerializedShaderFloatValue w;
|
||||
public string name;
|
||||
|
||||
public SerializedShaderVectorValue(BinaryReader reader)
|
||||
public SerializedShaderVectorValue(EndianBinaryReader reader)
|
||||
{
|
||||
x = new SerializedShaderFloatValue(reader);
|
||||
y = new SerializedShaderFloatValue(reader);
|
||||
@@ -281,7 +282,7 @@ namespace AssetStudio
|
||||
public sbyte source;
|
||||
public sbyte target;
|
||||
|
||||
public ShaderBindChannel(BinaryReader reader)
|
||||
public ShaderBindChannel(EndianBinaryReader reader)
|
||||
{
|
||||
source = reader.ReadSByte();
|
||||
target = reader.ReadSByte();
|
||||
@@ -293,7 +294,7 @@ namespace AssetStudio
|
||||
public ShaderBindChannel[] m_Channels;
|
||||
public uint m_SourceMap;
|
||||
|
||||
public ParserBindChannels(BinaryReader reader)
|
||||
public ParserBindChannels(EndianBinaryReader reader)
|
||||
{
|
||||
int numChannels = reader.ReadInt32();
|
||||
m_Channels = new ShaderBindChannel[numChannels];
|
||||
@@ -315,7 +316,7 @@ namespace AssetStudio
|
||||
public sbyte m_Type;
|
||||
public sbyte m_Dim;
|
||||
|
||||
public VectorParameter(BinaryReader reader)
|
||||
public VectorParameter(EndianBinaryReader reader)
|
||||
{
|
||||
m_NameIndex = reader.ReadInt32();
|
||||
m_Index = reader.ReadInt32();
|
||||
@@ -334,7 +335,7 @@ namespace AssetStudio
|
||||
public sbyte m_Type;
|
||||
public sbyte m_RowCount;
|
||||
|
||||
public MatrixParameter(BinaryReader reader)
|
||||
public MatrixParameter(EndianBinaryReader reader)
|
||||
{
|
||||
m_NameIndex = reader.ReadInt32();
|
||||
m_Index = reader.ReadInt32();
|
||||
@@ -428,6 +429,7 @@ namespace AssetStudio
|
||||
|
||||
if ((version[0] == 2020 && version[1] > 3) ||
|
||||
(version[0] == 2020 && version[1] == 3 && version[2] >= 2) || //2020.3.2f1 and up
|
||||
(version[0] > 2021) ||
|
||||
(version[0] == 2021 && version[1] > 1) ||
|
||||
(version[0] == 2021 && version[1] == 1 && version[2] >= 4)) //2021.1.4f1 and up
|
||||
{
|
||||
@@ -443,7 +445,7 @@ namespace AssetStudio
|
||||
public int m_Index;
|
||||
public int m_OriginalIndex;
|
||||
|
||||
public UAVParameter(BinaryReader reader)
|
||||
public UAVParameter(EndianBinaryReader reader)
|
||||
{
|
||||
m_NameIndex = reader.ReadInt32();
|
||||
m_Index = reader.ReadInt32();
|
||||
@@ -605,6 +607,7 @@ namespace AssetStudio
|
||||
|
||||
if ((version[0] == 2020 && version[1] > 3) ||
|
||||
(version[0] == 2020 && version[1] == 3 && version[2] >= 2) || //2020.3.2f1 and up
|
||||
(version[0] > 2021) ||
|
||||
(version[0] == 2021 && version[1] > 1) ||
|
||||
(version[0] == 2021 && version[1] == 1 && version[2] >= 1)) //2021.1.1f1 and up
|
||||
{
|
||||
@@ -690,6 +693,7 @@ namespace AssetStudio
|
||||
{
|
||||
public SerializedSubProgram[] m_SubPrograms;
|
||||
public SerializedProgramParameters m_CommonParameters;
|
||||
public ushort[] m_SerializedKeywordStateMask;
|
||||
|
||||
public SerializedProgram(ObjectReader reader)
|
||||
{
|
||||
@@ -704,11 +708,18 @@ namespace AssetStudio
|
||||
|
||||
if ((version[0] == 2020 && version[1] > 3) ||
|
||||
(version[0] == 2020 && version[1] == 3 && version[2] >= 2) || //2020.3.2f1 and up
|
||||
(version[0] > 2021) ||
|
||||
(version[0] == 2021 && version[1] > 1) ||
|
||||
(version[0] == 2021 && version[1] == 1 && version[2] >= 1)) //2021.1.4f1 and up
|
||||
(version[0] == 2021 && version[1] == 1 && version[2] >= 1)) //2021.1.1f1 and up
|
||||
{
|
||||
m_CommonParameters = new SerializedProgramParameters(reader);
|
||||
}
|
||||
|
||||
if (version[0] > 2022 || (version[0] == 2022 && version[1] >= 1)) //2022.1 and up
|
||||
{
|
||||
m_SerializedKeywordStateMask = reader.ReadUInt16Array();
|
||||
reader.AlignStream();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -795,7 +806,7 @@ namespace AssetStudio
|
||||
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
|
||||
if (version[0] == 2021 && version[1] >= 2) //2021.2 ~2021.x
|
||||
{
|
||||
m_SerializedKeywordStateMask = reader.ReadUInt16Array();
|
||||
reader.AlignStream();
|
||||
@@ -807,7 +818,7 @@ namespace AssetStudio
|
||||
{
|
||||
public KeyValuePair<string, string>[] tags;
|
||||
|
||||
public SerializedTagMap(BinaryReader reader)
|
||||
public SerializedTagMap(EndianBinaryReader reader)
|
||||
{
|
||||
int numTags = reader.ReadInt32();
|
||||
tags = new KeyValuePair<string, string>[numTags];
|
||||
@@ -843,7 +854,7 @@ namespace AssetStudio
|
||||
public string from;
|
||||
public string to;
|
||||
|
||||
public SerializedShaderDependency(BinaryReader reader)
|
||||
public SerializedShaderDependency(EndianBinaryReader reader)
|
||||
{
|
||||
from = reader.ReadAlignedString();
|
||||
to = reader.ReadAlignedString();
|
||||
@@ -855,7 +866,7 @@ namespace AssetStudio
|
||||
public string customEditorName;
|
||||
public string renderPipelineType;
|
||||
|
||||
public SerializedCustomEditorForRenderPipeline(BinaryReader reader)
|
||||
public SerializedCustomEditorForRenderPipeline(EndianBinaryReader reader)
|
||||
{
|
||||
customEditorName = reader.ReadAlignedString();
|
||||
renderPipelineType = reader.ReadAlignedString();
|
||||
@@ -953,7 +964,6 @@ namespace AssetStudio
|
||||
|
||||
public class Shader : NamedObject
|
||||
{
|
||||
public static bool Parsable;
|
||||
public byte[] m_Script;
|
||||
//5.3 - 5.4
|
||||
public uint decompressedSize;
|
||||
@@ -985,22 +995,22 @@ namespace AssetStudio
|
||||
decompressedLengths = reader.ReadUInt32Array().Select(x => new[] { x }).ToArray();
|
||||
}
|
||||
compressedBlob = reader.ReadUInt8Array();
|
||||
if (reader.Game.Name == "GI" || reader.Game.Name == "GI_CB2" || reader.Game.Name == "GI_CB3")
|
||||
reader.AlignStream();
|
||||
if (reader.Game.Type.IsGISubGroup())
|
||||
{
|
||||
if (BitConverter.ToInt32(compressedBlob, 0) == -1)
|
||||
compressedBlob = reader.ReadUInt8Array();
|
||||
if (BinaryPrimitives.ReadInt32LittleEndian(compressedBlob) == -1)
|
||||
{
|
||||
compressedBlob = reader.ReadUInt8Array(); //blobDataBlocks
|
||||
reader.AlignStream();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
reader.AlignStream();
|
||||
}
|
||||
|
||||
|
||||
var m_DependenciesCount = reader.ReadInt32();
|
||||
for (int i = 0; i < m_DependenciesCount; i++)
|
||||
{
|
||||
new PPtr<Shader>(reader);
|
||||
}
|
||||
|
||||
|
||||
if (version[0] >= 2018)
|
||||
{
|
||||
var m_NonModifiableTexturesCount = reader.ReadInt32();
|
||||
@@ -1010,7 +1020,7 @@ namespace AssetStudio
|
||||
new PPtr<Texture>(reader);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
var m_ShaderIsBaked = reader.ReadBoolean();
|
||||
reader.AlignStream();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user