diff --git a/Source/Engine/Tools/TextureTool/TextureTool.Build.cs b/Source/Engine/Tools/TextureTool/TextureTool.Build.cs
index 005ca9c96..00e0a18a9 100644
--- a/Source/Engine/Tools/TextureTool/TextureTool.Build.cs
+++ b/Source/Engine/Tools/TextureTool/TextureTool.Build.cs
@@ -58,8 +58,9 @@ public class TextureTool : EngineModule
options.PrivateDependencies.Add("bc7enc16");
}
}
- if (options.Target.IsEditor)
+ if (options.Target.IsEditor && options.Platform.Target == TargetPlatform.Mac) // TODO: add ASTC for Editor on Linux and Windows
{
+ // ASTC for mobile (iOS and Android)
options.SourceFiles.Add(Path.Combine(FolderPath, "TextureTool.astc.cpp"));
options.PrivateDependencies.Add("astc");
}
diff --git a/Source/Engine/Tools/TextureTool/TextureTool.DirectXTex.cpp b/Source/Engine/Tools/TextureTool/TextureTool.DirectXTex.cpp
index 47988f4e8..84e1c5adf 100644
--- a/Source/Engine/Tools/TextureTool/TextureTool.DirectXTex.cpp
+++ b/Source/Engine/Tools/TextureTool/TextureTool.DirectXTex.cpp
@@ -834,6 +834,16 @@ bool TextureTool::ImportTextureDirectXTex(ImageType type, const StringView& path
bool TextureTool::ConvertDirectXTex(TextureData& dst, const TextureData& src, const PixelFormat dstFormat)
{
+ if (PixelFormatExtensions::IsCompressedASTC(dstFormat))
+ {
+ // TODO: decompress if need to
+#if COMPILE_WITH_ASTC
+ return ConvertAstc(dst, *textureData, dstFormat);
+#else
+ return true;
+#endif
+ }
+
HRESULT result;
DirectX::ScratchImage dstImage;
DirectX::ScratchImage tmpImage;
@@ -919,10 +929,6 @@ bool TextureTool::ConvertDirectXTex(TextureData& dst, const TextureData& src, co
return true;
}
}
- else if (PixelFormatExtensions::IsCompressedASTC(dstFormat))
- {
- todo_astc_compression_on_windows;
- }
// Check if convert data
else if (inImage->GetMetadata().format != dstFormatDxgi)
{
diff --git a/Source/ThirdParty/astc/astc.Build.cs b/Source/ThirdParty/astc/astc.Build.cs
index e885c9150..237d0ac81 100644
--- a/Source/ThirdParty/astc/astc.Build.cs
+++ b/Source/ThirdParty/astc/astc.Build.cs
@@ -1,13 +1,12 @@
// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
-using System.IO;
using Flax.Build;
using Flax.Build.NativeCpp;
///
/// https://github.com/ARM-software/astc-encoder
///
-public class astc : ThirdPartyModule
+public class astc : DepsModule
{
///
public override void Init()
@@ -27,13 +26,6 @@ public class astc : ThirdPartyModule
base.Setup(options);
options.PublicDefinitions.Add("COMPILE_WITH_ASTC");
- var depsRoot = options.DepsFolder;
- switch (options.Platform.Target)
- {
- case TargetPlatform.Mac:
- options.OutputFiles.Add(Path.Combine(depsRoot, "libastcenc.a"));
- break;
- default: throw new InvalidPlatformException(options.Platform.Target);
- }
+ AddLib(options, options.DepsFolder, "astcenc");
}
}