From 3c6ed303fe26889a90ed4308654ee2f83988da5c Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sun, 24 Dec 2023 22:45:44 +0100 Subject: [PATCH] Dont use astc on windows/limux yet --- .../Engine/Tools/TextureTool/TextureTool.Build.cs | 3 ++- .../Tools/TextureTool/TextureTool.DirectXTex.cpp | 14 ++++++++++---- Source/ThirdParty/astc/astc.Build.cs | 12 ++---------- 3 files changed, 14 insertions(+), 15 deletions(-) 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"); } }