Added compression to asset packs

This commit is contained in:
grayson committed 2021-10-18 14:13:53 -05:00
1 parent c30f159429
commit cdea6c4b64
7 files changed
+43 -6

No files matched your search

+2
View File
@@ -64,6 +64,7 @@
<Link>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Cabinet.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -81,6 +82,7 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>Cabinet.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+18
View File
@@ -6,6 +6,11 @@
#include <filesystem>
#include <set>
#include <Windows.h>
#include <compressapi.h>
#define COMPRESS 1
COMPRESSOR_HANDLE cHandle;
void Log(const std::string& in) {
std::cout << "[NFPackCreator] Info: " << in << "\n";
@@ -60,7 +65,18 @@ void writeFile(const std::string& filename, const std::string& in, bool encrypte
}
write.insert(0, "NFEF");
}
#if COMPRESS
Log("Compressing...");
size_t compSize;
Compress(cHandle, &write[0], write.size(), NULL, 0, &compSize);
char* buff = new char[compSize];
Compress(cHandle, &write[0], write.size(), buff, compSize, &compSize);
out.write(buff, compSize);
delete[] buff;
#else
out << write;
#endif
out.close();
}
@@ -93,6 +109,8 @@ int main(int argc, char* argv[]) {
}
}
CreateCompressor(COMPRESS_ALGORITHM_XPRESS_HUFF, NULL, &cHandle);
std::set<std::string> extensions;
extensions.insert({ "shader", "obj", "png", "jpg", "ttf", "wav" });