MCPcopy Create free account
hub / github.com/DragonJoker/Castor3D / main

Function main

tools/HeightMapToNormalMap/HeightMapToNormalMap.cpp:140–182  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

138}
139
140int main( int argc, char * argv[] )
141{
142 Options options;
143
144 if ( !parseArgs( argc, argv, options )
145 || options.paths.empty() )
146 {
147 return -1;
148 }
149
150 castor::Logger::initialise( castor::LogType::eInfo );
151 castor::Logger::setFileName( castor::Path{ "HeightMapToNormalMap.log" } );
152
153 castor::ImageLoader loader;
154 castor::ExrImageLoader::registerLoader( loader );
155 castor::FreeImageLoader::registerLoader( loader );
156 castor::GliImageLoader::registerLoader( loader );
157 castor::StbImageLoader::registerLoader( loader );
158 castor::XpmImageLoader::registerLoader( loader );
159 castor::ImageWriter writer;
160 castor::StbImageWriter::registerWriter( writer );
161
162 castor::CpuInformations cpuInfos;
163 castor::ThreadPool pool{ cpuInfos.getCoreCount() };
164
165 for ( auto & path : options.paths )
166 {
167 pool.pushJob( [&options, path, &loader, &writer]()
168 {
169 convertToNormalMap( options.normalStrength, path, loader, writer );
170 } );
171 }
172
173 pool.waitAll( castor::Milliseconds::max() );
174 castor::StbImageWriter::unregisterWriter( writer );
175 castor::ExrImageLoader::unregisterLoader( loader );
176 castor::FreeImageLoader::unregisterLoader( loader );
177 castor::GliImageLoader::unregisterLoader( loader );
178 castor::StbImageLoader::unregisterLoader( loader );
179 castor::XpmImageLoader::unregisterLoader( loader );
180 castor::Logger::cleanup();
181 return EXIT_SUCCESS;
182}

Callers

nothing calls this directly

Calls 9

maxFunction · 0.85
getCoreCountMethod · 0.80
parseArgsFunction · 0.70
convertToNormalMapFunction · 0.70
initialiseFunction · 0.50
cleanupFunction · 0.50
emptyMethod · 0.45
pushJobMethod · 0.45
waitAllMethod · 0.45

Tested by

no test coverage detected