Browse Source

Trade: provide access to plugin manager in AbstractImageConverter.

Similarly to what is done in AbstractImporter, allows me to implement
AnyImageConverter plugin.
pull/107/head
Vladimír Vondruš 11 years ago
parent
commit
199d086419
  1. 4
      src/Magnum/Trade/AbstractImageConverter.cpp
  2. 7
      src/Magnum/Trade/AbstractImageConverter.h

4
src/Magnum/Trade/AbstractImageConverter.cpp

@ -35,7 +35,9 @@ namespace Magnum { namespace Trade {
AbstractImageConverter::AbstractImageConverter() = default;
AbstractImageConverter::AbstractImageConverter(PluginManager::AbstractManager& manager, std::string plugin): AbstractPlugin(manager, std::move(plugin)) {}
AbstractImageConverter::AbstractImageConverter(PluginManager::Manager<AbstractImageConverter>& manager): PluginManager::AbstractManagingPlugin<AbstractImageConverter>{manager} {}
AbstractImageConverter::AbstractImageConverter(PluginManager::AbstractManager& manager, std::string plugin): PluginManager::AbstractManagingPlugin<AbstractImageConverter>{manager, std::move(plugin)} {}
std::optional<Image2D> AbstractImageConverter::exportToImage(const ImageView2D& image) const {
CORRADE_ASSERT(features() & Feature::ConvertImage,

7
src/Magnum/Trade/AbstractImageConverter.h

@ -29,7 +29,7 @@
* @brief Class @ref Magnum::Trade::AbstractImageConverter
*/
#include <Corrade/PluginManager/AbstractPlugin.h>
#include <Corrade/PluginManager/AbstractManagingPlugin.h>
#include "Magnum/Magnum.h"
#include "Magnum/visibility.h"
@ -64,7 +64,7 @@ checked by the implementation:
Plugin interface string is `"cz.mosra.magnum.Trade.AbstractImageConverter/0.2.1"`.
*/
class MAGNUM_EXPORT AbstractImageConverter: public PluginManager::AbstractPlugin {
class MAGNUM_EXPORT AbstractImageConverter: public PluginManager::AbstractManagingPlugin<AbstractImageConverter> {
CORRADE_PLUGIN_INTERFACE("cz.mosra.magnum.Trade.AbstractImageConverter/0.2.1")
public:
@ -110,6 +110,9 @@ class MAGNUM_EXPORT AbstractImageConverter: public PluginManager::AbstractPlugin
/** @brief Default constructor */
explicit AbstractImageConverter();
/** @brief Constructor with access to plugin manager */
explicit AbstractImageConverter(PluginManager::Manager<AbstractImageConverter>& manager);
/** @brief Plugin manager constructor */
explicit AbstractImageConverter(PluginManager::AbstractManager& manager, std::string plugin);

Loading…
Cancel
Save