diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-07-06 12:56:59 +0200 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2024-07-06 15:36:43 +0200 |
commit | f40c4e32182d7696b234d0eda5e1de6cd6f273ae (patch) | |
tree | 4ad29e40de27ffcfe1fe05e1416eddfca601dd35 /src/tools/vmap4_assembler/VMapAssembler.cpp | |
parent | e46cad36d2f7858b83b8cf1382655b49b761f63a (diff) |
Tools/vmap_assembler: Multithread building vmaps
(cherry picked from commit 11a252e601522d840c5c2ceb3331495c51a2e5d3)
Diffstat (limited to 'src/tools/vmap4_assembler/VMapAssembler.cpp')
-rw-r--r-- | src/tools/vmap4_assembler/VMapAssembler.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/tools/vmap4_assembler/VMapAssembler.cpp b/src/tools/vmap4_assembler/VMapAssembler.cpp index b492b207879..9a4886b2919 100644 --- a/src/tools/vmap4_assembler/VMapAssembler.cpp +++ b/src/tools/vmap4_assembler/VMapAssembler.cpp @@ -24,6 +24,7 @@ #include <boost/program_options.hpp> #include <iostream> #include <string> +#include <thread> namespace po = boost::program_options; @@ -34,9 +35,10 @@ namespace po = boost::program_options; * @param [in] argv raw command line arguments * @param [out] src raw data dir * @param [out] dest vmap dest dir + * @param [out] threads number of threads to use * @return Non-empty optional if program should exit immediately (holds exit code in that case) */ -Optional<int> HandleArgs(int argc, char* argv[], std::string* src, std::string* dest); +Optional<int> HandleArgs(int argc, char* argv[], std::string* src, std::string* dest, uint32* threads); int main(int argc, char* argv[]) { @@ -45,14 +47,15 @@ int main(int argc, char* argv[]) Trinity::Locale::Init(); std::string src, dest; - if (Optional<int> exitCode = HandleArgs(argc, argv, &src, &dest)) + uint32 threads = 0; + if (Optional<int> exitCode = HandleArgs(argc, argv, &src, &dest, &threads)) return *exitCode; Trinity::Banner::Show("VMAP assembler", [](char const* text) { std::cout << text << std::endl; }, nullptr); std::cout << "using " << src << " as source directory and writing output to " << dest << std::endl; - VMAP::TileAssembler ta(std::move(src), std::move(dest)); + VMAP::TileAssembler ta(std::move(src), std::move(dest), threads); if (!ta.convertWorld2()) { @@ -64,10 +67,11 @@ int main(int argc, char* argv[]) return 0; } -Optional<int> HandleArgs(int argc, char* argv[], std::string* src, std::string* dest) +Optional<int> HandleArgs(int argc, char* argv[], std::string* src, std::string* dest, uint32* threads) { po::options_description visible("Usage: vmap4assembler [OPTION]... [SRC] [DEST]\n\nWhere OPTION can be any of"); visible.add_options() + ("threads", po::value<uint32>(threads)->default_value(std::thread::hardware_concurrency()), "number of threads to use") ("help,h", "print usage message") ("version,v", "print version build info"); |