mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
Replace native crunch decoding with new managed libraries
Resolves #448
This commit is contained in:
parent
27227a0e2b
commit
3fdd215f35
@ -11,7 +11,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="AssetRipper.Conversions.Crunch" Version="1.0.0" />
|
||||
<PackageReference Include="AssetRipper.Conversions.FastPng" Version="1.1.0" />
|
||||
<PackageReference Include="AssetRipper.Conversions.UnityCrunch" Version="1.0.0" />
|
||||
<PackageReference Include="AssetRipper.TextureDecoder" Version="2.3.0" />
|
||||
<PackageReference Include="AssetRipper.Tpk" Version="1.1.0" />
|
||||
<PackageReference Include="Kyaru.Texture2DDecoder" Version="0.17.0" />
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
using AssetRipper.Import.Logging;
|
||||
using AssetRipper.Conversions.Crunch;
|
||||
using AssetRipper.Conversions.UnityCrunch;
|
||||
using AssetRipper.Import.Logging;
|
||||
using AssetRipper.SourceGenerated.Enums;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Versioning;
|
||||
@ -9,14 +11,15 @@ internal static partial class CrunchHandler
|
||||
{
|
||||
public static bool DecompressCrunch(TextureFormat textureFormat, UnityVersion unityVersion, ReadOnlySpan<byte> data, [NotNullWhen(true)] out byte[]? uncompressedBytes)
|
||||
{
|
||||
if (OperatingSystem.IsWindows())
|
||||
/*if (OperatingSystem.IsWindows())
|
||||
{
|
||||
return DecompressCrunchWithUtinyDecoder(textureFormat, unityVersion, data, out uncompressedBytes);
|
||||
}
|
||||
else
|
||||
{
|
||||
return DecompressCrunchWithStudioDecoder(textureFormat, unityVersion, data, out uncompressedBytes);
|
||||
}
|
||||
}*/
|
||||
return DecompressCrunchWithNewDecoder(textureFormat, unityVersion, data, out uncompressedBytes);
|
||||
}
|
||||
|
||||
private static bool IsUseUnityCrunch(UnityVersion version, TextureFormat format)
|
||||
@ -101,4 +104,11 @@ internal static partial class CrunchHandler
|
||||
uncompressedBytes = Texture2DDecoder.TextureDecoder.UnpackUnityCrunch(data);
|
||||
return uncompressedBytes is { Length: > 0 };
|
||||
}
|
||||
|
||||
private static bool DecompressCrunchWithNewDecoder(TextureFormat textureFormat, UnityVersion unityVersion, ReadOnlySpan<byte> data, [NotNullWhen(true)] out byte[]? uncompressedBytes)
|
||||
{
|
||||
return IsUseUnityCrunch(unityVersion, textureFormat)
|
||||
? UnityCrunch.TryDecompress(data, out uncompressedBytes)
|
||||
: Crunch.TryDecompress(data, out uncompressedBytes);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user