Browse Source

TextureTools: configurable plugin dir for distancefieldconverter utility.

Similarly to magnum-fontconverter utility.
pull/55/merge
Vladimír Vondruš 12 years ago
parent
commit
644556bd85
  1. 6
      src/Magnum/TextureTools/distancefieldconverter.cpp
  2. 3
      src/Magnum/TextureTools/distancefieldconverterConfigure.h.cmake

6
src/Magnum/TextureTools/distancefieldconverter.cpp

@ -24,6 +24,7 @@
*/
#include <Corrade/Utility/Arguments.h>
#include <Corrade/Utility/Directory.h>
#include <Corrade/PluginManager/Manager.h>
#include "Magnum/Math/Range.h"
@ -66,6 +67,7 @@ DistanceFieldConverter::DistanceFieldConverter(const Arguments& arguments): Plat
.addArgument("output").setHelp("output", "output image")
.addOption("importer", "TgaImporter").setHelp("image importer plugin")
.addOption("converter", "TgaImageConverter").setHelp("image converter plugin")
.addOption("plugin-dir", MAGNUM_PLUGINS_DIR).setHelpKey("plugin-dir", "DIR").setHelp("plugin-dir", "base plugin dir")
.addNamedArgument("output-size").setHelpKey("output-size", "\"X Y\"").setHelp("output-size", "size of output image")
.addNamedArgument("radius").setHelpKey("radius", "N").setHelp("radius", "distance field computation radius")
.setHelp("Converts black&white image to distance-field representation.")
@ -76,13 +78,13 @@ DistanceFieldConverter::DistanceFieldConverter(const Arguments& arguments): Plat
int DistanceFieldConverter::exec() {
/* Load importer plugin */
PluginManager::Manager<Trade::AbstractImporter> importerManager(MAGNUM_IMPORTER_PLUGIN_DIR);
PluginManager::Manager<Trade::AbstractImporter> importerManager(Utility::Directory::join(args.value("plugin-dir"), "importers/"));
if(!(importerManager.load(args.value("importer")) & PluginManager::LoadState::Loaded))
return 1;
std::unique_ptr<Trade::AbstractImporter> importer = importerManager.instance(args.value("importer"));
/* Load converter plugin */
PluginManager::Manager<Trade::AbstractImageConverter> converterManager(MAGNUM_IMAGECONVERTER_PLUGIN_DIR);
PluginManager::Manager<Trade::AbstractImageConverter> converterManager(Utility::Directory::join(args.value("plugin-dir"), "imageconverters/"));
if(!(converterManager.load(args.value("converter")) & PluginManager::LoadState::Loaded))
return 1;
std::unique_ptr<Trade::AbstractImageConverter> converter = converterManager.instance(args.value("converter"));

3
src/Magnum/TextureTools/distancefieldconverterConfigure.h.cmake

@ -23,5 +23,4 @@
DEALINGS IN THE SOFTWARE.
*/
#define MAGNUM_IMPORTER_PLUGIN_DIR "${MAGNUM_LIBRARY_INSTALL_DIR}/magnum/importers"
#define MAGNUM_IMAGECONVERTER_PLUGIN_DIR "${MAGNUM_LIBRARY_INSTALL_DIR}/magnum/imageconverters"
#define MAGNUM_PLUGINS_DIR "${MAGNUM_PLUGINS_INSTALL_DIR}"

Loading…
Cancel
Save