diff options
author | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2012-11-02 14:25:59 +0000 |
---|---|---|
committer | Hans-Christoph Steiner <eighthave@users.sourceforge.net> | 2012-11-02 14:25:59 +0000 |
commit | 2c0b722536a4ec2f723c289b695b983741c678f8 (patch) | |
tree | 650e06f5837b7995a60bf51b47f5ec9de4ee9ebe /packages/noncvs/windows/extra/Gem/dev/plugins/imageloader.h | |
parent | 69101e6e7eb00acaee619d4aa815d4a85925cc60 (diff) |
commit windows binaries from old rsync auto-build setup, including Gem 0.93.1
svn path=/trunk/; revision=16520
Diffstat (limited to 'packages/noncvs/windows/extra/Gem/dev/plugins/imageloader.h')
-rw-r--r-- | packages/noncvs/windows/extra/Gem/dev/plugins/imageloader.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/packages/noncvs/windows/extra/Gem/dev/plugins/imageloader.h b/packages/noncvs/windows/extra/Gem/dev/plugins/imageloader.h new file mode 100644 index 00000000..111ad822 --- /dev/null +++ b/packages/noncvs/windows/extra/Gem/dev/plugins/imageloader.h @@ -0,0 +1,75 @@ +/* ----------------------------------------------------------------- + +GEM - Graphics Environment for Multimedia + +Load an image and return the frame(OS independant interface) + +Copyright (c) 2011-2011 IOhannes m zmölnig. forum::für::umläute. IEM. zmoelnig@iem.at +For information on usage and redistribution, and for a DISCLAIMER OF ALL +WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. + +-----------------------------------------------------------------*/ + +#ifndef _INCLUDE__GEM_PLUGINS_IMAGELOADER_H_ +#define _INCLUDE__GEM_PLUGINS_IMAGELOADER_H_ + +#include "Gem/Image.h" +#include "Gem/Properties.h" + +#include <string> + +/*----------------------------------------------------------------- + ------------------------------------------------------------------- + CLASS + imageloader + + interface for the system- and library-dependent imageloader classes + + KEYWORDS + pix load an image + + DESCRIPTION + + -----------------------------------------------------------------*/ +namespace gem { namespace plugins { + class GEM_EXTERN imageloader + { + public: + + ////////// + // returns an instance wrapping all plugins or NULL + // if NULL is returned, you might still try your luck with manually accessing the + // PluginFactory + static imageloader*getInstance(void); + + //////// + // dtor must be virtual + virtual ~imageloader(void); + + /* read a image + * + * props can be filled by the loader with additional information on the image + * e.g. EXIF tags,... + */ + /* returns TRUE if loading was successfull, FALSE otherwise */ + virtual bool load(std::string filename, + imageStruct&result, + gem::Properties&props) = 0; + + /* returns TRUE if this object can be used from within a thread */ + virtual bool isThreadable(void) = 0; + }; + + };}; // namespace gem + + +/** + * \fn REGISTER_IMAGELOADERFACTORY(const char *id, Class imageloaderClass) + * registers a new class "imageloaderClass" with the imageloader-factory + * + * \param id a symbolic (const char*) ID for the given class + * \param imageloaderClass a class derived from "imageloader" + */ +#define REGISTER_IMAGELOADERFACTORY(id, TYP) static gem::PluginFactoryRegistrar::registrar<TYP, gem::plugins::imageloader> fac_imageloader_ ## TYP (id) + +#endif // for header file |