#ifndef OPENMW_COMPONENTS_RESOURCE_IMAGEMANAGER_H #define OPENMW_COMPONENTS_RESOURCE_IMAGEMANAGER_H #include #include #include #include #include "resourcemanager.hpp" namespace osgDB { class Options; } namespace Resource { /// @brief Handles loading/caching of Images. /// @note May be used from any thread. class ImageManager : public ResourceManager { public: explicit ImageManager(const VFS::Manager* vfs, double expiryDelay); ~ImageManager(); /// Create or retrieve an Image /// Returns the dummy image if the given image is not found. osg::ref_ptr getImage(VFS::Path::NormalizedView path, bool disableFlip = false); osg::Image* getWarningImage(); void reportStats(unsigned int frameNumber, osg::Stats* stats) const override; private: osg::ref_ptr mWarningImage; osg::ref_ptr mOptions; osg::ref_ptr mOptionsNoFlip; ImageManager(const ImageManager&); void operator=(const ImageManager&); }; } #endif