27 #ifndef _CEGUIImageManager_h_
28 #define _CEGUIImageManager_h_
30 #include "CEGUI/Singleton.h"
31 #include "CEGUI/ChainedXMLHandler.h"
32 #include "CEGUI/String.h"
33 #include "CEGUI/Size.h"
34 #include "CEGUI/ImageFactory.h"
35 #include "CEGUI/Logger.h"
36 #include "CEGUI/Exceptions.h"
37 #include "CEGUI/IteratorBase.h"
41 # pragma warning(push)
42 # pragma warning(disable : 4251)
48 class CEGUIEXPORT ImageManager :
49 public Singleton<ImageManager>,
50 public AllocatedObject<ImageManager>,
51 public ChainedXMLHandler
78 void addImageType(
const String& name);
97 void removeImageType(
const String& name);
111 bool isImageTypeAvailable(
const String& name)
const;
132 Image& create(
const String& type,
const String& name);
134 Image& create(
const XMLAttributes& attributes);
136 void destroy(Image& image);
137 void destroy(
const String& name);
140 Image& get(
const String& name)
const;
141 bool isDefined(
const String& name)
const;
143 uint getImageCount()
const;
145 void loadImageset(
const String& filename,
const String& resource_group =
"");
146 void loadImagesetFromString(
const String& source);
148 void destroyImageCollection(
const String& prefix,
149 const bool delete_texture =
true);
151 void addFromImageFile(
const String& name,
152 const String& filename,
153 const String& resource_group =
"");
162 void notifyDisplaySizeChanged(
const Sizef& size);
171 static void setImagesetDefaultResourceGroup(
const String& resourceGroup)
172 { d_imagesetDefaultResourceGroup = resourceGroup; }
182 static const String& getImagesetDefaultResourceGroup()
183 {
return d_imagesetDefaultResourceGroup; }
186 const String& getSchemaName()
const;
187 const String& getDefaultResourceGroup()
const;
190 typedef std::pair<Image*, ImageFactory*> ImagePair;
193 typedef std::map<String, ImagePair,
194 StringFastLessCompare
195 CEGUI_MAP_ALLOC(String, Image*)> ImageMap;
198 typedef ConstMapIterator<ImageMap> ImageIterator;
205 ImageIterator getIterator()
const;
209 void elementStartLocal(
const String& element,
const XMLAttributes& attributes);
210 void elementEndLocal(
const String& element);
217 void destroy(ImageMap::iterator& iter);
223 void validateImagesetFileVersion(
const XMLAttributes& attrs);
226 static String d_imagesetDefaultResourceGroup;
229 ImageFactoryRegistry d_factories;
235 template <
typename T>
240 "Image type already exists: " + name));
244 Logger::getSingleton().logEvent(
245 "[CEGUI::ImageManager] Registered Image type: " + name);
251 #if defined(_MSC_VER)
252 # pragma warning(pop)
255 #endif // end of guard _CEGUIImageManager_h_